OSPF(开放最短路径优先)

OSPF路由协议
1.OSPF路由协议的基本原理
(1)邻居发现:运行了OSPF协议的路由器会周期性的以组播224.0.0.5的发送Hello报文来发现邻居,同时Hello报文提供维持邻居关系。每隔10s发送一次Hello报文。四个周期内未收到对端收到的Hello报文,则认为邻居失效。
(2)路由交换:建立了邻居关系的路由器之间会发送自己所包含的路由表,如果自己没有对端的路由则会请求发送本身没有的路由信息。
(3)路由计算:OSPF会根据SPF算法,以自己为根节点算出一颗最短路径树。计算完成后将路由加入到路由表中。
(4)路由维护:计算出路由后对路由表进行维护。

2.OSPF的分层结构
(1).为了方便管理OSPF提出了骨干区域和非骨干区域。
(2)骨干区域不能被分割
(3)骨干区域和非骨干区域必须相连
(4)好处是:减少区域内LSA的数量,便于管理,减少路由震荡。
3.OSPF的路由器类型
(1)IR:区域内路由器
(2)BR:骨干路由器
(3)ABR:区域边界路由器
(4)ASBR:自治系统边界路由器

4.OSPF的网络类型:
(1)Broadcast(广播):当链路类型为以太网或FDDI时,OSPF默认为广播。OSPF协议默认的网络类型为广播。通常以组播224.0.0.5 和224.0.0.6发送协议报文。
(2)NBMA(非广播多点可达):当链路层协议是FR,ATM,或X.25时,OSPF默认的网络类型是NBMA,该情况以单播发送协议报文。
(3)P2MP(点到多点)正常情况下不会是P2MP,可能是NBMA强制改为P2MP。该类网络中以组播224.0.0.5发送协议报文。
(4)P2P(点到点):当链路层协议为HDLC或PPP时,OSPF默认的网络类型为P2P,该类网络意外组播224.0.0.5发送协议报文。
5.OSPF协议的五种协议报文
(1)Hello报文:周期性的发送用来发现维护邻居关系,发送内容包括定时器数值,DR和BDR以及自己已发现的邻居状态信息。
(2)DD(数据库描述)报文:本地LSDB的所有的LSA摘要。
(3)LSR(链路状态请求报文)报文:请求对方自己所需要的LSA。两台路由器相互交换DD报文后,发现自己没有对端的路由信息。就会发送LSR报文请求所需的LSA
(4)LSU(链路状态更新报文):向对方发送所需的LSA摘要
(5)LSAck(链路状态确认)报文:用来对收到的LSA进行确认。

(6)OSPF的协议报文直接封装在IP报文中,协议号为89。

6.OSPF的邻居建立和状态迁移:
(1)邻居发现和维护:运行了OSPF的路由器之间以组播224.0.0.5互相发送协议报文,进行参数协商,如果协商通过则认为邻居发现。
(2)DR与BDR的选举:按照路由器的优先级,Router ID 接口IP地址等进行选举,优先级为0的路由器不具备选举资格。
(3)只有广播和非广播多点可达才会选举DR与BDR。
7.OSPF邻接关系建立得过程:以两台路由器为例R1和R2
(1)初始情况下两台路由器的邻居状态都为DOWN状态,然后互相发送Hello报文
(2)R2收到R1的Hello报文后,将R1添加到自己的邻居表中,并把R1设置为Init状态,然后向R1发送Hello报文,字段包含R1的Router ID,表示自己已经收到了R1的Hello报文。
(3)R1收到R2的Hello报文,把R2加入到邻居表中,并把邻居状态设置为2-way状态。然后向R2发送包含R2Router ID的Hello报文,表明收到了R2的Hello报文。
(4)R2收到后将R1的邻居状态设置为2-way
至此邻居关系已经建立,两台设备不承担DR和BDR的工作将会维持在2-way状态。如果不是则需要进一步建立邻接关系。
(5) R1将R2的邻居表状态设置为ExStart状态,并且发送一个不包含LSA摘要的DD报文,开始主从关系的协商。协商自己是不是Master路由器,来主动的发送DD报文,控制和修改报文的序列号。
(7)R2收到R1的DD报文后,将R1的邻居状态也设置为ExStart 状态。并且认为自己是Master路由器。
(8)R1同意R2作为Master路由器。并且将R2的邻居状态设置为Exchange,并且发送DD报文,此时DD报文中包含LSA摘要。
(9)R2收到R1的DD报文后,将邻居表中的R1设置为Exchange状态,和R1交换LSA摘要。
(10)R1和R2都收到对方发送的LSA摘要,与自己的LSDB进行比较。如果有某台路由器假设R1,发现对方所有的LSA自己都存在,那么直接进入Full状态。若R2发现自己的LSDB中缺少LSA则向R1请求LSA。
(11)R2将R1的邻居状态设置为Loading状态,同时向R1发送LSR报文,请求自己所需的LSA。
(12)R1收到后向R2发送所需的LSU报文。
(13)R2收到R1发送的LSA摘要并放入自己的LSDB中,只有当请求的所有LSA都收到后,才将R1的邻居状态设置为Full。
到此ODPF完整的邻接关系建立完成。在这些状态中只有Down,2-way和Full是稳定状态。
默认情况下一个小时刷新一次LSDB,如果一个小时还未收到LSA,那么LSA就会被老化并且移除。
默认情况下半个小时刷新一次LSA。

本章总结:
1.OSPF协议的特点和分层结构
2.OSPF的五种协议报文和四种网络类型
3.OSPF的邻居建立过程和DR/BDR的选举
4.OSPF协议LSDB的更新

猜你喜欢

转载自blog.csdn.net/qq_43590351/article/details/89240659