Mikrotik проброс порта (с изменением порта)
Теги: Mikrotik
Век живи, век учись! Для проброса порта 5555 с внешнего на внутренний IP делал примерно так:
add action=accept chain=forward comment="My forward rule" dst-port=5555 \
in-interface=ether1 protocol=tcp
add action=dst-nat chain=dstnat comment="My DSTNAT rule" dst-port=\
5555 in-interface=ether1 protocol=tcp src-port="" to-addresses=192.168.1.90 to-ports=5555
и оно работало всегда. Был уверен, что именно так и надо :)
Но вот пришлось делать проброс с изменением порта, например: 1.2.3.4:5555 -> 192.168.1.90:1111
И схема, описанная выше, дала сбой. Оказывается, все очень интересно на самом деле!
1. Пакет с адресом 1.2.3.4:5555 пришел на роутер.
2. dst-nat меняет порт с 5555 на 1111. И пакет попадает на forward уже 192.168.1.90:1111
3. У меня в конце цепочек стоит drop any from any, чтобы уж наверняка. И вот сюда и прилетал мой неправильный forward.
4. А вот как в итоге правильно было бы сделать:
add chain=forward action=accept \
in-interface=ether1 \
out-interface=ether5 \
connection-nat-state=dstnat \
protocol=tcp \
dst-address=192.168.1.90 \
dst-port=1111
В данном правиле out-interface=ether5 - число моя схема, это можно не указывать, протокол, порт и внутренний ip - меняйте как нужно вам.
Главное: порядок обработки пакетов в данном случае:
PREROUTING → DST-NAT → FORWARD → POSTROUTING
А правило dstnat как было, так и осталось. Вот так вот.
Авторизуйтесь для добавления комментариев!
Принимаю заказы на настройку серверов, mikrotik и других роутеров, точек доступа, nginx и т.п. В пределах Санкт-Петербурга возможен выезд к заказчику. См. контакты.