dynamicka IP ako nastavit update

Návody a problémy s konfigurací.
jany
Příspěvky: 313
Registrován: 11 years ago
Kontaktovat uživatele:

dynamicka IP ako nastavit update

Příspěvekod jany » 4 months ago

Na MK dostavam na WAN dynamicku IPv4 od poskytovatela.
Mam nastaveny skript a v schedulery sa v urcitych inervaloch vykonava (mam to nastavene na kazdu hodinu).
Niekedy sa IP nemeni aj mesiac a je zbytocne checkovat skriptu IP adresu (ale zase na druhu stranu mozem na update IP adresy cakat aj 59 minut).
IP adresa sa zmeni len po preruseni pppoe spojenia.
Preto uvazujem, ze skript by bolo dobre pustat len ak je pppoe uspesne, (cize pppoe connected).
Vedel by mi niekto poradit ako sa to da nastavit ?
0 x

K3NY
Příspěvky: 382
Registrován: 3 years ago

Příspěvekod K3NY » 4 months ago

asi to nechapu. Proc ten script nepoustis kazdou minutu? Mas strach o vykon nebo co?
0 x

jany
Příspěvky: 313
Registrován: 11 years ago
Kontaktovat uživatele:

Příspěvekod jany » 4 months ago

Preco by nieco malo bezat ked nemusi ?
0 x

rsaf
Příspěvky: 1293
Registrován: 12 years ago

Příspěvekod rsaf » 4 months ago

Mno protože to jinak nefunguje, takže musí. Bylo by asi dobré ten skript zoptimalizovat aby si ukládal poslední známou adresu do proměnné a jen to porovnával s aktuální - ta část skriptu bude mít 5 řádků a i kdyby se pouštěla každou sekundu, tak to router zásadně nezatíží.
0 x

Gukot
Příspěvky: 2
Registrován: 4 years ago

Příspěvekod Gukot » 4 months ago

Pri navazani PPPoE spojeni zapise aktualni IP adresu co dostal do adress listu ve firewallu a po ztraceni spojeni zase smaze. Neni potreba resit scriptem. Takhle jdou pak jednoduse upravil treba NAT pravidla, aby se odkazovala na ten adress list misto dynamickou adresu.

Kód: Vybrat vše

/ppp profile set *0 on-down="/ip firewall address-list remove [/ip firewall address-list find list=\"pppoe\"]" on-up="/ip firewall address-list add list=\"pppoe\" address=\$\"local-address\""
1 x

jany
Příspěvky: 313
Registrován: 11 years ago
Kontaktovat uživatele:

Příspěvekod jany » 4 months ago

Na update change.ip pouzivam tento script

Kód: Vybrat vše

# Define User Variables
:global ddnsuser "uzivatelske_meno"
:global ddnspass "heslo"
:global ddnshost "nieco_moje.com"
 
# Define Global Variables
:global ddnsip
:global ddnslastip
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip "0" }
 
:global ddnsinterface
:global ddnssystem ("mt-" . [/system package get system version] )
 
# Define Local Variables
:local int
 
# Loop thru interfaces and look for ones containing
# default gateways without routing-marks
#:foreach int in=[/ip route find dst-address=0.0.0.0/0 active=yes ] do={
#  :if ([:typeof [/ip route get $int routing-mark ]] != str ) do={
#    :global ddnsinterface [/ip route get $int interface]
#  }
#}
 
:global ddnsinterface "pppoe-out1"
 
 
# Grab the current IP address on that interface.
:global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface ] address ]
 
# Did we get an IP address to compare?
:if ([ :typeof $ddnsip ] = nil ) do={
   :log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.")
} else={
 
  :if ($ddnsip != $ddnslastip) do={
 
    :log info "DDNS: Sending UPDATE!"
    :log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ] ]
    :global ddnslastip $ddnsip
 
  } else={
    :log info "DDNS: No update required."
  }
 
}
 
# End of script

