22
Ноя

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

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

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


Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.


Вначале добавляем проброс портов, по обычной схеме
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.
Данный метод избавляет нас от необходимости создавать кучу записей с комментариями.