1.首先要明白gre是什么时候进行封装的-----当一个普通的报文查找路由表查到下一跳是tunnel口时进行gre封装.
2.了解ipsec什么时候进行封装的----当一个报文从运用了ipsec借口出去的时候进行ipsec封装.
拓扑
tunnel口up时的路由表
tunnel口down时的路由表
产生up down原因:
首先第一个rip包过来,肯定是从tunnel口出去的,所以进行gre封装,然后查找路由表,发现没有10.2.2.1的路由(10.1.1.1和10.2.2.1 建隧道.)只有匹配默认路由出去.所以进行ipsec的封装. 双方都学到对方的路由,tunnel口up.但再一次进行路由信息交换时,还是tunnel口进行封装,封装后的源ip为10.1.1.1目的ip为10.2.2.1.查找路由表,发现10.2.2.1可达.那么交给tunnel
口.tunnel口又进行封装,无限循环,导致包无法发出.在debugging tunnel口时会出现error信息.tunnel error:This packet has looped too many times in the local device.然后tunnel口down掉.
要解决此问题,不network建邻居的loopback口.若用rip协议的时一定要network loopback口时,用router-policy对loopback口的路由进行过滤.。