顯示具有 NAT Loopback 標籤的文章。 顯示所有文章
顯示具有 NAT Loopback 標籤的文章。 顯示所有文章

2015年6月10日 星期三

Mikrotik Router OS Hairpin (NAT Loopback) 設定

RouterOS 中如果要做到讓內部網路的使用者也能連線到真實IP的服務,就必須設定Hairpin (NAT Loopback),在網路上有很多參考資料。但如果你的內部網段不是用Ethernet Port而是Bridge,網路上的標準範例就行不通了。標準範例如下:
假設真實IP為8.8.8.8,虛擬伺服器IP為192.168.0.2,內部網段為192.168.0.0/24,WAN Port為pppoe1,Lan Port為ether1,Bridge Port為bridge1

/ip firewall nat
add chain=dstnat comment="Web NAT Setup" dst-address=8.8.8.8 protocol=tcp dst-port=80 \
  action=dst-nat to-address=192.168.0.2
add chain=srcnat out-interface=pppoe1 action=masquerade
/ip firewall nat
add chain=srcnat comment="Hairpin Setup" src-address=192.168.0.0/24 \
  dst-address=192.168.0.2 protocol=tcp dst-port=80 \
  out-interface=ether1 action=masquerade

在使用Bridge的情況下,請取消dst-nat的in-interface=gateway port設定,改以dst-address-type=local取代即可,修改後範例如下:

/ip firewall nat
add chain=dstnat comment="Web NAT Setup" dst-address=8.8.8.8 protocol=tcp dst-port=80 \
  action=dst-nat to-address=192.168.0.2
add chain=srcnat st-address-type=local action=masquerade
/ip firewall nat
add chain=srcnat comment="Hairpin Setup" src-address=192.168.0.0/24 \
  dst-address=192.168.0.2 protocol=tcp dst-port=80 \
  out-interface=bridge1 action=masquerade

P.S. 如果只有一台伺服器要對外,可取消Hairpin的TCP Port指定;若有多台伺服器要對外,則要針對每個不同的Port加一條Hairpin的設定。