问题描述
ABC三地互相打通ipsecvpn,A和B、A和C无问题,B和C地有问题。问题为隧道建立成功,而双向内网不通,通过查看日志没有发现报错。
问题分析步骤
第一步遇到问题首先查看配置,不通的和通的配置做对比分析,初次并未发现异常。
第二步抓包: B的内网地址10.7.0.35 C的内网地址172.16.18.95 B访问C:
- C上主机和防火墙未抓到包
- B上防火墙抓包:
- B上主机抓包: 通过分析,B请求C的包未发送成功,未到达C
C访问B
-
B上主机抓包如下:
-
B上防火墙抓包:
-
C上主机抓包: 通过分析,C的请求到了B,第1次握手成功,第二次B给C回过去失败,这种一般两种情况,第一种是B没发出去,第二种是B发出去不知道发给了谁,C没收到
第三步进一步排查,第二步的定位的问题是B发给C的请求包发出了(防火墙抓到了包),但不知道去了哪儿。还需要进一步按照这个思路排查配置:
- 防火墙上查看ike和ipsec状态,发现了诡异的地方
对比分析以上2个图可知,上面的ipsec的加密流的目的地址掩码是19位,下面的是24位,存在了包含关系,发往172.16.18.95的数据包走了上面的ipsec,所以是不通的。
解决办法
把19位的目的地址改成24位的或其他,让2个目的地址不存在包含被包含关系。