问题描述
某企业用户,AR1220S与对端设备建立IPSEC VPN,隧道建立成功后,内网地址从192.168.9.253 ping 192.168.14.10可以通,但是从192.168.9.253 telnet 192.168.14.10 1054端口不成功。
组网拓扑:
192.168.14.10----对端IPSEC加密设备------internet-------AR1220S---192.168.9.253。
处理过程
1. 由于IPSEC数据流可以ping通,怀疑对应业务报文未走IPSEC隧道。在AR2220-S上display ipsec statis esp,telnet测试无报文统计,ping测试有报文统计;
2. 192.168.9.253接在E0/0/1口上,用了一台台式机接在E0/0/2口上,将E0/0/2作为观察口,E0/0/1做镜像到2上,通过获取报文头
可以看到有到1054端口的报文;
3. 同时在路由器上做1054的流量统计,抓取到了报文
4. display ipsec statistic esp 无报文
信息表明AR1220收到了从192.168.9.253发送的telnet报文,但是没有通过IPSEC加密进行转发;192.168.9.253 ping 192.168.14.10则能够进行正常的转发。怀疑设备对于ICMP类报文进行了正常的IPSEC加密,而对于非ICMP报文走了其他的转发流程。
5. 进行一步核实配置,发现在nat outbound中已经排除了两个局域网网段的相互访问,如下:
6. 查看接口上的配置,发现192.168.9.253 地址配置了NAT SERVER,以便外网访问该接口的公网地址和端口号达到访问内网地址192.168.9.253及其端口号的目的。
interface GigabitEthernet0/0/0
description 1_Internet_R_gigabitethernet0/0/0
tcp adjust-mss 1200
ip address 172.XX.20.10 255.255.255.0
nat server protocol tcp global current-interface 8080 inside 192.168.9.253 8080
nat outbound 3000
ipsec policy center_vpn
查看该地址的NAT 会话,显示192.168.9.253访问对端地址时数据报文被转换到了公网,
7. 修改nat server 为nat static再次测试telnet正常:
nat static protocol tcp global current-interface 8080 inside 192.168.9.253 8080
根因
公网出接口配置为nat server protocol tcp global current-interface 8080 inside 192.168.9.253 8080
该命令会将从192.168.9.253发出的TCP报文都做nat将报文转换掉,所以经转换后的报文无法进IPSec隧道。
将配置修改为nat static protocol tcp global current-interface 8080 inside 192.168.9.253 8080后,业务正常。
Nat static只有是源地址为192.168.9.253且TCP端口号为8080的才会做nat转换,所以修改nat static后可以正常通信。
解决方案
修改nat server为nat static protocol tcp global current-interface 8080 inside 192.168.9.253 8080后,业务正常。