GRE ***中为什么引入keepalive 机制?

 
前几天在做ipsec over gre 和gre over ipsec 时发现:gre over ipsec 能够自己建立起ipsec sa 和ike sa ,为什么呢?认真思考了下,与gre中的keepalive机制有关系。
 
 
由于gre隧道在建立时,接口没有OSI一层协议的做检测,所以只要本端源地址有效,并且隧道终点地址有路由可达,那么Great隧道接口就会UP,而无论隧道对端是否已经配置隧道接口
 
 
注意:如果GRE隧道接口状态为Down,无非是以下三种情况:
1.没有去往隧道终点地址的路由。 
2.去往隧道终点地址的路由指向了隧道接口自己。 
3.隧道起源地址的接口状态为down。
 
 
为了使GRE隧道接口状态保持双方一致,引入了GRE Keepalive机制,在超过指定的时间没有收到对端的回应,便认为对端已失效,从而将本端的line protocol 状态为Down。
默认情况下,gre keepalive 默认10秒发一个若30秒之后没有收到对端的Keepalive信息,便认为对端已失效。
 
 
命令详解:keepalive 
tunnel视图
当配置了该命令后,设备会从Tunnel接口定期发送GRE的keepalive报文。如果超时时间内没有收到隧道对端的回应,则本端重新发送keepalive报文。如果达到最大传送次数后仍然没有收到对端的回应,则把本端Tunnel接口的协议连接down掉。如果Tunnel接口为down状态,当收到对端回复的Keepalive确认报文时,Tunnel接口的状态将转换为up,否则保持down状态。
 
相关配置可参考“接入分册/逻辑接口命令”中的命令interface tunnel和display interface tunnel。
 
【举例】
 
# 配置GRE的keepalive报文发送周期为20s,最大传送次数为5次。
 
<Sysname> system-view
 
[Sysname] interface tunnel 0
 
[Sysname-Tunnel0] keepalive 20 5