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

在学习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如何建立邻接关系 。


推荐阅读