[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:
/radius set 0 src-address=[:pick [/ip address get [/ip address find where interface=[/interface pptp-client get [/interface pptp-client find where connect-to=192.168.1.1] name]] address] 0 [:find [/ip address get [/ip address find where interface=[/interface pptp-client get [/interface pptp-client find where connect-to=192.168.1.1] name]] address] "/"]]
oraz w podziale na wyjaśnienia i wiersze:
#1 uruchomienie polecenia zmieniającego adres IP
/radius set 0 src-address=[
#2 nie znamy jeszcze scr-address, więc musimy się dogadać
#6 musimy wybrać tylko część adresu (aż do /)
:pick [
/ip address get [
#5 znaleźć listę adresów IP, gdzie nazwa interfejsu pasuje do naszego interfejsu pptp
/ip address find where interface=[
#4 uzyskać nazwę interfejsu klienta pptp
/interface pptp-client get [
#3 adres źródłowy łączy z interfejsem klienta pptp, wiec wiemy, że połączenie to 192.168.1.1
#mamy zamiar go znaleźć
/interface pptp-client find where connect-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
/ip address get [
/ip address find where interface=[
/interface pptp-client get [
/interface pptp-client find where connect-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
]
powstało na podstawie wpisu Script Fu – Changing RADIUS server source address

Komentarze

Popularne posty z tego bloga

[text] Konfiguracja SSL VPN Stormshield oparta o OpenVPN dla xUbuntu 16.10