企業以 ADSL 上網,僅獲一個合法公網 IP,內部架設 Web 伺服器,透過連接埠位址轉向(Port Forwarding)對外發布。外部用戶可正常瀏覽,但內部用戶使用公網域名(如 www.example.com)卻無法存取內部伺服器。此為典型 NAT 回環問題,解決方案如下。
Router(config)#int e0
Router(config-if)#ip address 10.1.1.254 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip address 202.1.1.1 255.255.255.252
Router(config-if)#ip nat outside
! 靜態 NAT:外部存取 202.1.1.1:80 → 內部 10.1.1.1:80
Router(config)#ip nat inside source static tcp 10.1.1.1 80 202.1.1.1 80
! 定義內網 ACL
Router(config)#access-list 1 permit 10.1.1.0 0.0.0.255
! PAT:內網主機共享公網 IP 上網
Router(config)#ip nat inside source list 1 interface e1 overload
! 預設路由指向 ISP
Router(config)#ip route 0.0.0.0 0.0.0.0 202.1.1.2
內部用戶解析 www.example.com 獲得公網 IP 202.1.1.1,封包送至路由器 WAN 口,但路由器未將來源為內網、目的為自有 WAN IP 的流量導回內部伺服器,導致連線失敗。
在路由器建立本地 DNS 記錄,讓內部用戶解析域名時直接指向內部私網 IP,繞過公網繞路。
Router(config)#ip dns server
Router(config)#ip domain-lookup
Router(config)#ip name-server 202.96.64.68 ! 上層 DNS(視當地情況)
Router(config)#ip host www.example.com 10.1.1.1
內部主機 DNS 設定指向路由器 LAN IP(10.1.1.254)。
Router(config)#service dhcp
Router(config)#ip dhcp excluded-address 10.1.1.254
Router(config)#ip dhcp excluded-address 10.1.1.1
Router(config)#ip dhcp pool ABC
Router(dhcp-config)#network 10.1.1.0 /24
Router(dhcp-config)#dns-server 10.1.1.254
Router(dhcp-config)#default-router 10.1.1.254
注意:若路由器負載較重,建議另建獨立內部 DNS 伺服器。