Для чего нужен loopback?
Например вы хотите проверить как работает ваш web-server который расположен во внутренний сети из интернета, или просто как работает ваш dst-nat но при этом сами находитесь внутри и сервера который бы находился в интернете с удалённым доступом у вас нет, и нет знакомых которые бы могли проверить как работает тот или иной сервис.
Более подробно о loopback можно почитать на вики.
Итак, приступим к настройке loopback на микротике, если у вашего интернет подключения адрес статический, то достаточно добавить одно правило в раздел Firewall вкладка NAT. В моём примере я буду использовать порт 80 tcp, но по аналогии можно настроить на любой другой порт.
Можно настроить как через GUI так и через терминал.
GUI:
выбираем IP — Firewall, вкладка NAT, жмём плюс (+) — создать новое правило.
Chain: dstnat
Dst.Address: — наш внешний статический IP
Protocol: tcp
Dst. Port: 80
In. Interface: — интерфейс который смотрит в локальную сеть (внутрь)
Переходим на вкладку Action:
Action: dst-nat
To Addresses: ip адрес вашего веб сервера
To Ports: 80
Это всё.
терминал
Через терминал как обычно проще, запускаем новый терминал и набираем
1 |
ip firewall nat add chain=dstnat dst-address=123.45.67.89 protocol=tcp dst-port=80 in-interface=ether3-Master-local action=dst-nat to-addresses=192.168.100.20 to-ports=80 |
Это что касается статического адреса, для динамического делаем всё тоже самое + скрипт + комментарий на правило что бы потом могли его менять скриптом.
Комментарий используемый в моём случае будет — http-loopback-mts
Ниже текст скрипта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
################################################################### #Description:LoopBack-for-dynamic-interface #################################################################### #Указываем имя интерфейса :local DynIface "pppoe-mts"; #Получаем IP интерфейса :local DynIfaceIP [ /ip address get [/ip address find interface=$DynIface ] address ]; #Проверяем изменился IP адрес или нет. :local DynIfaceIPLast [/ip firewall nat get [find comment="http-loopback-mts"] dst-address]; #Если изменился меняем IP адрес в нашем правиле. :if ([ :typeof $DynIfaceIP ] = nil ) do={ :log info ("No ip address present on " . $DynIface . ", loopback don't work.") } else={ :if ($DynIfaceIP != $DynIfaceIPLast) do={ :log info "Loopback update! ($DynIfaceIP)" /ip firewall nat set [find comment="http-loopback-mts"] dst-address=$DynIfaceIP; } } |
Добавляем этот скрипт в микротик — System-Sripts. Назовём например dynamic-loopback. И затем добавляем в планировщик System-Sheduler у меня провайдер довольно редко меняет IP поэтому интервал я установлю один раз в час, в поле On-Event: впишем команду /system script run dynamic-loopback. Вот и всё.
Вопросы и пожелания можно оставлять ниже в комментариях.