RouterOSでヘアピンNAT

ヘアピンNATとは、NAT配下でポートフォワードによって開放しているサーバーに対して、NAT配下からアクセスする場合、一度外部でNAT変換されたものを再度NATでローカルIPに戻してアクセスする場合に使います。

RouterOSでヘアピンNATを利用する場合の設定をこのリンク先で発見。
設定方法は、fire wallのNATルールを二段階設定するというある意味そのまんまなものでシンプルです。
更改サーバーのDNAT設定


/ip firewall nat
add chain=dstnat action=dst-nat to-addresses=ローカルサーバーのIP to-ports=ローカルサーバーのポート \
protocol=tcp in-interface=all-ppp dst-port=80 log=no log-prefix=””

以下のようにローカルセグメントからのサーバーへのアクセスはヘアピンNATさせる設定を追加

/ip firewall nat
add chain=dstnat action=dst-nat to-addresses=ローカルサーバーのIP to-ports=ローカルサーバーのポート \
protocol=tcp dst-address-type=local dst-port=ローカルサーバーのポート log=no log-prefix=””
add chain=srcnat action=masquerade protocol=tcp src-address=ローカルセグメントのサブネット \
dst-address=ローカルサーバーのIP out-interface=all-ethernet dst-port=ローカルサーバーのポート log=no log-prefix=””

ちなみに、センチュリーシステムズのルーターでは、マニュアル
に記載がありますが、pppのインターフェースに対して以下のように「ip nat-loopback」という設定を挿入します。


interface ppp 0
description eonet
ip address negotiated
no ip redirects
ip nat-loopback
ip tcp adjust-mss auto
ip access-group in upnp
ip access-group forward-in ppp0_fw_in
ip masquerade
ip dnat-group ppp0_dnat
ip spi-filter
ppp username yyyyyyyy password hidden xxxxxxxxxxx