6

华为 OSPF邻居建立的过程

 3 years ago
source link: https://blog.csdn.net/HYD696/article/details/112429756
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

哈喽,大家好!我是艺博东 ,是一个思科出身、专注于华为的网工;好了,话不多说,我们直接进入正题。

在这里插入图片描述

二、基础配置

[Huawei]sysname AR-1
[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]ip address  10.1.12.1 24
[AR-1-GigabitEthernet0/0/0]q
[AR-1]ospf 1 router-id 1.1.1.1
[AR-1-ospf-1]a 0
[AR-1-ospf-1-area-0.0.0.0]network  10.1.12.1 0.0.0.0
[Huawei]sysname AR-2
[AR-2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]ip address  10.1.12.2 24
[AR-2-GigabitEthernet0/0/0]q
[AR-2]ospf 1 router-id 2.2.2.2
[AR-2-ospf-1]a 0
[AR-2-ospf-1-area-0.0.0.0]network  10.1.12.2 0.0.0.0

重启OSPF进程:reset ospf process
在这里插入图片描述

三、状态机

分邻居建立,邻接建立两部分来进行

在R1的G0/0/0接口进行抓包
在这里插入图片描述

1、邻居关系的建立

在这里插入图片描述

(1)DOWN状态

表示的是还没有发现邻居

在这里插入图片描述
R2 同理;接口使能之后,组播发送hello报文目的地址为224.0.0.5携带了自己的R-ID为2.2.2.2,邻居路由器还不知道,DR也还没有选举出来。

(2)init状态

收到邻居的hello包,但没有发现自己的R-ID。

在这里插入图片描述
R1发送hello报文,携带R-ID为1.1.1.1,邻居路由器为R2,R2收到之后,转态进入了init转态。并将该hello报文的R-id,添加到hello的邻居列表中。

同理:R2发送hello报文,携带R-ID为2.2.2.2,邻居路由器为R1,R1收到之后,转态进入了init转态。并将该hello报文的R-id,添加到hello的邻居列表中。

(3)2-way状态

R1收到邻居列表中含有自己R-ID的hello报文,进入2-way状态,建立OSPF邻居关系,并把该R-ID的添加到自己的OSPF邻居列表中。

R2收到邻居列表中含有自己R-ID的hello报文,进入2-way状态,建立OSPF邻居关系,并把该R-ID的添加到自己的OSPF邻居列表中。

注意:当收到一个 HELLO 包中,没有包含自己的 router id,这时为 one-way

2、邻接关系的建立

在这里插入图片描述

(4)Exstart,exchange状态

两台设备第一份DD报文发出之后,还是exstart状态

进入exstart状态,并交互R1、R2都会发送一个空的DD报文,用于选举主从路由器。

主路由器定义一个序列号Seq,每发送一个新的DD报文将Seq+1,作为从路由器的一方,每次发送DD报文时使用接收到的上一个主路由器的DD报文中的Seq。

在这里插入图片描述
I=1表示这个是第—个DD报文,M=1表示这不是最后一个报文,MS=1表示宣称自己是主路由器seq为=209。

R2,DD seq=209,I=1,M=1,MS=1

在这里插入图片描述
R1,DD seq=212,I=1,M=1,MS=1

在这里插入图片描述
首先R1发DD报文,seq=212,I=1,M=1,MS=1。

在这里插入图片描述
R2发DD报文,seq=209,I=1,M=1,MS=1。

R2收到R1的DD报文后,将R1的邻居状态机改为exstart,并回应一个DD报文,由于R2的R-ID大,所以在报文中R2认为自己是主路由器,并且重新定义一个seq=209 I=1,M=1,MS=1。

在这里插入图片描述
R1收到报文后,同意了R2作为主路由,并将R2的邻居状态机改为exchange。R1使用R2的seq=209来发送新的DD报文,该报文开始正式的传送LSA的摘要信息。在报文中R1将I=0,M=0,MS=0,说明自己是从路由器。

在这里插入图片描述
R2收到报文后,将R1的邻居状态机改为exchange,并发送新的DD报文来描述自己的LSA摘要,此时R2将报文的seq=209+1。

(5)loadging,full状态

在这里插入图片描述

R1收到最后一个DD报文后,发现R2的数据库中有许多LSA是自己没有的,R1将邻居状态机改为Loading状态,此时R2也收到了R1的最后一个DD报文,但R1的LSA,R2都已经有了,不需要再请求,所以直接将R1的邻居状态机改为Full状态。(DD报文交换完成后进入loading状态,发送LSR,LSU, LSAck完成LSA的交换 )

在这里插入图片描述

唯一标识一条LSA的三要素:LS type,LS ID,Adv router;

AR2向AR1发送LSR报文请求该LSA,此时状态由exchange变为loading状态。

扩展: DD交互完成后,如果需要对方的LSA,则发LSR请求,如果都一样,那么就直接FULL

在这里插入图片描述
AR1收到AR2的LSR请求报文,便会回复一个LSU报文携带AR2要请求的LSA明细信息。

R2收到LSU报文同步完成后进入FULL状态,并且向R1发送LSAck报文表示确定收到了LSU报文且同步完成。

在这里插入图片描述
LSACK报文

在这里插入图片描述
在第一个空的DD报文之后,hello才选举出DR,BDR。

在这里插入图片描述
接口使能之后,发出第一份 hello 报文的时候就开始计时,40S之内不会认为自己是DR。如果40S超时之后,还是没有收到携带DR、BDR参数字段的Hello报文,就认为自己是DR。

千里之堤,溃于蚁穴。


欢迎访问我的易百纳技术社区文章《华为 OSPF邻居建立的过程》
https://www.ebaina.com/articles/140000005378


在这里插入图片描述
好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK