[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:/
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
]
"/"
]]
#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
]
Komentarze
Prześlij komentarz