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 ?
❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz
dynamicka IP ako nastavit update
asi to nechapu. Proc ten script nepoustis kazdou minutu? Mas strach o vykon nebo co?
0 x
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
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
Na update change.ip pouzivam tento 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
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
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.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\""
0 x
Rozmyslam este ci by to fungovalo, ked moj skript na update ip vlozim do
a profil pouzijem pre pppoe interface
Kód: Vybrat vše
/ppp/profiles/default/scripts/on-up
a profil pouzijem pre pppoe interface
0 x
-
- Příspěvky: 162
- Registrován: 12 years 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
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.
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
-
- Příspěvky: 162
- Registrován: 12 years ago
Nepochopil jsem zcela, jak by mi to mohlo pomoci, resp. jak to vůbec funguje.
0 x