OSPF在邻居与邻接建立的过程中会经过多个状态机的变化,状态机的出现不仅能让我们了解OSPF建立过程,也能在OSPF出现故障的时候通过状态机的状态来粗略判断问题的所在。
(1)邻居建立状态变化过程
1、Down状态:这是邻居的初始状态,表示没有从邻居收到任何信息。
启用了OSPF功能的链路默认成为down状态,并开始向外发送Hello报文(基于网络类型的不同发送方式也会不同,广播类型Hello为组播发送)报文发出之后,从Down状态转Init状态。
在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为Poll Interval,通常和Router Dead Interval间隔相同。
注意:OSPF的每条链路都会经历状态机,每条OSPF链路的状态机互不影响。
启用OSPF的链路从Down状态开始,向外发送Hello报文后转为Init状态。
2、Init状态:在此状态下,路由器已经从邻居收到了Hello报文。
在Init状态下的链路,如果接收到传来的Hello包中含有自己的router-id,则表示对端已经发现了自己,此时链路就能成为2-way状态了。
3、Attempt状态(NBMA)
该状态仅发生在NBMA网络中,表明该链路在发送Hello报文之后,到达了失效时间(dead interval)仍然没有收到对端回复Hello报文。如果Router Dead Interval间隔内未收到邻居的Hello报文,则转为Down状态。
处于该状态下的链路仍然会向对端发送Hello报文。
4、2-way状态:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
其它链路类型在成为2-way之后,发送第一个空DD报文后,进入Exstart状态。(因为在其它网络类型中,DD报文通过单播发送,无法确认谁先发送DD报文,同时为了保障DD的可靠传递,需要进行选举主机设备)
如果链路为P2P类型,则直接进入Exchange状态进行交互DD报文(因为p2p类型链路所有报文交互都是组播,同时p2p是点到点网络,完全不需要担心LSA传递过程中丢失)
在邻居建立过程中,为了提高OSPF网络收敛的速度。在广播网络中建立邻居时,需要同时进行DR与BDR的选举。(2-way建立之前或之后就已经选举出DR与BDR了)
选举DR与BDR主要为了解决同网络中,报文信息相互发送造成网络中流量过大的问题。通过选举DR与BDR实现流量的统一整理与发送,减少网络中的OSPF报文过多,同时提高收敛的速度。
(2)邻接建立状态变化过程
ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文,主从关系是在此状态下形成的。初始DD序列号是在此状态下决定的,在此状态下发送的DD报文不包含链路状态描述。
Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。
Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。
Full:两台路由器的LSDB已经同步。
(3)OSPF的3种稳定状态
什么是稳定的状态?即链路状态会长时间所处的状态机。
在OSPF状态机中,有三个稳定的状态机状态:Down、2-way、Full
Down:启用OSPF功能的链路默认所处状态机 或者 邻居失效后的状态。
2-way:在交互了Hello报文建立邻居之后所处的状态,DR-Other与DR-Other之间所处的状态。
Full:在邻接建立成功之后的状态,也是OSPF的最终状态。
2、DR、BDR
(1)DR、BDR、DR-Other介绍
每一个含有至少两个路由器的广播型网络和NBMA网络都有一个DR和BDR。
DR和BDR可以减少路由器之间的邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。同时保证网络的稳定性和可靠性。
DR负责收集本地链路信息并分发给其他邻居路由器,BDR备份DR的信息,并在DR故障时自动接替其角色,从而维护网络拓扑信息的更新和分发。
为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份:
1)DR(Designated Router,指定路由器):一个广播性、多接入网络中的指定路由器(DR)。OSPF协议启动后开始选举而来。
DR是某个网段中的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。
DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口。
DR特点和作用
1)在每个多播或非广播多点接入(NBMA)网络中,选举一个DR。BMA网络中必须有DR,可以没有BDR。
2)DR负责与其他路由器交换Hello报文和链路状态信息(LSA)。
3)DR汇总其他路由器的链路状态信息,并将其反映在区域内的LSDB中。
4)DR与所有人建立FULL邻接关系。
5)DR能够减少链路状态信息更新的洪泛,提高网络的收敛速度。
6)DR和BDR之间建立邻居关系,DR负责向BDR和其他路由器发送链路状态信息
2)BDR(Backup Designated Router,备份指定路由器):是作为DR的备份存在的路由器。BDR接收并转发来自其他路由器的链路状态信息。是由OSPF启动后选举而来。
BDR特点和作用
1)在每个多播或非广播多点接入(NBMA)网络中,选举一个BDR。
2)BDR的功能与DR类似,但仅在DR不可用时才接替其角色。
3)BDR负责与其他路由器交换Hello报文和链路状态信息(LSA)。
4)BDR仅向其他路由器发送链路状态信息,不向其他BDR发送信息。
5)BDR能够快速接管DR的角色,并确保网络中的DR角色不会出现间断。
6)BDR只向其他路由器发送链路状态信息,不向其他BDR发送信息。
7)DR和BDR之间维护特殊的邻居关系,确保在DR发生故障时BDR可以接替其角色。
8)BDR会与所有人建立FULL的邻接关系
3)非指定/备份指定路由器(Designated Router Other,DR-Other)没有成为DR与BDR设备的其它OSPF设备称为DR-Other设备。
DR-Other特点和作用
1)DR-Other之间只会建立2-WAY邻居关系。
2)DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态。
(2)DR、BDR、DR-Other的关系
每条MA/NBMA链路中,都会独立选举DR、BDR。BDR会与所有人建立FULL的邻接关系
BDR是DR备份,DR失效之后,BDR成为DR,同时也将重新选举新的BDR。
DR与BDR没有抢占性,当网络中出现新的更优先的路由器,也不会成为抢占现有网络中的DR身份。
接口优先级为0将不参与选举,如果此时为DR/BDR将立马失效,成为DRother。
区别:
1)DR和BDR选举发生在2-WAY状态。作用:保证一个广播域中减少无用的泛洪的OSPF报文的流量。
2)主从关系选举发生在exstart状态。作用:保证数据库同步时的可靠及有序。
主题 | 描述 |
DR(Designated Router) | 被选举为网络中某一段子网的代表,负贵与其他路由器交换链路状态信息并汇总网络拓扑信息。 |
BDR(Backup Designated Router) | 作为DR的备份,接收并转发链路状态信息,当DR不可用时,BDR将接替其角色并成为新的DR。 |
DR和BDR的选举过程 | 通过Hello报文交换和优先级比较来选举DR和BDR,优先级高的路由器将成为DR,第二高的则成为BDR。 |
DR和BDR的特点 | DR和BDR之间建立邻居关系,DR负责向BDR和其他路由器发送链路状态信息,BDR只向其他路由器发送链路状态信息。 |
3、DR和BDR选举
(1)为什么选举DR和BDR
在一个共享的广播网络多台路由器建立OSPF,有可能会产生大量的OSPF邻居。在这些大量的OSPF邻居发送大量的OSPF报文,造成其他路由器接收到大量的OSPF重复报文,浪费带宽资源和设备CPU计算资源。
通过DR和BDR的特点和选举过程,OSPF网络能够减少链路状态信息的洪泛和更新开销,提高网络的性能和可靠性。
选举DR与BDR主要为了解决同网络中,报文信息相互发送造成网络中流量过大的问题。通过选举DR与BDR实现流量的统一整理与发送,减少网络中的OSPF报文过多,同时提高收敛的速度。
如上左图:当DR和BDR选举完成之后,R4将路由通告给R1和R2,然而R2作为BDR,此时他知道DR还在(不会去代替DR,去通告其他DRother),所以R2收到路由存放在本地之后不会通告出去,而是由BR通告给R3。此时减少了重复通告,优化设备性能。
(2)DR和BDR选举过程
DR/BDR选举过程的流程图:
在邻居建立过程中,为了提高OSPF网络收敛的速度。
在P2P网络及P2MP网络上,具有邻居关系的路由器之间会进一步建立邻接关系。
在广播网络中建立邻居时,需要同时进行DR与BDR的选举。(2-way建立之前或之后就已经选举出DR与BDR了)DR和BDR的选举过程是通过Hello报文的交换和优先级比较来实现的。
在广播型及NBMA网络上,DR-Other路由器之间只能建立邻居关系,不能建立邻接关系。DR-Other路由器与DR/BDR路由器之间会建立邻接关系,DR与BDR之间也会建立邻接关系。
注意:
1、优选广播域中接口优先级大的,默认接口优先级为1。
2、优先级相同,比较router-id,大的成为DR,次BDR、其它DRother。
3、在配置OSPF的时候,第一台配置之后的40秒内,同一个广播域中如果没有遇到比自己更优先的设备,自己将成为DR,往后的其它设备将是这个广播网络中的BDR与DRother。
所以在配置OSPF的时候,先配置实际DR的设备,其它再配置BDR、DRother设备,这样能有效保障初始的正常选举。
4、当然也能通过reset ospf process的方式将的身份有误的OSPF设备进程注销,从而进行重新选举,但在实际环境中谨慎使用。
(3)DR和BDR选举方法
1)自动选举DR和BDR 网段上Router ID最大的路由器将被选举为DR,第二大的将被选为BDR.
2)手动选举DR和BDR (上右图)
在MA网络中,才会涉及DR和BDR的选举。DR是基于链路的,基于接口的,而不是基于路由器。
1)接口的DR优先级越大越优先,范围为0~255,数值越大,优先级越高,默认为1。
display ospf interface all //查看接口优先级
ip ospf priority 2 //修改接口优先级
2)接口的DR如果优先级相同,则需要比较Router-ID,Router-ID越大越优先。
如果没有Router-ID则会以环回接口为Router-ID。
如果没有环回接口则会选择最大IP的物理接口为Router-ID。
3)如果路由器的优先级被人为修改为0,他将不参与DR和BDR的选举。DR没有有抢占性。
4)DR和BDR的选举过程是先选BDR再选DR。
在邻居发现完成之后,路由器会根据网段类型进行DR选举。在广播和NBMA网络上,路由器会根据参与选举的每个接口的优先级进行DR选举。
在P2P或P2MP网络中完全不存在DR与BDR的概念,DR与BDR只适用于Broadcast网络或NBMA网络。不同网络类型中的DR与BDR的选举
网络类型 | 常见链路层协议 | 是否选举DR | 是否和邻居建立邻接关系 |
Point-to-point | PPP链路;HDLC链路 | 否 | 是 |
Broadcast/BMA | 以太网链路 | 是 | DR与BDR、DRother建立邻接关系 DRother之间只建立邻居关 |
NBMA | 帧中继链路 | ||
P2MP | 需手工指定 | 否 | 是 |
4、DR\BDR选举实验
(1)选举过程示例
配置先后顺序不一致,如何保证按照优先级及RID的方式选举DR/BDR
1.最开始,所有设备都认为自己是DRother,[AR1,AR2,AR3,AR4]DRother的集合,此时如果DR及BDR为空,此时选举BDR。
2.此时AR4成为BDR[AR4]BDR的集合,[AR1,AR2,AR3]DRother.此时如果DR为空,从BDR选出一个DR.
3.此时AR4成为DR[AR4]DR的集合,[AR1,AR2,AR3]为DRother的集合,BDR为空。
4.[AR1,AR2,AR3]DRother的集合,此时如果BDR为空,此时选举BDR。
5.[AR3]成为BDR,[AR4]为DR,[AR1/AR2]为DRother,至此选举过程完成。
如果是不同的系统加入,此时DR的集合中选举DR,BDR的集合中选举BDR。=优先级/RID
Area 0.0.0.0 interface 192.168.1.4(GigabitEthernet0/0/0)'s neighbors
区域0 G0/0/0[192.168.1.4]的邻居信息
Router ID:1.1.1.1 Address:192.168.1.1
[建立邻接关系的设备的RID] [对端设备的接口Ip地址]
State:Full Mode:Nbr is Slave Priority:1
[邻接是个从] [接口的DR优先级][FULL]
DR:192.168.1.4 BDR:192.168.1.3 MTU:0
[DR的接口IP] [BDR的接口IP] [当前接口的MTU信息]
Dead timer due in 33 sec [死亡时间33s]
Retrans timer interval:5 [重传时间5S]
(2)配置DR/BDR优先级(配置Router Priority)
[RTB-Ethernet0/0]ospf dr-prlority 100
[RTB-Ethernet0/0]quit
整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】