133.每日一练
一、题目
[单选]OSPF协议在哪种状态下确定DD报文的主从关系?
A. 2-way
B. Exchange
C. ExStart
D. Full
二、答案
C
三、解析
1.Down
在 DOWN 状态下,OSPF 接口仍然有尝试发现邻居的意愿,因此会不断的发送组播 hello 包。
2.Init
当 OSPF 接口收到链路上某个邻居发来的第一个 HELLO 包的时候,它会在接口上将该邻居置为 init 状态,注意这个 hello 包中可能并未包含任何的邻居信息。但是这至少证明,我这个 OSPF 接口在这个链路上,至少有个活的邻居。
下面是一个没有发现任何 active neighbor 的 hello 包:
3.Two-way
当 OSPF 路由器在某个链路上发现了邻居后,它自己发送的 hello 包里就会增加 active neighbor 字段,用于存储在该链路上发现的 OSPF 邻居。当一台 OSPF router 看到自己(的 RouterID)出现在邻居发过来的的 hello 分组中,它就会将该邻居置为 Two-way。该状态是 OSPF 邻居之间可以具有的最基本的关系,也是第一个稳态,但是此时两者还不能共享路由信息。
下面是一个已经在链路上发现了邻居 1.1.1.1 的 hello:
4.Ex-Start
一台 OSPF 路由器在将某个邻居置为 2way 状态后,就开始发送空的 DBD 包,用于协商 Master/Slave(主从)。这个就是 ex-start 状态。两台 Router 间用空的 DBD 分组确定 Master 和 Slave 关系(注意不是 DR 和 BDR),在 DBD 包中有 3 个标记位用来管理邻接关系的建立过程:
I 位或称为初始位(Initial bit) 用于 Ex-Start 协商主从关系的初始化协商的 DBD 包,该位置 1 代表此报文用于协商主从;
M 位 或称为后继位(More bit) 如果这不是 OSPF Router 发送的最后一个 DBD,该位置 1;
MS 位 或称为主/从位(Master/Slave bit) 如果始发路由器是 Master,则该位置 1;
如果某台OSPF Router收到邻居发来的DBD,I位也就是Init位置0,则意味着Ex-Start状态结束,并且MS/Slave 已经选出来了,那么该路由器会将邻居置为Ex-change状态,开始用包含LSA头部的DBD交换各自的LSBD。
下面是一个用于初始化协商的 DBD 消息:
5.Ex-change
这个过程,双方使用包含自己 LSA 头部的 DBD 报文进行交互,并且将对方发过来的 LSA 头部、并且自己感兴趣的 LSA(或自己没有的 LSA)存储在一个本地 OSPF 接口的队列里,以便在下一个阶段进行 LSA 详细信息的请求。当某个 OSPF 接口收到邻居发来的 DBD,M 位置 0,则表示对方已经发完 DBD 了,与此同时,如果该路由器的这个 OSPF 接口上存在待请求的 LSA,那么它会将这个邻居置为 Loading 状态。
下面是一个装载了 LSA 头部的 DBD 消息:
6.Loading
OSPF Router 使用 LSR 去请求 LSA 的详细信息,对方使用 LSU 发来更新,因此只有 LSU 里才有 LSA 的完整信息。在收到 LSU 后,一方面本地使用 LSAack 进行确认,另一方面将 LSU 中包含的 LSA 装载进自己的LSDB。
以下是一个 LSR 消息,非常的简单:
接着是一个 LSU 消息,里头包含了 LSA 的完整信息,LSA 这里暂时不做详细介绍,请看后续知识点;
7. Full 邻接状态
Loading 状态结束后,也就是本地 OSPF 接口上再没有待更新的 LSA 队列后,将邻居置为 FULL。
查看邻居详细信息
[R1]display ospf peer 2.2.2.2
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 192.168.1.1(GigabitEthernet0/0/0)’s neighbors
Router ID: 2.2.2.2 Address: 192.168.1.2
State: Full Mode:Nbr is Master Priority: 1
DR: 192.168.1.2 BDR: 192.168.1.1 MTU: 0
Dead timer due in 33 sec
Retrans timer interval: 5
Neighbor is up for 00:00:19
Authentication Sequence: [ 0 ]
显示的是 NBMA 环境下,OSPF 邻居的数据结构,其中邻居的实际接口优先级是 1