典型的nat回流问题,例如:
拓扑如上所示:内网web服务器server内网地址:192.168.1.254 在出口路由上即RT-NAT上做了地址映射为172.16.0.3 ,现在ISP上有个loopback0模拟外网用户,访问web服务器正常(本文用端口23模拟),如下:
内网用户用内部地址直接访问,没问题:
内网用户用服务器映射后的公网地址访问,不通:
查看防火墙链接如下:flag为saA,即内网pc给服务器发送了sys但没有收到对端的syn+ack报文。
由此可看出是TCP三次握手出现了问题,接下来我们PC的F0/0上抓包,结果如下:
可以看出第一次是pc(192.168.1.2)给服务器(映射后公网地址为172.16.0.3)发了syn,之后,数据包穿越防火墙到达外网RT,外网RT收到报文后转发给了内网192.168.1.254的web服务器真是地址,web服务器查看原地址为同一网段,目的可达,因此直接将数据包转发给PC终端,即抓包显示的第二条,s:192.168.1.154 d:192.168.1.2 报文syn+ack。这就证实了防火墙的链接为什么是saA了,随后pc给web服务器发送了rst报文,即第三行。因为,在pc看来,它并没有给192.168.1.254发送syn报文,所以它重置了会话报文。下面几行就是TCP重传机制了。
至此问题清楚了。
解决方案列举两种:1、如果内网有自己的DNS服务器,直接在DNS服务器上做指针,例如:www.a.com 指向192.168.1.254内网真是地址即可。如果内网没有DNS服务器可直接访问IP或者更改写个脚本在AD环境中分发并执行host批处理。但改host对于移动办公的终端比较麻烦,在公司办公时可以用host直接访问,但出了公司就无法解析了,需要把host改回来,用公网DNS解析访问公网。推荐在内部搭建DNS服务器。
2、在墙上做策略NAT。在此不在赘述。
详细的可以去我博客:网页链接
1.在公网与内网对外映射后加上DNS
static (dmz,outside) 72.71.13.34 192.168.10.100 netmask 255.255.255.255 dns
2.通过ACL开通对面只允许指定的端口访问,提高安全性
access-list 101extended permit tcp any host 72.71.13.34 eq web
这个是数据回流问题。除了做80口映射,还要做dns map,路由器支持的话ip host也加上
感觉很奇怪,按理说应该可以,Untrustt Untrust 的策略做了没
4.北师程甲本