学习回顾——OSPF路由协议(0x0D)-OSPF Router ID和DR、BDR选举原理
liebian365 2024-10-22 15:33 3 浏览 0 评论
Router ID是用于在自治系统中唯一标识一台运行OSPF的路由器的32位整数。每个运行OSPF的路由器都有一个Router ID,其格式和IPv4地址的格式是一样的。在实际网络部署中,考虑到协议的稳定,推荐使用路由器上Loopback接口的IP地址作为路由器的Router ID,因为Loopback接口一旦创建即永久有效(不能关闭,但可以删除)
1) Router ID选举规则
Router ID的选取有两种方式
l 通过命令行手动配置:
l 设备自动选举:如果没有手动配置Router ID,设备会从当前活跃接口所配置的IP地址中自动选举一个作为Router ID。其选择的顺序是:优先从Loopback接口地址中选择最大的IP地址作为RouteID。如果没有配置Loopback接口,则在解耦地址中选取最大的IP地址作为Router ID.
Router ID一旦配置即不会改变,即使对应的接口不存在或者关闭了也不会再改变。只有在重新配置系统的Router ID或OSPF的Router ID,并且重新启动OSPF进程后,才会重新进行Router ID的选举。
总体Router ID的选举和刷新规则如下
① 如果在系统视图下通过Router ID router-id命令进行了配置,按照配置结果设置。
② 如果没有在系统视图下通过router id router-id命令进行配置,并且已经存在配置有IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID。
③ 如果没有在系统视图下通过router id router-id命令进行配置,并且不存在配置有IP地址的Loopback接口,则董其他接口的IP地址中选择最大的一个作为Router ID(不考虑接口的UP/Down状态)。
④ 当且仅当被选举为Route ID的接口IP地址被删除或者修改时,才触发重新选择Route ID的过程。接口状态的改变不会导致Router ID的重新选择。
⑤ 原理选择了一个非Loopback接口的地址作为了Router ID,现在又配置了一个Loopback接口地址,不会导致Route ID的重新选择。
⑥ 现在配置了一个更大的接口IP地址,也不会导致Router ID的重新选择。
⑦ 系统系统启动过程中,在协议希望获取Router ID时,路由模块可能还没有还没有取得所有的接口地址信息,因此很可能选择一个比较小的接口地址作为Router ID来返回给协议,这不应该视为问题。
⑧ Router ID不可以是0.0.0.0或者255.255.255.255。
2) 选举DR和BDR的原因
在广播网络和NBMA网络中,任意两台路由器之间都要传递路由信息。如图所示,网络中有n台路由器,则需建立n×(n-1)/两个邻接关系,如图中作图。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。
为了解决这一问题,OSPF定义了DR。通过选举产生DR后,所有其他的设备都逄信息发送给DR,由DR将网络链路状态LSA广播出去。
为了防止DR发生故障,重新选举DR时会造成业务中断,除了DR之外,还会选举一个备份指定路由器BDR。这样除了DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。
3) DR和BDR选举的原则
在广播网络和NBMA网络中,为了稳定地进行DR和BDR选举,OSPF规定了一系列的选举规则,包括选举制、终身制和和继承制。
(1) 选举制
选举制是指DR和BDR不是认为指定的,而是由本网络中所有路由器共同选举出来的。路由器接口的DR优先级决定了该接口在选举DR、BDR时所具有的资格,本网段内DR优先级大于0的路由器都可作为“候选人”。选举中使用的“选票”就是Hello报文,每台路由器将自己选出的DR写入Hello报文中,发给网段上的其他路由器。
当处于同一网段的两台路由器同时宣布自己是DR时,优先级最高者为DR,次高者为BDR。如果优先级相等,则Router ID大者胜出。如果一台路由器的优先级为0,则它不会被选举为DR或BDR。如图所示,根据选举规则可得出要使10.1.1.0/24网段AR1位DR,AR3位BDR。
(2) 终身制(非抢占制)
终身制也叫非抢占制。每一个新加入的路由器并不急于参加选举,而是先考察一下本网段中是否存在DR,观察时长为Waiting计时器。在Waiting计时器时间内,发送的Hello报文不会带有DR和BDR信息,即不能被选举为DR或BDR。但是如果在Waiting计时器时间内所收到的Hello报文中都没有DR、BDR信息,则在Waiting计时器超时后发送指定本地路由器作为DR的Hello报文发送给本网段其他路由器。
如果在本地路由器的Waiting计时器时间内,收到了其他路由器的Hello报文中带有DR和BDR信息,则表明目前网段中已经存在DR、BDR,这样即使本地路由器的的DR优先级比现有的DR还高,也不会在声称自己是DR,而承认现有的DR。因为网段中的每台路由器都只和DR、BDR建立邻接关系(DROther之间仅需建立了邻居关系),如果DR频繁更换,则会引起本网段内的所有路由器重新与DR、BDR建立进阶关系。这样会导致短时间内网段中有大量的OSPF报文在传输,减低网络的可用带宽。
如图所示,假设AR1是后面才加入网络的,在此之前AR2和AR3之间已选举好DR和BDR。这样AR1在收到AR2、AR3的Hello报文后,肯定会发现AR3位DR,AR2位BDR,于是虽然AR1的优先级(120)要高于当前DR(AR3)的优先级,也不会参与DR、BDR选举,而是直接承认原理的DR和BDR。
终身制有利于增加网络的稳定性、提高网络的可用带宽。实际上,在一个广播网络或NBMA网络上,最先启动的两台具有DR选举资格的路由器将成为DR和BDR。
(3) 继承制
继承制是指如果原来DR发生故障了,那么下一个当选为DR的一定是BDR,其他的路由器只能去竞选BDR的位置。这个原则可以保证DR的稳定,避免频繁地进行选举。由于DR和BDR的数据库是完全同步的,这样DR故障后,BDR立即成为DR,履行DR职责,而且邻接关系已经建立,所以从角色切换到承载业务的时间会很短。同时在BDR成为新的DR之后,还会选举出一个新的BDR,虽然这个过程所需的时间比较长,但已经不会影响路由的计算。
如图所示,原理的DR是AR1,现在假设发生了故障,则原来的BDR AR3会直接成为新的DR,而原来为DROther的AR2成为新的BDR(如果本网段中还有其他路由器,AR2会再与其他路由器进行BDR选举)
4) DR和BDR选举过程
DR和BDR的选举仅在广播链路或NBMA链路上进行,具体选举过程如下
① 运行OSPF的接口UP后会向邻居路由器发送Hello报文,同时进入Waiting状态。在Waiting状态下会有一个Waiting计时器,该计时器的长度与Dead计时器是一个样的(缺省值为40s,用户不可自行调整)
② 在Waiting计时器超时前发送的Hello报文是不带DR和BDR字段的,即本地路由器不能参与网段的DR和BDR选举,仅可接受网段中其他路由器间选举的已有的DR和BDR。但在Waiting计时器超时后,如果还没有收到来自网段中其他路由器发送的带有DR和BDR的Hello报文,则发送声称自己是DR的Hello报文,参与网段中的DR和BDR选举
DR和BDR的选举规则是:优先选择优先级最高的作为DR,次高的作为BDR。DR优先级为0的路由器只能成为DR Other;如果优先级相同,则选择Router ID较大的的路由器成为DR,次大的成为BDR,其余路由器成为DR Other。
③ 在Waiting计时器超时前如果收到的Hello报文中有DR和BDR,那么直接承认网络中的DR和BDR,而不会触发选举,无论本地路由器的Router ID或者DR优先级有多大。直接离开Waiting状体,开始邻居同步。
④ 当原来DR因为故障Down掉之后,原理的BDR会直接集成DR角色,同网段中剩余的优先级大于0的路由器会竞争成为新的BDR。
【经验之谈】根据前面分析可得出,只有连接在同一网段中的Router ID,或者配置不同DR优先级的路由器接口同时Up,在同一时刻进行DR选举(即在同一时间它们的Waiting计时器超时)才会在整个网段路由器中真正应用DR选举规则选举DR、BDR。否则总有至少一台路由器不能真正参与DR、BDR选举,最先启动的将成为DR,因为这台路由器的Waiting计时器超时前不会收到任何同网段中其他阿路由器发来的Hello报文中携带有DR、BDR字段信息。
相关推荐
- 快递查询教程,批量查询物流,一键管理快递
-
作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...
- 一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递
-
对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...
- 快递查询单号查询,怎么查物流到哪了
-
输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...
- 3分钟查询物流,教你一键批量查询全部物流信息
-
很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...
- 快递单号查询,一次性查询全部物流信息
-
现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...
- 快递查询工具,批量查询多个快递快递单号的物流状态、签收时间
-
最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...
- 快递查询软件,自动识别查询快递单号查询方法
-
当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...
- 教你怎样查询快递查询单号并保存物流信息
-
商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...
- 简单几步骤查询所有快递物流信息
-
在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...
- 物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号
-
最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...
- 连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息
-
快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...
- 快递查询教程,快递单号查询,筛选更新量为1的单号
-
最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...
- 掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析
-
在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...
- 从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息
-
在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...
- 物流单号查询,在哪里查询快递
-
如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)