nat server 的服务器访问外网端口问题

发布时间:  2013-06-05 浏览次数:  740 下载次数:  0
问题描述
FW---------server

用户局域网内有一台服务器,保证其的某一款软件应用可以对外提供服务。要求本服务器能够ping通本服务器映射的外网地址和端口。但是一直ping不通,用户也找不到原因。
告警信息
用户ping外网地址正常。ping或者telnet 本身服务器映射的端口无法到达。
处理过程
首先思考:网络不通,查看防火墙域间包过滤规则是否正常,查看之后,发现域间规则全开,并没有阻断数据。

随后思考查看会话表,发现有本身IP去访问 外网映射端口的数据流,但是没有回包。

然后开始思考:根据NAT server的数据包转发流程,数据只是进行了目的地址的转换,源地址没有转换,导致服务器本身发送出去的IP地址是本地IP地址  ,目的地址是外网映射端口,回包的源地址是自己的IP地址,目的地址也是自己的地址。数据会话只有从本地IP地址去访问公网映射端口的服务器,没有回到防火墙再到服务器上的会话,相当于发起访问的数据流是从server—防火墙—server,数据回包的时候,发现目的IP就是同网段的自己,那么数据就不会再回到防火墙上,而直接到达server上,而本身server应该收到的回包是从防火墙上出来的回包。所以连接一直无法建立,导致用户无法访问 本机对外映射的外网端口。最终让用户配置了域内NAT域内nat的配置方式如下:
1,创建NAT地址池。
[USG] nat address-group 1 1.1.1.3 1.1.1.5
2,创建Trust域内的NAT策略,确定进行NAT转换的源地址范围,并且将其与NAT地址池1进行绑定。
[USG] nat-policy zone trust
[USG-nat-policy-zone-trust] policy 0
[USG-nat-policy-zone-trust-0] policy source 10.1.1.0 0.0.0.255
[USG-nat-policy-zone-trust-0] policy destiantion 1.1.1.2 0
[USG-nat-policy-zone-trust-0] action source-nat
[USG-nat-policy-zone-trust-0] address-group 1
[USG-nat-policy-zone-trust-0] quit
[USG-nat-policy-zone-trust] quit
这样就能保证数据流来回的源和目的IP一致。可以正常建立连接。
根因
接到问题单后,首先分析用户的需求,首先查看是否是域间规则问题,或者是NAT问题。采用ping或者tracert方式判断是否存在这样的问题。
建议与总结
域内NAT不仅仅限于针对内网PC访问同一域内的服务器,还可以自己访问自己所映射的外网地址的端口号,由此,我们要学会深入理解每一个协议的原理以及数据包转发的流程,才能知道问题出在哪里以及怎么样解决问题。

END