Какво е Hairpin NAT:
Hairpin NAT е топология в която устройство в локалната мрежа LAN има достъп до друго устройство в локалната мрежа LAN чрез външния IP адрес на рутера WAN с пренасочване на портове.
Реален пример:
Домашния ми NVR Dahua, чрез приложението DMSS трябва да го достъпя както от Интернет, така и от локалната ми домашна мрежа.
Masquerade – Стандартно маскиране на цялата домашна мрежа към Интернет.
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
Port Forwarding – на порт 37777 от Интернет интерфейса на рутера ether1 към локалния адрес на NVR-a 192.168.1.200.
/ip firewall nat
add action=dst-nat chain=dstnat dst-port=37777 in-interface=ether1 protocol=tcp to-addresses=192.168.1.200 to-ports=37777
Hairpin NAT – Пренасочване на порт 37777 но от локалната мрежа към локалния адрес на NVR-a 192.168.1.200
/ip firewall nat
add action=masquerade chain=srcnat dst-address=!192.168.1.1 src-address=192.168.1.0/24
add action=dst-nat chain=dstnat dst-address=!192.168.1.1 dst-address-type=local dst-port=37777 protocol=tcp to-addresses=192.168.1.200 to-ports=37777
С тези правила с приложението DMSS гледам камерите си с една конфигурация на публичния ми IP адрес както от Интернет така и от локалната ми мрежа.
Едно правило е достатъчно. А ако се спести дефиницията на порта то ще важи и за всички други пренасочвания от външния интерфейс.
За конкретния случай:
/ip firewall nat
add action=masquerade chain=srcnat dst-address=192.168.1.200 protocol=tcp dst-port=37777 src-address=192.168.1.0/24
Или глобално:
/ip firewall nat
add action=masquerade chain=srcnat dst-address=192.168.1.0/24 src-address=192.168.1.0/24
Това важи с уговорката, че на port forward правилото не трябва да се match-ва входящия интерфейс, а само външния ип адрес. За да може с едно правило да се прихваща и трафика от локалната мрежа.
https://help.mikrotik.com/docs/display/ROS/NAT#NAT-HairpinNAT