我也感觉路由器的NAT原理和防火墙的不一样,因为前几天网络升级改造,防火墙被拿去升级了,备用防火墙又坏了,于是我就用单位的核心路由顶在外面当防火墙用,将原来防火墙上的映射全部都在路由器上做了一遍,我们单位的路由器是H3C AR40的,但是做好了以后上网正常但是原来DMZ里面的服务器都不能被DNS解析,直接通过IP访问可以,我上网查了一下,在内网口又做了一遍反向的NAT才解决了这个问题。记得上学的时候老师讲的是经过NAT以后,IP报文会被修改,头部的源IP会被修改成转换后的IP地址并且在NAT转换表里面留下记录,但是这个情况解释不通啊,如果报文被修改的话,就不需要进行反向的地址转换了,我问了一个老工程师,他告诉我说数据能出去,但是回来的时候回不来,因为公网的DNS服务器找不到内网的地址,这不就是说明了路由器上的NAT并没有修改源IP么?要是修改了,对于公网的DNS服务器来说他看到的源地址应该是路由器出口的公网地址,那么回来的时候数据是能被发送给路由器的,然后路由查表就能找到发起DNS查询的主机了;但是防火墙好像就没有这个问题,防火墙做了映射就没有问题了,坐等高手给解答>.<
配置好做,我给你写写吧,我就是不明白为什么需要在路由器上还要做一个反向的地址转换才能进行DNS查询,以cisco设备为例(我们假设内网地址是192.168.1.0/24段的):
>enable
#config
(config)#access-list 1 permint 192.168.1.0 0.0.0.255
(config)#ip nat inside source list 1 interface s0/0 overload
(config)#int s0/0
(config-if)#ip add 172.16.0.11 255.255.255.252
(config-if)#clock rate 64000 (如果是DTE端可以不配置,如果是以太网口也可以不配置)
(config-if)#ip nat outside
(config-if)#no shut
(config-if)#int fa1/0
(config-if)#ip add 192.168.1.1 255.255.255.0
(config-if)#ip nat inside
(config-if)#no shut
(config-if)#exit