组网及说明:
vpn1与vpn2建立gre over ipsec,vpn1与vpn2的gre的tunnel地址分别为10.0.0.1与10.0.0.2,隧道源目地址分别为11.11.11.11与22.22.22.22,内网分别使用loopback10与loopback20代替,gre保护的内网地址通过ospf打通,建立ipsec的公网地址通过静态路由打通.
问题描述:
现场ipsec隧道已经建立,但是vpn1与vpn2的loopbakc地址无法互通
问题分析:
排查分析发现以tunnel口建立的ospf邻居一直在down与full之间震荡,查看vpn1的配置,发现vpn1的ospf将202.0.0.1公网地址network了,
ospf 1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 3.3.3.3 0.0.0.0
network 10.0.0.0 0.0.0.3
network 202.0.0.1 0.0.0.0
具体分析如下:
当ospf邻居down的时候,hello报文封装ipsec公网头,通过默认路由发出,但是当ospf邻居建立之后,因为202.0.0.1被宣告了,所以该地址也要封装,封装之后还是202.0.0.1,然后再走封装,如此无线循环封装.
解决方案:
在vpn1设备的ospf中,将vpn1的公网202.0.0.1不进行宣告,此时vpn1的loopbakc地址就能ping通vpn2设备的loobpack地址了