Nie som ziadny koder, takze nedokazem si upravit script. V podstate mi ide o to, aby sa mi to zbytocne nelogovalo. Aj ked mam nastaveny update na 1-2 hod. tak polovica logu je od toho scriptu, ze sa nic nemuselo updatovat (mam v tomto scripte 5 domenovych mien + este dalsi script mam na noip.com).
Ano viem, mozem si log posielat niekde na server mimo MK, ale to neni potrebne. Log mam nastaveny na 1000 riadkov a to mi staci (je to na domace pouzitie).
Preto som uvazoval ako poriesit spustanie toho scriptu, len po uspesnom naviazani pppoe spojenia.
Viem, ze spustanie toho scriptu nema vplyv na vykon MK, ale zbytocne loguje to co nemusi
0 x

jany
Příspěvky: 313
Registrován: 11 years ago
Kontaktovat uživatele:

Příspěvekod jany » 4 months ago

Gukot píše:Pri navazani PPPoE spojeni zapise aktualni IP adresu co dostal do adress listu ve firewallu a po ztraceni spojeni zase smaze. Neni potreba resit scriptem. Takhle jdou pak jednoduse upravil treba NAT pravidla, aby se odkazovala na ten adress list misto dynamickou adresu.

Kód: Vybrat vše

/ppp profile set *0 on-down="/ip firewall address-list remove [/ip firewall address-list find list=\"pppoe\"]" on-up="/ip firewall address-list add list=\"pppoe\" address=\$\"local-address\""
Rozumiem tomu, ze IP sa zapise do adresslistu, ale ja potrebujem poslat tu IP adresu na changeip.com a zapisat ju ako A zaznam k mojim dns menam A to riesi ten script, ktory som dal o prispevok vyssie.
0 x

jany
Příspěvky: 313
Registrován: 11 years ago
Kontaktovat uživatele:

Příspěvekod jany » 4 months ago

Rozmyslam este ci by to fungovalo, ked moj skript na update ip vlozim do

Kód: Vybrat vše

/ppp/profiles/default/scripts/on-up

a profil pouzijem pre pppoe interface
0 x

Radek.Kovacik
Příspěvky: 116
Registrován: 6 years ago

Příspěvekod Radek.Kovacik » 3 months ago

Také jsem řešil problém změny dynamicky přiřazované veřejné IP u PPPoE připojení a udělal jsem to právě pomocí profilu. Zřejmě je to nejjednodušší cesta. Do profilu jsem si pouze vložil vlastní script a ten vše potřebné zajistí. Pouze stačí doplnit název address listu (v mém případě "WAN") do pravidel ve firewallu nebo NATu a je hotovo.

Kód: Vybrat vše

/ppp profile
add comment="Vlastni profil pro PPPoE pripojeni s automaticky spoustenym scriptem" name=PPPoE on-up="# Definice promennych\r\
    \n:local puvodniIP\r\
    \n:local aktualniIP\r\
    \n# Ziskani aktualni verejne IP adresy\r\
    \n/interface pppoe-client monitor PPPoE-WAN once do={:set \$aktualniIP \$\"local-address\"}\r\
    \n# Overeni existence zaznamu v seznamu adres\r\
    \n:do {:set \$puvodniIP [/ip firewall address-list get [find list=WAN] address]} on-error={/ip firewall address-list add list
    comment=\"Moje verejna pristupova adresa pridelena poskytovatelem prostrednictvim PPPoE pripojeni pres VDSL\"; :log info \"Ve
    a do seznamu adres\"}\r\
    \n# Nastaveni verejne IP adresy v seznamu adres a zapis informace do logu\r\
    \n:if (\$puvodniIP != \$aktualniIP and \$puvodniIP != nil) do={/ip firewall address-list set [find list=WAN] address=\$aktual
    \n:log info \"Doslo ke zmene verejne IP adresy WAN (seznam adres byl aktualizovan)\"}\r\
    \n"
0 x

sacnok
Příspěvky: 391
Registrován: 4 years ago

Příspěvekod sacnok » 3 months ago

A proč nepoužiješ přímo v mikrotiku /ip cloud

od té doby, co to do Mikrotiku přidali jsem přestal používat skripty na hlídání změny IP, mikrotik si změnu IP sám pohlídá a do mikrotiku se přihlašuji přes DNS název.
0 x

Radek.Kovacik
Příspěvky: 116
Registrován: 6 years ago

Příspěvekod Radek.Kovacik » 3 months ago

Nepochopil jsem zcela, jak by mi to mohlo pomoci, resp. jak to vůbec funguje.
0 x


Zpět na „Konfigurace“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů