22
Ноя

Динамической проброс портов на Mikrotik (вариант 2)

Что делать когда у Вас динамический белый ip, а нужно как-то пробросить порты через Mikrotik и использовать какие либо устройства в Вашей внутренней сети.
На помощь приходит небольшой скрипт erazel

Добавляем скрипт в System – Scripts , например с именем NAT Kyivstar

Вначале добавляем проброс портов, по обычной схеме
Chain: dstnat
Dst. Address: наш динамический IP (например от Киевстар Украина)
Dst. Port: 4899 – порт который будет доступен из интернет
Action: dst-nat
To Addresses: 192.168.0.20 – локальный ip внутренней сети Mikrotik
To Ports: 4899 – порт внутренней сети Mikrotik

После чего создаем комментарий записи: Comment: radmin
На каждую последующую запись делаем свой комментарий

После того как создали записи, добавляем скрипт в System – Scripts , например с именем NAT Kyivstar


:global ddnsipold [ /ip firewall nat get [find comment="radmin"] dst-address]
:global ddnsip [ /ip address get [find interface="ISP2"] address ]
:for i from=( [:len $ddnsip] - 1) to=0 do={
:if ( [:pick $ddnsip $i] = "/") do={
:set ddnsip [:pick $ddnsip 0 $i];
}
}
:if ($ddnsipold != $ddnsip) do={
/ip firewall nat set [find dst-address=$ddnsipold] dst-address=$ddnsip;
}

В отличии от 1го варианта, в этом скрипте мы сравниваем старый ip в записи с комментарием radmin и в случае если значение изменилось, меняем ip на новый адрес во всех записях где фигурировал старый ip.
Данный метод избавляет нас от необходимости создавать кучу записей с комментариями.