H3C OSPF更改接口MTU值后的邻居状态机
H3C OSPF更改接口MTU值后的邻居状态机
这几天在研究H3C的OSPF原理和配置,现在有2台路由器R3和R4通过各自的以太口E0/0互连,在对互连的IP地址和OSPF进行正确配置后,修改R3 E0/0接口的MTU值为1000(默认为1500),重启R3的OSPF进程,然后R3和R4依然可以建立邻接关系(即FULL)。
由于2台路由器在建立OSPF邻居关系(2-way)后会相互发送各自的LSDB的摘要即DD报文,DD报文中有MTU的参数,这样两台路由器的MTU参数不一致就无法协商通过,因此会停留在Exstart状态,但实际上还是会到FULL状态,这就奇怪了!开启R3的debug ospf packet ,将R3的OSPF进程重启,根据debug信息发现R3发给R4的DD报文中的MTU参数是0,而从R4接收到的DD报文中MTU的参数也是0,经查相关资料,才恍然大悟。 www.2cto.com
缺省情况下,接口发送DD报文时不填MTU值,即DD报文中的MTU值为0,所以即使修改了接口的MTU,在DD报文中的MTU仍然取值为0,分别进入R3和R4的E0/0接口下,使用ospf mtu-enable命令配置接口在发送DD报文中填本端的MTU值,这样修改后,再重启R3路由器的OSPF进程,debug信息中的MTU参数即是R3设置的了,debug信息中DD报文部分如下:
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:OSPF 1: SEND Packet.
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:Source Address: 34.34.34.3
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:Destination Address: 34.34.34.4
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:Ver# 2, Type: 2, Length: 32.
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:Router: 3.3.3.3, Area: 0.0.0.2, Checksum: 0.
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:AuType: 02, Key(ascii): 0 0 1 10 0 0 2 9e.
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:MTU: 1000, Option: _E_, R_I_M_MS Bit: _I_M_MS_.
*May 4 05:32:41:172 2010 RT3 RM/6/RMDEBUG:DD SeqNumber: 5990.
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:OSPF 1: RECV Packet.
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:Source Address: 34.34.34.4
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:Destination Address: 34.34.34.3
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:Ver# 2, Type: 2, Length: 32.
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:Router: 4.4.4.4, Area: 0.0.0.2, Checksum: 0.
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:AuType: 02, Key(ascii): 0 0 1 10 0 0 3 fb.
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:MTU: 1500, Option: _E_, R_I_M_MS Bit: _I_M_MS_. www.2cto.com
*May 4 05:32:41:188 2010 RT3 RM/6/RMDEBUG:DD SeqNumber: 59ad.
在R3上display ospf peer查看邻居状态如下
OSPF Process 1 with Router ID 3.3.3.3
Neighbor Brief Information
Area: 0.0.0.2
Router ID Address Pri Dead-Time Interface State
4.4.4.4 34.34.34.4 1 36 Eth0/1/1 ExStart/BDR
R3和R4之间的邻居状态机停留在Exstart状态。此时双方路由器在不断的发送DD报文。
实际环境中,如果一台H3C的路由器与其它厂商的路由器互联启OSPF,由于接口的MTU值可能不一致,同时H3C路由器在接口下开启了接口发送DD报文时填写MTU值的选项,那么就可能会出现上述的情况,即双方的OSPF邻居状态机始终停留在ExStart的状态,无法建立邻接关系(FULL)