<返回更多

图文详解以太网中OSPF如何建立邻接关系?

2020-12-25    
加入收藏

在学习OSPF邻接关系前需要先了解OSPF的几种接口状态及邻居状态。

1.OSPF路由器接口状态

以太网中OSPF路由器接口状态分为6种:

1、 Down状态,运行OSPF的接口初始化的状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

Down接口状态

2、Waiting状态,路由器接口正在竞选DR、BDR的状态。竞选DR与BDR将于waiting time时间周期内完成,若DR与BDR已经竞选完成后加入的ospf路由器将不会重新选举DR与BDR。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

Waiting接口状态

3、 DR状态,路由器成为所连网络的DR,并将和所有邻居路由器建立邻接关系。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

DR接口状态

4、 BDR状态,路由器成为接口所连网络的BDR,并将和所有邻居路由器建立邻接关系。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

BDR接口状态

5、 DRother状态,所连网络中除DR与BDR外剩余路由器接口,仅仅会和所连网络上的DR和BDR建立邻接关系。DRother之间不会建立邻接关系。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

DROTHER接口状态

6、Loopback,loopback接口的状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

loopback接口状态

注:由于OSPF是一种接口敏感性协议,所以一台路由器所在不同区域的接口可能会是不同的接口状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

同区域的接口可能呈现不同的接口状态

此外,在点对点网络环境中还有point to point接口状态,此状态为运行OSPF的点对点接口开始发送Hello报文,并尝试和对端的路由器建立邻接关系。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

point to point接口状态

2.OSPF路由器邻居状态

以太网中OSPF路由器邻居状态分为7种:

1、 Down状态:邻居状态机的初始状态,是指在之前的Dead-Interval时间(在以太网环境中,默认的Dead-Interval时间为Hello-Interval的4倍,即40秒)内没有收到对方的Hello报文。

2、 Init状态:此状态表示此设备已经收到了邻居的HELLO报文,但邻居并没有收到我发的HELLO报文。(邻居发来的HELLO报文中列出的邻居里没有包含我的Router ID)。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

Down邻居状态

3、2-Way状态:此状态表示邻居之间双方互相收到了对方发送的HELLO报文,建立了邻居关系(并非邻接关系)。在以太网环境中DROTHER之间状态将一直维持在2-Way状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

2-Way邻居状态

4、 ExStart状态:此状态标识邻居之间交互协商DBD报文,协商邻居主从关系及以哪台设备的序列号为基准发送报文,主从关系的作用在于后续同步LSA时哪台设备为主动。

 

5、 Exchange状态:本机及邻居路由器将LSDB中的LSA数据的索引信息使用DBD报文来描述,并互相发送给对方。接收到DBD报文的一方将从ExStart状态转换为Exchange状态。

 

6、 Loading状态:在互相收到对方的DBD报文后与本地LSDB进行匹配,若相同则进入FULL状态,若有缺失LSA条目,路由器将停留在Loading状态,发送LSR报文向邻居请求发送本地缺失的LSA信息,直到收到对方的DBD报文后与本地LSDB进行匹配相同后进入FULL状态。

 

7、 Full状态:此状态表示邻居路由器的LSDB中所有的LSA本路由器已全部学习到,即同区域邻居的LSDB与本机LSDB完全相同。此时,本机路由器和邻居路由器建立了邻接关系

干货分享:图文详解以太网中OSPF如何建立邻接关系?

FULL邻居状态

此外,在NBMA网络中还会有attempt状态,即本地路由器通过手动配置的邻居信息尝试发送HELLO报文但没有收到回复信息时路由器的状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

attempt邻居状态

3. 以太网中OSPF如何建立邻接关系?

OSPF建立邻接关系分为三步:第一步为邻居发现与建立邻居关系,第二步为路由发现与建立邻接关系,第三步为同步LSDB。

以太网属于BMA网络,即需要竞选DR与BDR,所有DROTHER与DR和BDR建立邻接关系,DROTHER之间只建立邻居关系。

下面将通过图文的方式分三步讲述以太网中OSPF如何建立邻接关系。

 

3.1 第一步:邻居发现与建立邻居关系

邻居关系为运行OPSF的设备接口间两两建立,下图为一对邻居建立的过程。

 

在一个未知的以太网网络环境中,路由器A向网络中组播发送hello报文。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

HELLO报文寻找邻居

路由器B收到路由器A发来的HELLO报文。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

HELLO报文寻找邻居

路由器B响应路由器A的HELLO报文。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

响应HELLO报文

路由器A确认收到路由器B发送的HELLO报文。至此A与B的邻居状态为2-WAY,即建立邻居关系。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

 

根据上述的邻居建立过程,路由器A、B、C、D又两两之间互相建立了邻居关系,开始竞选DR和BDR。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

竞选DR与BDR

竞选DR与BDR首先需要看OSPF接口的优先级。最高的成为DR,次高的成为BDR。优先级为0的路由器不参与DR与BDR的竞选,直接成为DROTHER。

由于路由器接口默认的OSPF优先级值为均为1,所以Router-ID最大的将成为DR,次大的将成为BDR。

 

当一个OSPF区域中的DR与BDR竞选完成后,接口状态将脱离wating,变为DR、BDR或DROTHER状态,此时再有更高优先级的接口进去该区域将不会抢占DR和BDR的地位。如果DR出现故障则BDR成为DR,重新选举BDR;如果BDR出现故障则重新选举BDR。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

竞选DR与BDR完成

3.2 第二步:路由发现与建立邻接关系

由于以太网网络下OSPF建立邻接关系仅为DR与BDR、DROTHER与DR和BDR之间,DROTHER与DROTHER仅保持邻居关系。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

以太网网络下邻接关系

下图用一对邻接关系来解释邻接之间发现路由的过程:

邻接关系协商主从关系:

干货分享:图文详解以太网中OSPF如何建立邻接关系?

协商主从关系

交换DBD索引报文:

干货分享:图文详解以太网中OSPF如何建立邻接关系?

交换DBD索引报文

3.3 第三步:同步LSDB

下图用一对邻接关系来解释邻接之间同步LSDB的过程:

同步LSDB分以下两种情况:

第一种:在交换完最后一个DBD分组索引报文后(M标志位为0),若发现邻居发来的所有DBD分组报文中所含的所有索引内容都与本地LSDB中内容相同。OSPF邻居状态变为FULL状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

同步LSDB

第二种:在交换完最后一个DBD分组索引报文后(M标志位为0),若发现邻居发来的DBD分组报文中有索引内容与本地LSDB中内容不相同,如果LSDB中LSA信息少于或旧于(LSA序列号用于判断LSA信息的新老程度)DBD报文索引内容,则OSPF邻居状态变为loading状态后,向邻居发送LSR分组报文对缺失或未更新的LSA进行请求,邻居收到LSR分组报文后发送LSU分组报文将缺失LSA信息发给本端,本端收到LSU更新分组报文后向邻居发送LSACK确认分组报文后进入FULL状态。

干货分享:图文详解以太网中OSPF如何建立邻接关系?

同步LSDB

OSPF报文类型及作用在之前的原创文章中有讲述,链接如下:

干货分享:OSPF是什么?OSPF基础知识及五种报文类型解析

 

以上内容均为本人对所掌握知识总结归纳所创作的原创文章,希望能给大家的学习过程带来帮助,如有技术理解错误希望能够得到大家的指正,大家共同学习,共同进步。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>