一 OSPF基本原理—邻居关系建立
邻居状态建立:
(1)Down:邻居初始状态,表示没有从邻居收到任何信息;
(2)init:此状态下,路由器已经收到邻居发送的Hello报文,但是自己的router-id不在所收到的Hello报文的邻居列表中,表示尚未于邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的列表中。
(3)2-Way:在此状态下,两台路由器已确认可以双向通信,邻居关系已经建立;但是还没建立邻接关系。这是建立邻接关系以前的最高级状态。如果网络为广播网络或者NBMA网络则选举DR/BDR。
在形成邻接关系过程中,需要对Hello报文携带的参数进行协商:
(1)如果接口端口的网络类型是广播型点到多点或者NBMA,所接受的Hello报文中Network Mask字段必须和接收端口的网络掩码一致,如果接收端口的网络类型为点到点类型或者是虚连接,则不检查Network Mask字段;
(2)所接收的Hello报文中的HelloInterval和RouterDeadInterval字段必须和接收端口的配置保持一致;
(3)所接收的Hello报文中的认证字段需要于本机配置一致;
(4)所接收的Hello报文中的Options字段中的E-bit(表示是否接收外部路由信息)必须和接收端口的相关区域配置保持一致。
(5)所接收的Hello报文中的区域字段必须和接收端口的配置一致。
邻居关系状态机:
二 OSPF基本原理—邻接关系建立
邻接状态建立:
- 邻接状态机变为ExStart以后,R1向R2发送第一个DD报文,在这个报文中,DD序列号被设置为552A(假设),Initial比特位为1表示这是第一个DD报文,More比特为1表示后续还有DD报文要发送,Master比特为1表示R1宣告自己为主路由器。
- 邻居状态机变为ExStart后,R2向R1发送第一个DD报文,在这个报文中,DD序列号被设置为5528(假设)。由于R2的Router ID比R1的大,所以R2应当为主路由器,Router ID的比较结束后,R1会产生一个NegotiationDone事件 ,所以R1状态机从ExStart改变为Exchange。
- 邻居状态机变为Exchange以后,R1发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息,序列号设置为R2在第二步里使用的序列号,More比特为0表示不需要另外的DD报文描述LSDB,Master比特为0表示R1宣告自己为从路由器。R2收到这个报文后,会产生一个NegotiationDone事件,邻居状态更改为Exchange。
- R2邻居状态变为Exchange以后,发送一个新的DD报文,该报