设为首页 收藏本站
查看: 1378|回复: 0

[经验分享] OSPF的DR以及BDR选举规则 以及在实际环境中最高RouterID非DR...

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-16 14:53:10 | 显示全部楼层 |阅读模式
                        OSPF的DR以及BDR选举规则 以及在实际环境中最高RouterID非DR的原因探究
一、OSPF协议描述
OSPF(Open ShortestPath First)开放最短路径优先协议为IETF开发的一种开放式的动态路由协议,该协议根据当前链路状态进行SPF算法,通过将大型网络进行逻辑层级划分,提升网络收敛速度以及可以有效避免环路产生。
OSPF数据包通信地址为组播地址:224.0.0.5和224.0.0.6。
二、OSPF-Packet类型
OSPF数据包类型主要分为Hello数据包、DBD数据包、LSR数据包、LSU数据包、LSAck数据包。
1、Hello数据包:充当OSPF-Router之间保活角色;
2、DBD数据包:OSPF-Database描述信息;
3、LSR数据包:链路状态请求;
4、LSU数据包:链路状态更新;
5、LSAck数据包:链路状态请求确认;
三、OSPF-NET类型
OSPF网络类型主要分为P-to-P(Point-to-Point)点到点网络、MA(multi-access)/Broadcast多路访问/广播网络、NBMA(Non-broadcastmulti-access)非广播多路访问网络、P-to-MP(Point-to-Multipoint)点到多点网络、以及Virtual-links(虚链路)网络。
1、P-to-P:使用串行链路连接单独一对路由器的点到点网络;
2、MA/Broadcast:包括以太网等多址访问的网络;
3、NBMA:可以连接两台以上路由器,但是没有广播数据包的能力;
4、P-to-MP:一种点到点链路的集合;
5、Virtual-links:没有编号的点到点网络。
四、OSPF-Router类型
OSPF路由器类型分为DR(Designated Router)指定路由器、BDR(Backup Designated Router)备用指定路由器、DR-other其他类路由器。特别说明的一点是OSPF-Router类型并非按照路由器来进行划分,而是按照相同区域中的接口来进行划分,因此DR、BDR以及DR-other只是OSPF接口的属性。
1、DR:与BDR和DR-other形成邻接关系,收集并分发LSA信息给同一MA网络中的BDR和DR-other路由器,用以减少同一区域内LSA数量,避免不必要的泛洪扩散;
2、BDR:与DR和DR-other形成邻接关系,与DR和DR-other交互LSA信息,当DR失效后能够在第一时间取代DR位置;
3、DR-other:与DR和BDR形成邻接关系,将自身的链路状态数据库传送至DR和BDR的链路状态数据库中,并保证本地数据库与DR和BDR的链路状态数据库实时同步。
五、OSPF的DR以及BDR选举规则
在初始状态下,一个路由器的活动接口设置DR和BDR为0.0.0.0,这意味着没有DR和BDR被选举出来。同时设置WaitTimer,其值为RouterDeadInterval,其作用是如果在这段数时间里还没有收到有关DR和BDR的宣告,那么它就宣告自己为DR或BDR。经过Hello协议交换过程后,每一个路由器获得了希望成为DR和BDR的那些路由器的信息,按照下列步骤选举DR和BDR:
1、在路由器同一个或多个路由器建立双向的通信以后,就检查每个邻居Hello包里的优先级、DR和BDR域。列出所有符合DR和BDR选举的路由器(他们的优先级要大于0,接口状态要大于双向通信),列出所有的DR,列出所有的BDR;
2、从这些合格的路由器中建立一个没有宣称自己为DR的子集(因为宣称为DR的路由器不能选举成为BDR);
3、如果在这个子集里有一个或多个邻居(包括它自己的接口)在BDR域宣称自己为BDR,则选举具有最高优先级的路由器,如果优先级相同,则选择具有最高Router ID的那个路由器为BDR;
4、如果在这个子集里没有路由器宣称自己为BDR,则在它的邻居里选择具有最高优先级的路由器为BDR,如果优先级相同,则选择具有最大Router ID的路由器为BDR;
5、在宣称自己为DR的路由器列表中,如果有一个或多个路由器宣称自己为DR,则选择具有最高优先级的路由器为DR,如果优先级相同,则选择具有最大Router ID的路由器为DR;
6、如果没有路由器宣称为DR,则将最新选举的BDR作为DR;
7、如果是第一选举某个路由器为DR/BDR或没有DR/BDR被选举,则要重复2到6步,然后是第8步。
8、将选举出来的路由器的端口状态作相应的改变,DR的端口状态为DR,BDR的端口状态为BDR,否则的话为DR other。
在多路访问网络中,DR和BDR与该网络内所有其它的路由器建立邻接关系,这些邻接关系也是该网络内全部的邻接关系。
由于DR和BDR的引入,简化了网络的逻辑拓扑结构,将一个网状网络转变成一个星型网络,使协议包的扩散,计算变的简单,并有效防止了邻接关系震荡的发生。
在实际过程中一个路由器是先选出BDR的,但此时的BDR不会被写入接口数据库,而是会立刻将此BDR提升到了DR的地位并写入数据库,然后会再看看是否有人声称他自己是BDR,如果没有人声称的话,他会再次进行BDR的选举,并写入接口数据库中向外发通告。
当一个路由器新接入一个多路访问网络的时候,他会先等待waittime计时器到期,然后将按DR/BDR选举原则进行选举,而其之所以要先等待waittime计时器到期是因为它刚刚接入此网络,不知道此网络的状况,因此他需要收集hello包进行分析。如果其收集到的hello包有证据表明此网络已经稳定,即DR/BDR选举已完成,此时就算再接入一台具有更高Router-id的路由器时也并不会再次触发选举。
六、在同一MA-NET中最高RouterID非DR的原因探究
在实际运行中常常遇见在同一广播网络中具有最高Router-id的路由器并未被选举为DR。
造成此类现象的根本原因是:在一个MA网络上,最先初始化启动的两台具有DR选举资格的路由器将成为DR和BDR路由器。
两台具有选举资格的路由器各自的OSPF进程的启动时间间隔只要不超过Wait Timer时间,那么路由器将相互监听Hello包中的DR和BDR字段中的信息,并且服从优先级原则,在一定程度上体现出了公平原则;但是如果前后启动的时间超过Wait Timer时间,那么首先启动的路由器极有可能成为DR,不管其Router-id是否更高。
综上所述在实际的MA网络环境中,即使是40秒内同时起进程的情况也少见,更多的情况是是率先启动OSPF进程的路由器就很有可能成为DR,第二个启动的就很有可能成为BDR,考虑到路由器故障或者重启等情况,实际的运行效果是“活”得最久的路由器将成为DR,在一定程度上提升了网络的稳定性。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-351636-1-1.html 上篇帖子: Cisco静态路由 下篇帖子: Cisco路由器简单配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表