[text] MikroTik - Zmiana adresu źródłowego serwera RADIUS
Przeglądałem dzisiaj z rana blogi i zauważyłem ciekawy wpis. Dotyczył wykorzystania skryptów w pracy z routerami MikroTik. Postanowiłem udostępnić ten wpis na swoim blogu.
Cel: Zmiana adresu źródłowego (src-address) dla 40 urządzeń MikroTik dotyczących serwera RADIUS , pasujące do nowego adresu tunelu PPTP. Jaki byłby ból gdyby adres był inny na każdym urządzeniu.
Rozwiązanie: Stworzenie scriptletu, który aktualizuje adres IP, upewniając się, że jest poprawnie sformatowany do użytku.
Można rozwiązać w poniższy sposób, ale nie przyniesie to chwały:
powstało na podstawie wpisu Script Fu – Changing RADIUS server source address
Cel: Zmiana adresu źródłowego (src-address) dla 40 urządzeń MikroTik dotyczących serwera RADIUS , pasujące do nowego adresu tunelu PPTP. Jaki byłby ból gdyby adres był inny na każdym urządzeniu.
Rozwiązanie: Stworzenie scriptletu, który aktualizuje adres IP, upewniając się, że jest poprawnie sformatowany do użytku.
Można rozwiązać w poniższy sposób, ale nie przyniesie to chwały:
oraz w podziale na wyjaśnienia i wiersze:/radiusset0src-address=[:pick[/ipaddressget[/ipaddressfindwhereinterface=[/interfacepptp-clientget[/interfacepptp-clientfindwhereconnect-to=192.168.1.1]name]]address] 0 [:find[/ipaddressget[/ipaddressfindwhereinterface=[/interfacepptp-clientget[/interfacepptp-clientfindwhereconnect-to=192.168.1.1]name]]address]"/"]]
#1 uruchomienie polecenia zmieniającego adres IP/radiusset0src-address=[#2 nie znamy jeszcze scr-address, więc musimy się dogadać#6 musimy wybrać tylko część adresu (aż do /):pick[/ipaddressget[#5 znaleźć listę adresów IP, gdzie nazwa interfejsu pasuje do naszego interfejsu pptp/ipaddressfindwhereinterface=[#4 uzyskać nazwę interfejsu klienta pptp/interfacepptp-clientget[#3 adres źródłowy łączy z interfejsem klienta pptp, wiec wiemy, że połączenie to 192.168.1.1#mamy zamiar go znaleźć/interfacepptp-clientfindwhereconnect-to=192.168.1.1]name]]address] 0 [#8 używamy polecenia find, aby korzystać z tego adresu:find[#7 prowadzimy tą samą procedurę, aby uzyskać adres IP w całości/ipaddressget[/ipaddressfindwhereinterface=[/interfacepptp-clientget[/interfacepptp-clientfindwhereconnect-to=192.168.1.1]name]]address#9 wyszukuję "/" i wykorzystuję wynik jako numer komendą :pick (0 -> "/")]"/"]#10 komenda pick kompletna, wybierając jedynie część adresów IP#i wracamy do naszego pierwotnego zbioru kryteriów, zmieniając dla klientów adres źródłowy serwera #RADIUS]
Komentarze
Prześlij komentarz