OSPF协议-DD报文

2.2.4 DD报文(Database Description)

        DD报文的作用有两个:选举主从、相互交互LSA摘要信息。以了解彼此的LSDB数据库中存在哪些LSA信息。

图2.8 DD报文的字段信息

如图2.8所示是DD报文的字段内容:

Interface MTU:接口的最大传输单元,华为默认不开启检测,仅当双方接口都开了MTU检测的时候,该字段才会生效。

双方的MTU值设置不一致的时候,且开启检测,会出现以下情况:

  • 如果主动端的MTU值更大,那么主动端发送的报文无法被被动端识别到,被动端将停留在Exstart状态,而主动端因为得不到被动端的确认报文,也停留在Exstart状态。
  • 如果被动端的MTU值跟大,主动端的发送的报文被动端能够识别,被动端确定了主从之后,发送报文给主动端,自己将邻居状态标记为Exchange状态,但是主动端无法识别被动端的报文,5s后将重传DD报文,而始终维持在Exstart状态。
  • 总结:主动端的MTU值更大的时候,两端处于Exstart状态,被动端更大,主动端处于Exstart状态,被动端的邻居处于Exchange状态。启动命令ospf mtu-enable,双方开启检测才会生效。

Option字段:和Hello报文中的一样

I bit位:置位1说明该数据包是首个DD报文,用来进行主从选举的

M bit位:置位1说明该DD报文后还有更多的报文。从设备确认为从设备之后,报文的M位均置0

MS bit位:置位1后,本报文的发送端为主动端。

DD Squence:DD报文的序列号,用于保持DD报文的有序交互,在确认主从后,主设备每发送一个DD报文,序列号加1,被设备都必须以主设备携带的报文序列号(不加一)作为自己的序列号进行回复确认(隐式确认)。

LSA摘要信息:是DD报文携带LSA摘要信息,具体内容如图2.9所示。

图2.9 DD报文携带的LSA摘要信息

LSA摘要信息的字段内容:只包含了摘要信息和可以比较新旧的参数

  • LS Age:LSA的生成时间,比较LSA新旧
  • Do Not Age Flag:置位后,该LSA不进行老化。
  • Options:和Hello报文的一致
  • LS type:LSA的类型
  • LS ID:LSA的名字
  • Advertising Router:宣告者路由器
  • Sequence Number:该LSA的序列号,是有符号的32bit数,从0x80000002到0再到开始到0x7FFFFFE结束。OSPFv2采用的线性序列号空间。序列号用于比较LSA新旧。
  • 校验:LSA携带的校验和,用于比较LSA的新旧
  • 长度:LSA的长度

        比较LSA新旧:收到的LSA信息和LSDB中的LSA信息进行比较,比较新旧。先比较序列号越大越优,在比较校验和越大越优,最后比较生成时间,时间间隔900内的,一样新,否则越小越优

DD报文的交互过程,如图2.10所示

图2.10 OSPF建立Full邻居关系的过程

  • R1和R2的Router ID分别为10.0.1.1和10.0.2.2并且二者已建立了邻居关系。当R1的邻居状态变为ExStart后,R1会发送第一个DD报文。此报文中,M-bit设置为1,表示后续还有DD报文要发送,MS-bit设置为1,表示R1宣告自己为Master。DD序列号被随机设置为X,I-bit设置为1,表示这是第一个DD报文。
  • 同样当R2的邻居状态变为ExStart后,R2也会发送第一个DD报文。此报文中,DD序列号被随机设置为Y(I-bit=1,M-bit=1,MS-bit=1,含义同上)。由于R2的Router ID较大,所以R2将成为真正的Master。收到此报文后,R1会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。
  • 当R1的邻居状态变为Exchange后,R1会发送一个新的DD报文,此报文中包含了LSDB的摘要信息,序列号设置为R2在步骤2中使用的序列号Y,I-bit=0,表示这不是第一个DD报文,M-bit=0,表示这是最后一个包含LSDB摘要信息的DD报文,MS-bit=0,表示R1宣告自己为Slave。收到此报文后,R2将邻居状态从ExStart变为Exchange。
  • 当R2的邻居状态变为Exchange后,R2会发送一个新的DD报文,此报文包含了LSDB的摘要信息。DD序列号设置为Y+1, MS-bit=1,表示R2宣告自己为Master。
  • 虽然R1不需要发送新的包含LSDB摘要信息的DD报文,但是作为Slave,R1需要对Master发送的每一个DD报文进行确认。所以,R1向R2发送一个新的DD报文,序列号为Y+1,该报文内容为空。发送完此报文后,R1产生一个Exchange-Done事件,将邻居状态变为Loading。R2收到此报文后,会将邻居状态变为Full(假设R2的LSDB是最新最全的,不需要向R1请求更新)。

注意:从路由器发送第一个带LSDB摘要信息的报文,主路由器发送第二个。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值