為什麼內網連内網對外 IP 會不通?淺談 NAT Loopback (Hairpin NAT) 運作原理
對於許多剛接觸網路架構或自建服務的工程師來說,設定 Port Forwarding (DNAT) 讓外部網路能夠存取內網的 Web 服務是家常便飯。然而,當我們嘗試「在內網環境中,直接透過外部 IP (Public IP) 連線到內網伺服器」時,卻常常會遇到一種詭異的現象:有些環境可以通,有些環境卻完全連不上。
最近這篇文章看到有人說這個問題。這讓我回想起自己的經驗:以前在家裡使用中華電信數據機加上 ASUS Router 時,設定好 DNAT 後,內網直接打 Public IP 就能無縫連上 Web 服務。但同樣的操作,在我朋友家那台企業級的 Fortigate 防火牆上卻行不通。
為什麼會有這樣的差異?答案其實藏在一個名為 NAT Loopback(或稱 Hairpin NAT、NAT Reflection)的路由器功能中。