加密传输网关NAT穿越问题分析(一)

工作中把原本在局域网运行的加密传输网关配置成NAT出现会话协商OK,两侧的流量不通。

测试环境:
centos7加密网关两台
路由器1台
windows7 pc两台

网络拓扑如图:
加密传输网关NAT穿越问题分析(一)
问题现象:网关之间协商通,**可以同步,内网PC机1 192.168.31.50可以ping通PC机2 1.1.2.200,在软件ByPass的情况下PC1可以正常访问PC2,但是PC1的UDP流量可以发送到PC2,PC2的UDP测试程序收不到包。

问题分析:
1,ping包可以通,说明物理连接,路由和网关配置是OK的;
2,使用wireshark抓包,发现可以抓到包,这样也排除了防火墙的问题,在网络配置正确的情况下,wireshark可以抓到数据包但是测试程序收不到,数据解密也是正确的猜测可能是mac地址或者checksum的问题;
3,分别在使能ByPass和不使能ByPass的情况下在外网PC2 1.1.2.200上抓包,分析目的mac和源mac,发现两者一致,目的mac均为mac3,源mac为mac2,说明不是mac的问题;
4,打开wireshark工具checksum的校验,在编辑 >> 首选项 >> Protocols 中选择IPv4
加密传输网关NAT穿越问题分析(一)
同理,然后打开UDP协议的checksum,确定后可以看到在ByPass时可以看到校验正确,加密传输网关NAT穿越问题分析(一)
然后打开不ByPass的抓包文件,发现果然是UDP的checksum不对。
加密传输网关NAT穿越问题分析(一)
小结:分析定位问题追根溯源,逐一排除,这里是用到了不使能Bypass和Bypass对比。
但是为什么checksum会不对呢?nat时跟在局域网有什么不同?下一节再分析。