NAT ALG DNS—DNS在外部,内网通过域名访问内部服务器
应用场景:
R2、R3、R4为企业内部,DNS部署在公网,R2上设置NAT是的R1能够telnet到R4。
如在R2上启用NAT ALG DNS功能后,R3通过域名butcherroom.com访问23端口,可以成功telnet R4。
如果不开启NAT ALG DNS功能则R3无法通过域名telnet R4。
基础配置:
R1 | ip name-server 202.100.1.200 ! interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface Ethernet0/0 ip address 202.100.1.1 255.255.255.0 duplex auto ! |
R2 | interface Ethernet0/0 ip address 202.100.1.2 255.255.255.0 ip nat outside ip virtual-reassembly in duplex auto ! interface Ethernet0/1 ip address 172.16.1.254 255.255.255.0 ip nat inside ip virtual-reassembly in duplex auto ! interface Ethernet0/2 ip address 192.168.31.254 255.255.255.0 ip nat inside ip virtual-reassembly in duplex auto ! ip nat inside source list 1 interface Ethernet0/0 overload ip nat inside source static 172.16.1.4 202.100.1.100 ip nat inside source static 10.1.1.150 202.100.1.150 ip route 0.0.0.0 0.0.0.0 202.100.1.1 ! ! access-list 1 permit any 默认配置下NAT ALG DNS功能是开启的 |
R3 | ip name-server 202.100.1.200 ! interface Ethernet0/0 ip address 192.168.31.3 255.255.255.0 duplex auto ! ip route 0.0.0.0 0.0.0.0 192.168.31.254 |
R4 | interface Ethernet0/0 ip address 172.16.1.4 255.255.255.0 duplex auto ! ip http server ! ip route 0.0.0.0 0.0.0.0 172.16.1.254 ! line vty 0 4 no login transport input all |
DNS服务器 | 接口地址:202.100.1.200 域名映射: butcherroom.com 202.100.1.100 |
基础验证:
R1上TELNET域名,可以正常访问,解析到的地址为202.100.1.100:
R3上TELNET域名,可以正常访问R4,访问的实际IP地址为172.16.1.4(内网地址):
同时通过对R2的E0/0和E0/2口抓包查看DNS的报文:
- E0/0为ALG转换前的DNS报文,如下所示,解析到的地址为202.100.1.200:
图中目的地址202.100.1.2为R3访问公网时做的PAT转换后的地址。
E0/2为ALG转换后的DNS报文,如下所示,解析到的地址为202.100.1.200:
- R2上通过debug ip nat可以看到ALG转换的过程
*May 18 09:56:41.392: NAT: s=192.168.31.3->202.100.1.2, d=202.100.1.200 [0]
*May 18 09:56:41.395: NAT: DNS resource record 202.100.1.100 -> 172.16.1.4
*May 18 09:56:41.395: NAT: s=202.100.1.200, d=202.100.1.2->192.168.31.3 [4882]
*May 18 09:56:41.396: NAT: s=192.168.31.3->202.100.1.2, d=202.100.1.200 [0]
*May 18 09:56:41.397: NAT: DNS resource record 202.100.1.100 -> 172.16.1.4
*May 18 09:56:41.397: NAT: s=202.100.1.200, d=202.100.1.2->192.168.31.3 [4883]
在R2上取消NAT ALG DNS功能,查看R3是否能通过域名访问到R4:
R2(config)#no ip nat service alg udp dns
R2(config)#no ip nat service alg tcp dns
测试验证:
R1上TELNET域名,可以正常访问,解析到的地址为202.100.1.100:
R3上TELNET域名,无法正常访问R4,访问的IP地址为202.100.1.100(NAT映射后地址):
补充:R3去访问DNS服务器,在R2上必须做NAT转换(PAT),且R2上需有R4的静态NAT映射,ALG功能才能生效。