У меня кабельное подключение, и мой провайдер выдает динамический IP-адрес. Я беспокоился, добавляет ли DHCP-клиент автоматически опцию «Routing Mark» к добавляемому маршруту по умолчанию, но этого не происходит... Я нашёл этот скрипт в другой теме, и он вроде как подходит под мои нужды (думаю), но не хочет работать. # Написано Sam Norris, ChangeIP.com
:log info "Проверка шлюза по умолчанию для DHCP-интерфейсов."
:local theName [ /ip dhcp-client get [/ip dhcp-client find status=bound ] interface ]
:local currentGateway [ /ip dhcp-client get [/ip dhcp-client find status=bound ] gateway ]
:local existingGateway [ /ip route get [/ip route find comment=$theName] gateway ]
:log info ( $currentGateway . " - " . $existingGateway )
:if ($currentGateway != $existingGateway) do={
:log info ("Устанавливаю шлюз по умолчанию для " . $theName)
:local a [ /ip route find comment=$theName ]
:if ([ :typeof $a ] = nil ) do={
:log info "добавляю маршрут..."
/ip route add dst-address=0.0.0.0/0 gateway=$currentGateway routing-mark=$theName comment=$theName
} else={
:log info "меняю маршрут..."
/ip route set $a gateway=$currentGateway
} else={
:log info "Изменения маршрута не требуются."
} RouterOS 3.29 [max@core] /system script> run script1 bad argument name else (line 20 column 3) [max@core] /system script>
:log info "Проверка шлюза по умолчанию для DHCP-интерфейсов."
:local theName [ /ip dhcp-client get [/ip dhcp-client find status=bound ] interface ]
:local currentGateway [ /ip dhcp-client get [/ip dhcp-client find status=bound ] gateway ]
:local existingGateway [ /ip route get [/ip route find comment=$theName] gateway ]
:log info ( $currentGateway . " - " . $existingGateway )
:if ($currentGateway != $existingGateway) do={
:log info ("Устанавливаю шлюз по умолчанию для " . $theName)
:local a [ /ip route find comment=$theName ]
:if ([ :typeof $a ] = nil ) do={
:log info "добавляю маршрут..."
/ip route add dst-address=0.0.0.0/0 gateway=$currentGateway routing-mark=$theName comment=$theName
} else={
:log info "меняю маршрут..."
/ip route set $a gateway=$currentGateway
} else={
:log info "Изменения маршрута не требуются."
} RouterOS 3.29 [max@core] /system script> run script1 bad argument name else (line 20 column 3) [max@core] /system script>
