OSPF的邻居状态机,当进入exstart状态时,双方各自发送一个DD包,通过DD包携带的信息进行主从选举,主从选举完成后进行LSA摘要的同步,此过程有个隐式确认机制,以下详解:

DD包中有三个FLAG位:I M MS。I表示第一个DD包,用来主从选举,M位表示后续是否还有DD包,MS位表示是否为主设备。

1.初始状态:每台设备最初都认为自己是主设备(Master),这体现在DD报文中的M/S字段被设置为1。同时,每台设备都会维护一个DD序列号(DDSeq),用于选举主从和同步链路状态数据库。

2.比较Route ID:当两台路由器开始交换DD数据包时,它们会比较彼此的Route ID。Route ID是一个唯一的标识符,用于区分网络中的不同路由器。在OSPF中,Route ID可以是路由器的某个接口的IP地址,也可以是手动配置的。如果一台路由器的Route ID大于另一台路由器,那么它将被视为具有更高的优先级。

3.确定主从关系:基于Route ID的比较结果,路由器将确定它们之间的主从关系。具有较大Route ID的路由器将成为主设备(Master),而另一台路由器则成为从设备(Slave)。这个过程确保了在信息同步过程中有一个明确的领导者,从而避免了冲突和混乱。

4.信息同步:一旦主从关系确定,从设备将首先发送DD数据包(包含其自身的LSA摘要)给主设备。这些DD数据包的序列号将跟随主设备的序列号(即隐式确认)。随后,主设备将发送DD数据包(包含其自身的LSA摘要)给从设备,序列号将加1,从设备发送相同序列号的DD数据包作为确认,以此类推,直至双方的M位置零。通过这种方式,主从设备之间将交换完整的链路状态数据库信息。

注意一下几点:

主从隐式确认机制是单向的,从设备确认主设备,而主设备却不用确认从设备

当从设备的LSDB大,主设备DD包的M位置0,而从设备的M位不为零时,为了继续同步LSA摘要信息,主设备仍然会发送SEQ+1的DD报文(LSA摘要为空),从设备回应相同序列号的DD数据包(包含LSA摘要)作为确认,直至主设备收到从设备的DD数据包的M位为0为止。

当主设备的LSDB大,从设备DD包的M位置0,而主设备的M位不为零时,主设备会继续发送DD数据包(包含LSA摘要),从设备会回应相同序列号的DD数据包(不包含LSA摘要)作为确认,直到主设备发送最后一个M位为0的DD数据包,此时从设备仍然会对这最后一个DD数据包做确认。