OSPF的7大状态和5大报文详讲_信息与通信

- Down
OSPF的初始状态

- Init
初始化——我刚刚给别人发Hello报文

我们可以将OSPF邻居建立的过程理解为:我和你打招呼,你和我打招呼,然后咱俩成了邻居
比如:
R1和R2要建立OSPF邻居
R1给R2发送了Hello报文,但是R1此时发送的Hello报文中,并没有Active Neighbor字段

即:R1此时还不认识R2,那么R2会认为:R1的状态是初始化的状态——Init
纯文本

- 2-way——意味着邻居的开始!
也叫双向通信状态

比如:
R1和R2要建立OSPF邻居
R1给R2发送了Hello报文,而R1的Hello报文中,Active Neighbor字段是:R2的Router ID

说明:

  1. R2给R1发送的Hello报文,R1收到了——否则,R1不会知道R2的Router ID
  2. R2成功的接收了来自于R1的Hello报文——否则,R2也不会知道,R1收到了R2发送的Hello报文

即:R2清楚的知道:R2和R1可以互相通信了!此时,对于R2来说,R1处于2-way状态
纯文本

- Exstart——交换DD报文的初始状态

交换的是第一个DD报文,也叫空DD报文,不带数据库简要描述信息!

我们都知道:DD报文时数据库简要信息描述报文

如果说,两台设备的数据库,是两个图书馆,那么,DD报文,就是:图书馆的书籍名录简介

而空DD报文,是指:没有任何关于LSA的描述的DD报文


设备通过空DD报文,确定主从关系!

空DD报文有三个bit位:

  1. I(Init)——初始位为1 //表示这个DD报文时第一个DD报文
  2. M(More)——初始位为1 //表示这个DD报文后面还有更多的DD报文
    3.M/S(Master/Slave)——初始位为1 //表示我认为自己是主路由器

通过Router ID比较(Router ID大的是主路由器),确定主从关系,从而Slave发送的DD报文的序列号,必须是Master发送的DD报文的序列号

即:Slave必须收到Master发送的DD报文,Slave才会发送DD报文

这样做的目的:就是提高OSPF交换数据的可靠性!!!
纯文本

- Exchange——交换其余的DD报文

此时的DD报文,都带着“LSA Header”

所谓的“LSA Header”,就是数据库的简要描述信息
纯文本

- Loading——意味着邻居的结束 ——加载

LSR——链路状态请求报文——设备发送LSR,请求自己数据库中没有的LSA

LSU——链路状态更新报文——设备收到对端发送的LSR,会将LSA放在LSU中,发送给对方

LSAck——链路状态确认报文——设备收到对端的LSU,会发送LSAck进行接收的确认
纯文本

- FULL——邻接状态

两台设备的OSPF数据库完全同步(完全相同),此时,彼此的状态是FULL——邻接
纯文本

🔻OSPF的邻居和邻接
邻居:2-way到Loading

邻接:FULL
纯文本

🔻display ospf peer brief命令详解
< R1 >display ospf peer brief

OSPF Process 1 with Router ID 1.1.1.1 //OSPF进程1,Router ID是1.1.1.1
Peer Statistic Information //邻居 统计 信息

Area Id

Interface

Neighbor id

State

0.0.0.0

GigabitEthernet0/0/0

2.2.2.2

Full

0.0.0.13

GigabitEthernet0/0/1

3.3.3.3

Full

【 Area ID 】

邻居所在的区域

【 Interface 】

我通过哪个接口,和对端建立邻居

【 Neighbor id 】

邻居的Router ID

【 State 】

邻居的状态

不是我的状态,我的状态应该在邻居那里查看