- 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
说明:
- R2给R1发送的Hello报文,R1收到了——否则,R1不会知道R2的Router ID
- 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位:
- I(Init)——初始位为1 //表示这个DD报文时第一个DD报文
- 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 】
邻居的状态 不是我的状态,我的状态应该在邻居那里查看