OSPF DR BDR选举过程(中文版)
OSPF-DR与BDR的选举及作用
OSPF-DR与BDR的选举及作⽤IERS-DR与BDR的选举及作⽤⼀、问题引出在运⾏OSPF的MA⽹络中包括⼴播型和NBMA⽹络会存在两个问题:1)、在⼀个有n个路由器的⽹络中,会形成(n*(n-1))/2邻居关系。
2)、邻居间LSA的泛洪扩散混乱,相同的LSA会被复制多份,这样的⼯作效率显然是很低的,消耗资源,那么如何解决这个问题的呢?⼆、DR与BDR的作⽤1)、DR(designated router)即指定路由,其负责在MA⽹络建⽴和维护邻接关系并负责LSA的同步。
2)、DR与其他所有的路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息,这样就⼤⼤减少了MA⽹络中的邻接关系数据及交换链路状态信息消耗的资源。
3)、DR⼀旦出现故障,其与其他路由器之间的邻接关系将全部失效,链路状态数据库也⽆法同步,此时就需要重新选举DR、再与⾮DR路由器建⽴邻接关系,完成LSA的同步,为了规避单点故障风险,通过选举备份指定路由器BDR,在DR失效时快速接管DR的⼯作。
三、DR与BDR的选举规则DR/BDR的选举是基于接⼝的接⼝的DR优先级越⼤越优先。
接⼝的DR优先级相等时,router ID越⼤越优先。
接⼝DR优先级相等时,router ID越⼤越优先接⼝DR优先级为0,表⽰不参与选举,router priority最⼤不⼀定是DR/BDR在P2P⽹络及P2MP⽹络上具有邻居关系的路由器之间会进⼀步建⽴邻接关系。
但在⼴播型及NBMA⽹络上,⾮DR BDR路由器之间只能建⽴邻居关系,不能建⽴邻接关系。
⾮DR/BDR路由器与DR/BDR路由器之间会建⽴邻接关系,DR与BDR之间也会建⽴邻接关系。
DR和BDR的选举需要注意以下四点:1、只有在⼴播或NBMA类型接⼝时才会选举DR,在点到点或点到多点类型的接⼝上不需要选举DR。
2、DR是指某个⽹段的概念,是针对路由器的接⼝⽽⾔的。
某台路由器在⼀个接⼝上可能是DR,在另⼀个接⼝上有可能是BDR,或者是DR Other。
OSPF的DR及BDR
编辑本段OSPF协议
OSPF(Open Shortest Path First开放式最短路径优先)[1]是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相比,OSPF是链路状态路由协议,而RIP是距离矢量路由协议。OSPF的协议管理距离(AD)是110。
3. 按如下计算网络上的DR。如果有一台或多台路由器宣告自己为DR(也就是说,在其Hello包中将自己列为DR),选择其中拥有最高路由器优先级的成为DR;如果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为DR,将新选举出的BDR设定为DR。
4.如果路由器X新近成为DR或BDR,或者不再成为DR或BDR,重复步骤2和3,然后结束选举。这样做是为了确保路由器不会同时宣告自己为DR和BDR。
实例
ospf区域的配置
192.168.1.0 0.0.0.255 area 0
router-id 192.168.2.1 手动设置router-id
area 1 default-cost 50 手动设置开销
OSPF的DR及BDR
在DR和BDR出现之前,每一台路由器和他的所有邻居成为完全网状的OSPF邻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA.而且在多址网络中,还存在自己发出的LSA 从邻居的邻居发回来,导致网络上产生很多LSA的拷贝,所以基于这种考虑,产生了DR和BDR.
1. 路由器X在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BDR字段,列出所有可以参与DR/BDR选举的邻居(priority不为).
实验2 配置OSPF DR 选举过程
实验2 配置OSPF DR 选举过程一、实验拓扑,如图1.1所示图1.1 广播多路访问链路上的OSPF二、实验配置1.配置路由器R1R1(config-if)#router os 1R1(config-router)#router-id 1.1.1.1R1(config-router)#net 1.1.1.0 0.0.0.255 a 0R1(config-router)#net 192.168.0.0 0.0.0.255 a 02.配置路由器R2R2(config)#router ospf 1R2(config-router)#router-id 2.2.2.2R2(config-router)#net 2.2.2.0 0.0.0.255 a 0R2(config-router)#net 192.168.0.0 0.0.0.255 a 03.配置路由器R3R3(config-if)#router os 1R3(config-router)#router-id 3.3.3.3R3(config-router)#net 3.3.3.0 0.0.0.255 a 0R3(config-router)#net 192.168.0.0 0.0.0.255 a 0三、实验调试1.在R1上查看OSPF邻居信息R1(config-router)#do sh ip os neNeighbor ID Pri State Dead Time AddressInterface2.2.2.2 1 FULL/DR 00:00:38 192.168.0.2FastEthernet0/03.3.3.3 1 FULL/DROTHER 00:00:36 192.168.0.3FastEthernet0/0以上输出说明,R2为DR,R1为BDR,R3为DROTHER。
为了防止建立完全的邻接关系而引起大量的开销,在多路访问的网络中需要选举DR和BDR,除自身外,每个路由器均与之建立邻接关系,来同步信息。
DR BDR详细选举过程
DR/BDR详细选举过程DR/BDR1.DR/BDR简介在广播网和NBMA网络中,任意两台路由器之间都要交换路由信息.如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系.这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源.为解决这一问题,OSPF协议定义了指定路由器DR(Designated Router),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去.如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,再与新的DR同步.这需要较长的时间,在这段时间内,路由的计算是不正确的.为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router,备份指定路由器)的概念.BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网络内的所有路由器建立邻接关系并交换路由信息.当DR失效后,BDR会立即成为DR.由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的.当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算.DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息.这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量.如下图所示,用实线代表以太网物理连接,虚线代表建立的邻接关系.可以看到,采用DR/BDR 机制后,5台路由器之间只需要建立7个邻接关系就可以了.2.DR/BDR选举过程DR和BDR是由同一网段中所有的路由器根据路由器优先级,Router ID通过Hello报文选举出来的,只有优先级大于0的路由器才具有选取资格.进行DR/BDR选举时每台路由器将自己选出的DR写入Hello报文中,发给网段上的每台运行OSPF协议的路由器.当处于同一网段的两台路由器同时宣布自己是DR时,路由器优先级高者胜出.如果优先级相等,则Router ID大者胜出.如果一台路由器的优先级为0,则它不会被选举为DR或BDR.需要注意的是:1.只有在广播或NBMA类型接口才会选举DR,在点到点或点到多点类型的接口上不需要选举DR.2.DR是某个网段中的概念,是针对路由器的接口而言的.某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other.3.路由器的优先级可以影响一个选取过程,但是当DR/BDR已经选取完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经选取的DR/BDR成为新的DR/BDR4.DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口DR/BDR详细选举过程关于DR/BDR的选举似乎一直没有定论,卷一中所写的选举过程实为引用的RFC2328,而其内容用"过程"来定义似乎是不太容易理解的,准确来说,应该是状态的触发,我们想想可知,OSPF协议选举DR/BDR过程的代码不会是这些步骤的顺序实现,所以我们在分析的时候要找到每一个步骤的触发点,下面我具体分析一下,事先声明这不是翻译.1.After two-way communication has been established with .e or more neighbors,examine the Priority,DR,and BDR field of each neighbor's Hello.List all routers eligible for election(thatis,routers with priority greater than 0 and whose neighbor state is at least two-way);all routers declaring themselves to be the DR(their own interface address is in the DR field of the Hello packet);and all routers declaring themselves to be the BDR(their own interface address is in the BDR field of the Hello packet).The calculating router will include itself.this list unless it is ineligible.在广播型链路上,所有OSPF路由器之间进入Two-Way状态后开始触发选举过程,这个状态下,每一台路由器的邻居ID字段都包含其他所有的路由器的ID,这是选举公平的保证.下一个关键点是,选举初始化时,所有的路由器在一开始都宣称自己是DR和BDR,这里涉及到RFC中的两个英文单词declare和claim,很多人认为这上面有文章,其实这两个单词都有宣称的意思,只不过declare用于更为正式的场合,试想一台OSPF路由器会有这等人性的思考?所以用词我觉得作者可能都没有怎么考虑,因为在路由器上实现所谓的"宣称自己是DR/BDR"就是将自己的路由器ID写入Hello包中DR ID字段中和BDR ID字段中.2.From the list of eligible routers,create a subset of all routers not claiming to be the DR(routers declaring themselves to be the DR cannot be elected BDR).第2步很有意思,似乎与第1步冲突,既然都声称自己是DR,那么不声称自己是DR的子集一定为空啊?其实这是思维定势,因为一个选举的代码是要始终有效的,而不是仅仅用于初始化的选举.关键点就一句话:能进入这个子集的条件是,这台路由器的DR ID字段里写的不是自己的ID,这第2步是为下一步选举BDR做准备的!具体我们分析一下:在初始化状态下,即网络中没有DR,所有人都宣称自己是DR,也宣称自己是BDR,根据原则,这个子集为空,这时会直接跳到第5步,先去选举DR,在DR选举出以后,也就是网络中存在DR,现象是这样:除了DR在DR ID字段的写的是自己的ID以外,别的路由器都不是写的自己,而是选举出的那个DR的ID,那么这时就符合进入子集的条件了,除DR 外的所有路由器都会进入这个子集,进行下一步,即BDR选举.3.If .e or more neighbors in this subset include its own interface address in the BDR field.the neighbor with the highest priority will be declared the BDR.In a tie,the neighbor with the highest Router ID will be chosen.第3步,在选举BDR的时候,大家都在BDR ID字段写的自己的ID,选举结果明确后,只有BDR发的Hello包中写的自己ID,子集里其余的路由器都不是写的自己ID,而是选举出来的BDR的ID.4.If no router in the subset claims to be the BDR,the neighbor with the highest priority will become the BDR.In a tie,the neighbor with the highest Router ID will be chosen.第4步应该这样理解:如果这个子集没有路由器说自己是BDR,那就意味着BDR死掉了(本来就他一个说自己是BDR,死了就说不出来了),BDR会重新选举.5.If .e or more of the eligible routers include their own address in the DR field,the neighbor with the highest priority will be declared the DR. In a tie,the neighbor with the highest Router ID will be chosen.第5步是DR的选举过程,没有所谓的子集概念,也不是第2步以后的步骤,而是不满足第2步的条件直接跳到这一步.选举DR的资格是:在DR ID字段中写的是自己的ID6.If no router has declared itself the DR,the newly elected BDR will become the DR.第6步中说到的如果没有人宣称自己是DR对应的情景是这样,别人都说A是DR,A也应该说自己是DR,可是他死了,死人是不会说话的,所以BDR成为DR,其实这一条就是说,如果DR 当掉,BDR会成为新的DR.而如果这时BDR还没有选出来,还是会先进行BDR的选举,然后BDR成为DR,为什么,因为大家的DR字段里还是写的那个死了的DR,不符合选举DR的条件,第5步无法执行.7.If the router performing the calculation is the newly elected DR or BDR,or if it is no longer the DR or BDR,repeat steps 2 through 6.其实这一步就是说明了这个程序不仅仅是为初始化的选举用的,当稳定的角色分配出现问题时,依然能通过这些原则使角色重新定义.总结:DR/BDR选举就是"字段游戏",DR的选举资格:在Hello包中的DR ID写的是自己的ID,BDR 的选举资格:在Hello包中的BDR ID写的是自己的ID且在DR ID字段写的不是自己的ID,具体选举还要看接口优先级和最高Router-id转:/view/3a15b9563c1ec5da50e27025.html/view/5f13090016fc700abb68fc29.html分享:喜欢。
动态路由协议OSPF DR的选举规则和关于Router ID
动态路由协议OSPF DR的选举规则和关于Router ID以下是我整理出来的关于OSPF DR的选举规则,大家参考一下:OSPF的DR(指派路由器)指的是路由器的一个活动接口,并非整台路由器,为了更好地管理OSPF拓扑的flooding,在多路访问的网络中(如广播网络,像普通的以太网)需要选举出一台DR和一台BDR,以下是DR/BDR 的选举规则:1. OSPF priority 最高者为DR(缺省所有OSPF路由器为1,通过ip ospf priority接口配置命令更改),如果priority相同,则具有最高的Router-ID的路由器被选举为DR(Router-Id为最大的接口IP地址,如果配置了loopback 地址,则使用loopback地址作为Router-ID,如果配置有多个loopback地址,则以最高的loopback地址为Router ID.也可是通过router-id <address> 路由器配置命令强制某个IP地址作为路由器的Router ID.如果路由器的OSPF 优先级设为“0”,则该路由器不作为DR或BDR,称为DRother.2. 假设在一个OSPF多路访问网络中已存在一台DR路由器和一台BDR路由器,如果DR死掉(重起),则BDR自动升级为DR,同时选举该多路访问网络中的另一台OSPF路由器作为BDR.当原DR启动以后,虽然检测到目前运行的BDR的Router ID没有自己高,但是仍只能作为BDR或DR Other路由器运行(如果已经选举了另一台BDR).lookback接口是路由器的虚拟接口,永远UP,如果路由器存在Lookback接口,在OSPF中该路由器的ID为Lookback地址。
本文章由泛亚娱乐www.777a via.co m 原创,转载请注明。
(完整版)ospf邻接建立详细过程(包括五报文七状态)
5、ospf邻接建立过程描述:首先总结下五报文和七状态1.Down 路由器还末收到邻居发来的HELLO包(1.5) 在NBMA还有个attempt(尝试状态):为NBMA网络中的一个正常过滤状态,即我发送了HELLO等待对方的回应,如果对方不回应则一直滞留在此状态。
2.init 收到来自邻居的hello包,但是hello中未包含自身的信息。
3.two-way 路由器在收到邻居发来的HEELO包中,看到自己的ROUTER-ID ,在这个态开始选举DR和BDR4.exstart 在选举DR和BDR之后,开始选主从Master/Slave5.exchange 主从协商完成后,进行DBD的同步,链路数据库描述(DBD)6.loading DBD同步完成后,进行LSA的同步7.full LSA同步完成之后根据上图做实验分析:在R1和R2启用ospf后,会组播向外发送hello报文。
active neighbor字段中为R1的ROUTER-ID 1.1.1.1 和2.2.2.2,说明进入TWO-WAY状态,并且开始选举DR和BDR选举完成后开始转为extart状态进入exstart state,开始选主从(ROUTER-ID大的为主,作用为了同步DBD的序列号)R1和R2分别向外发DBD报文,都认为自己为主:如图在DBD中I M MS分别表示第一个包、M表示后面还有几个包MS表示为主Interface MTU:在不分片的情况下,此接口最大可发出的IP报文长度为1500。
I(Initial):当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M(More):当连续发送多个DD报文时,如果这是最后一个DD报文,则置为0。
否则置为1,表示后面还有其他的DD报文。
MS(Master/Slave):当两台OSPF路由器交换DD报文时,首先需要确定双方的主(Master)从(Slave)关系,Router ID大的一方会成为Master。
OSPF DR 选举详解 (Visual Land OSPF 动画系列3)
R1的Hello包被收到
当R2,R3,R4收到R1广播出的Hello包,将它加到自己的Neighbor列表。 但R1的Hello包中,邻居列表是空的,因此R2,R3,R4与R1只是1-way关系,不是2-way。
2011-4-27
6
R2发送Hello包
R2发送的Hello包中,DR是R2,BDR是空。 这是因为R1仅仅是R2的邻居,没有建立2-way关系,所以在R2的内部选举时,R1没有资格参选。
R4再次发送Hello包
R4再次发送Hello包,其他3台路由器收到后,进行DR/BDR选举,结果都没有任何改变。 选举风暴已过,之后每台路由器都会隔一个hello interval发送出Hello包。而对于每台路由器来说,DR和BDR都 将是R4和R3不变。这4台路由器进入稳定阶段,只要DR和BDRபைடு நூலகம்发生故障,DR和BDR就不会发生变更。
DR 选举详解
OSPF 图解教程系列 -3 (北冰洋软件)
看动画、 看动画、学网络
• DR 选举详解:比较priority, RID, BDR候选人, DR候选人,2-way, full。 • 这个图解版本根据 DR election details 仿真动画 截图而来。 • 原创作品,允许转载,转载时请用超链接标明文章原始出处
17
Vlab 特色
• VLAB: Virtual Lab (虚拟网络实验室)
– – – – – 理论:用动画突出重点,让初学者很快掌握协议核心。 实例:把网络仿真实例所产生的数据、状态用动画显示。 仿真工具:Packet Tracer, Dynamips, ns2. 动画:互动的操作观察协议 - 数据包移动、路由器状态改变。 图解 (这个文件):把动画截图而制作幻灯片.ppt。
OSPF DR的选举过程
Ospf DR选举过程实验目的:1、掌握ospf 路由优先级的配置2、理解选举DR的过程,以及怎样控制DR的选举。
实验环境:华三路由器四台,以太网交换机一台,网线4根。
实验拓扑图:实验步骤:1、按照拓扑图所给的设备,在路由器上配置ip地址,并为每台路由器手工设置Router ID,并在路由器上运行OSPF协议。
配置命令:RT1://手工指定Router id。
// 配置接口地址//配置OSPF协议,并宣告网段。
RT 2:// 手工指定Router id 。
// 配置接口地址。
// 配置OSPF 协议,并宣告网段。
RT3:[RT3-GigabitEthernet0/0/0]ip add 10.1.1.3 255.255.255.0[RT3-GigabitEthernet0/0/0]un shutdownInterface GigabitEthernet0/0/0 is not shut down //配置接口的地址并打开接口[RT3]router id 3.3.3.3 // 手工指定ROUTER ID[RT3]ospf 1[RT3-ospf-1]area 0[RT3-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255[RT3-ospf-1-area-0.0.0.0]quit //配置OSPF 路由协议,并宣告网段RT4:[RT4-GigabitEthernet0/0/0]ip add 10.1.1.4 255.255.255.0[RT4-GigabitEthernet0/0/0]un shutdown[RT4]route id 4.4.4.4 // 手工指定ROUTER ID。
[RT4]ospf 1[RT4-ospf-1]area 0[RT4-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255[RT4-ospf-1-area-0.0.0.0]quit // 配置OSPF 路由协议,并宣告网段。
DR和DBR
在OSPF中,有两个相当重要的概念:DR和BDR。
我们先来看看什么叫DR,什么叫BDR,然后再来看看他们都是做什么的。
DR:designated router 指定路由器。
BDR:backup designated router 备份指定路由器。
在一个LAN连接中,OSPF将选举出一个路由器做为DR,再选举一个做为BDR,所有其他的和DR以及BDR相连的路由器形成完全邻接状态而且只传输LSA(链路状态通告)给DR和BDR。
换句话说,在一个OSPF的网络中,所有的路由器将被分为两类:指定路由器(DR/BDR)非指定路由器(DROTHER)。
所有的非指定路由器都要和指定路由器建立邻居关系,并且把自己的LAS 发送给DR,而其他的OSPF路由器将不会相互之间建立邻居关系。
也就是说,OSPF 网络中,DR和BDR的LSDB(链路状态数据库)将会包含有整个网络的完整拓扑。
| DR从邻居处转发更新到另外一个邻居那里。
DR的主要功能就是在一个LAN内的所有路由器拥有相同的数据库,而且把完整的数据库信息发送给新加入的路由器。
路由器之间还会和LAN内的其他路由器(非DR/BDR,即DROTHERs)维持一种部分邻居关系(two-way adjacency)。
OSPF的邻接一旦形成以后,会交换LSA来同步LSDB,LSA将进行可靠的洪泛。
当选举DR/BDR的时候要比较hello包中的优先级priority(设置命令:route(config-if)#ip ospf cost {priority} 0~255),优先级最高的为DR,次高的为BDR。
不作修改默认端口上的优先级都为1,在优先级相同的情况下比较Router ID,RID最高者为DR,次高者为BDR,当你把相应端口优先级设为0时,OSPF路由器将不能再成为DR/BDR,只能为DROTHER。
在使用默认优先级的OSPF的DR选举中,所有的路由器之间会交换自己的ROUTER-ID来确定DR。
校园网网络设计与实施--网络设备-OSPF基本原理
RTC
RID: 192.168.3.1
RTD
RID: 192.168.4.1
BDR
DR
RTC
RID:
RTD
RID:
RTE
RID:
192.168.3.1 192.168.4.1 192.168.5.1
BDR
DR
RTE后来加入网络,虽然它的Router ID比原有的DR和BDR 都高,但是出于稳定性的考虑,只能成为DRother路由器。
Router ID 2.2.2.2
DOWN
RTA
10.1.0.1/24
网络云
10.1.0.2/24
RTB
DOWN
Hello DR=0.0.0.0 Neighbors seen=0
邻居表
Hello
邻居ID 邻居地址 邻居状态
2.2.2.2 10.1.0.2 2-way
DR=RTB
Neighbors seen=RTA
1.1.1.1 10.1.0.1
Full
邻居ID 邻居地址 邻居状态 2.2.2.2 10.1.0.2 Loading
LS Request LS Update
邻居ID 邻居地址 邻居状态
2.2.2.2 10.1.0.2
Full
LSAck
page 2 8
OSPF基本原理
OSPF的状态机
Down
Attempt
BDR
DR
RTC
RID: 192.168.3.1
RTD
RID:
RTE
RID:
192.168.4.1 192.168.5.1
DR
BDR
当DR失效时,BDR立刻成为新的DR DRother路由器进行竞争,Router ID高的成为新的BDR
OSPF学习之DRBDR选举规则
OSPF学习之DR BDR选举规则OSPF学习之DR/BDR选举规则名词解释:Router ID(RID)1、所有物理端口ip地址最大者为RID,2、如有逻辑管理接口Loopba ck0,loopback1等,则逻辑端口ip为RID,有多个逻辑接口,ip大者为RID.1、所有接口都为物理接口s0:192.168.1.1 atm3/0:192.168.2.1 e0:172.25.188.1 则RID为192.168.2.12、有逻辑接口s0:192.168.1.1 atm3/0:192.168.2.1 e0:172.25.188.1,loopback0:10.0.1.1 loopback1:172.25.189.1 则RID为172.25.189.1DR/BDR:在OSPF网络中,各路由器之间不直接两两发链路状态信息,而是通过选举DR/BDR,DR 为主,BDR为备份DR,把链路状态信息发给DR/BDR,由DR在组播给所有非DR/BDR的DROTHER路由器。
OSPF(链路状态路由协议Link State routing protocol)也和EIGRP(混合Hybrid routing protocol介于距离矢量路由协议和链路状态路由协议之间)类似,维护着3张表:1、邻居表,2、拓扑表 3、路由表。
有点区别的是EIGRP每样维护着三张表:Neighbor table-appletalk ,ipx,ip.Topology table-appletalk,ipx,ip,Routing table- appletalk,ipx,ip.选举DR/BDR规则当选举DR/BDR的时候要比较hello包中的优先级(priority:设置命令 route(config-if)#ip ospf cost {priority} 0~255),优先级最高的为DR,次高的为BDR.不作修改默认端口上的优先级都为1,在优先级相同的情况下比较Router ID,RID最高者为DR,次高者为BDR,当你把相应端口优先级设为0时,OSPF路由器将不能再成为DR/BDR,只能为DROTHER.链路状态信息的传播(在本区域内,骨干区域0,区域有2的32次方个,所有常规区域必须和骨干区域直接相连,除非开隧道OSPF虚电路)DR/BDR选举完成后,DROTHER就只和DR/BDR逻辑上形成邻居关系, DROTHER组播链路状态信息LSU到ALLDOTHER地址224.0.0.6,而只有DR/BDR监听该地址。
DR BDR详细选举过程
DR/BDR详细选举过程DR/BDR1.DR/BDR简介在广播网和NBMA网络中,任意两台路由器之间都要交换路由信息.如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系.这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源.为解决这一问题,OSPF协议定义了指定路由器DR(Designated Router),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去.如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,再与新的DR同步.这需要较长的时间,在这段时间内,路由的计算是不正确的.为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router,备份指定路由器)的概念.BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网络内的所有路由器建立邻接关系并交换路由信息.当DR失效后,BDR会立即成为DR.由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的.当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算.DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息.这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量.如下图所示,用实线代表以太网物理连接,虚线代表建立的邻接关系.可以看到,采用DR/BDR 机制后,5台路由器之间只需要建立7个邻接关系就可以了.2.DR/BDR选举过程DR和BDR是由同一网段中所有的路由器根据路由器优先级,Router ID通过Hello报文选举出来的,只有优先级大于0的路由器才具有选取资格.进行DR/BDR选举时每台路由器将自己选出的DR写入Hello报文中,发给网段上的每台运行OSPF协议的路由器.当处于同一网段的两台路由器同时宣布自己是DR时,路由器优先级高者胜出.如果优先级相等,则Router ID大者胜出.如果一台路由器的优先级为0,则它不会被选举为DR或BDR.需要注意的是:1.只有在广播或NBMA类型接口才会选举DR,在点到点或点到多点类型的接口上不需要选举DR.2.DR是某个网段中的概念,是针对路由器的接口而言的.某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other.3.路由器的优先级可以影响一个选取过程,但是当DR/BDR已经选取完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经选取的DR/BDR成为新的DR/BDR4.DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口DR/BDR详细选举过程关于DR/BDR的选举似乎一直没有定论,卷一中所写的选举过程实为引用的RFC2328,而其内容用"过程"来定义似乎是不太容易理解的,准确来说,应该是状态的触发,我们想想可知,OSPF协议选举DR/BDR过程的代码不会是这些步骤的顺序实现,所以我们在分析的时候要找到每一个步骤的触发点,下面我具体分析一下,事先声明这不是翻译.1.After two-way communication has been established with .e or more neighbors,examine the Priority,DR,and BDR field of each neighbor's Hello.List all routers eligible for election(thatis,routers with priority greater than 0 and whose neighbor state is at least two-way);all routers declaring themselves to be the DR(their own interface address is in the DR field of the Hello packet);and all routers declaring themselves to be the BDR(their own interface address is in the BDR field of the Hello packet).The calculating router will include itself.this list unless it is ineligible.在广播型链路上,所有OSPF路由器之间进入Two-Way状态后开始触发选举过程,这个状态下,每一台路由器的邻居ID字段都包含其他所有的路由器的ID,这是选举公平的保证.下一个关键点是,选举初始化时,所有的路由器在一开始都宣称自己是DR和BDR,这里涉及到RFC中的两个英文单词declare和claim,很多人认为这上面有文章,其实这两个单词都有宣称的意思,只不过declare用于更为正式的场合,试想一台OSPF路由器会有这等人性的思考?所以用词我觉得作者可能都没有怎么考虑,因为在路由器上实现所谓的"宣称自己是DR/BDR"就是将自己的路由器ID写入Hello包中DR ID字段中和BDR ID字段中.2.From the list of eligible routers,create a subset of all routers not claiming to be the DR(routers declaring themselves to be the DR cannot be elected BDR).第2步很有意思,似乎与第1步冲突,既然都声称自己是DR,那么不声称自己是DR的子集一定为空啊?其实这是思维定势,因为一个选举的代码是要始终有效的,而不是仅仅用于初始化的选举.关键点就一句话:能进入这个子集的条件是,这台路由器的DR ID字段里写的不是自己的ID,这第2步是为下一步选举BDR做准备的!具体我们分析一下:在初始化状态下,即网络中没有DR,所有人都宣称自己是DR,也宣称自己是BDR,根据原则,这个子集为空,这时会直接跳到第5步,先去选举DR,在DR选举出以后,也就是网络中存在DR,现象是这样:除了DR在DR ID字段的写的是自己的ID以外,别的路由器都不是写的自己,而是选举出的那个DR的ID,那么这时就符合进入子集的条件了,除DR 外的所有路由器都会进入这个子集,进行下一步,即BDR选举.3.If .e or more neighbors in this subset include its own interface address in the BDR field.the neighbor with the highest priority will be declared the BDR.In a tie,the neighbor with the highest Router ID will be chosen.第3步,在选举BDR的时候,大家都在BDR ID字段写的自己的ID,选举结果明确后,只有BDR发的Hello包中写的自己ID,子集里其余的路由器都不是写的自己ID,而是选举出来的BDR的ID.4.If no router in the subset claims to be the BDR,the neighbor with the highest priority will become the BDR.In a tie,the neighbor with the highest Router ID will be chosen.第4步应该这样理解:如果这个子集没有路由器说自己是BDR,那就意味着BDR死掉了(本来就他一个说自己是BDR,死了就说不出来了),BDR会重新选举.5.If .e or more of the eligible routers include their own address in the DR field,the neighbor with the highest priority will be declared the DR. In a tie,the neighbor with the highest Router ID will be chosen.第5步是DR的选举过程,没有所谓的子集概念,也不是第2步以后的步骤,而是不满足第2步的条件直接跳到这一步.选举DR的资格是:在DR ID字段中写的是自己的ID6.If no router has declared itself the DR,the newly elected BDR will become the DR.第6步中说到的如果没有人宣称自己是DR对应的情景是这样,别人都说A是DR,A也应该说自己是DR,可是他死了,死人是不会说话的,所以BDR成为DR,其实这一条就是说,如果DR 当掉,BDR会成为新的DR.而如果这时BDR还没有选出来,还是会先进行BDR的选举,然后BDR成为DR,为什么,因为大家的DR字段里还是写的那个死了的DR,不符合选举DR的条件,第5步无法执行.7.If the router performing the calculation is the newly elected DR or BDR,or if it is no longer the DR or BDR,repeat steps 2 through 6.其实这一步就是说明了这个程序不仅仅是为初始化的选举用的,当稳定的角色分配出现问题时,依然能通过这些原则使角色重新定义.总结:DR/BDR选举就是"字段游戏",DR的选举资格:在Hello包中的DR ID写的是自己的ID,BDR 的选举资格:在Hello包中的BDR ID写的是自己的ID且在DR ID字段写的不是自己的ID,具体选举还要看接口优先级和最高Router-id转:/view/3a15b9563c1ec5da50e27025.html/view/5f13090016fc700abb68fc29.html分享:喜欢。
ospf工作过程
OSPF-工作过程2011-08-19 09:41:06 我来说两句收藏我要投稿1、状态机的变化过程:(1) OSPF路由器接口up,发送Hello包,(NBMA模式时将进入Attempt状态)。
(2) OSPF路由器接口收到Hello包,检查Hello中携带的参数,如果匹配,进入Init状态;并将该Hello包的发送者的Router ID,添加到Hello包(自己将要从该接口发送出去的Hello 包)的邻居列表中。
(3) OSPF路由器接口收到邻居列表中含有自己Router ID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的Router ID添加到自己的OSPF邻居表中。
(4) 在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR 选举。
点对点没有这个过程。
(5) 在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并通过交换DBD交换主从路由器,由主路由器定义DBD序列号,Router ID大的为主路由器。
目的是为了解决DBD自身的可靠性。
(6) 主从路由器选举完成后,进入Exchange(交换)状态,通过交换携带lsa头部信息的DBD包描述各自的LSDB。
(7) 进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认。
(8) LSA交换完成后,进入FULL状态,同一个区域内所有OSPF路由器都拥有相同链路状态数据库。
(9) 定期发送Hello包,维护邻居关系。
2、协商过程:本文出自“Esc结束” 博客OSPF协议之详细图解2012-10-10 10:31:46 我来说两句作者:xuzhiming302收藏我要投稿OSPF是一种基于SPF算法的链路状态路由协议。
OSPF协议选举出多个DR和BDR的原因分析
选举DR/BDR这个问题很多人会迷糊,因为OSPF协议复杂,这个选举还要从学生的问题出发,一个三个路由器的拓扑选举出两个DR,这个问题看起来很不正常,你耐心看完我的解析,你就觉得正常了!我们今天直接了当点,先普及下OSPF协议中的网络类型:有人说没看懂?我给你画个图,下图是啥网络?我们叫broadcast multiaccess 网络,就是我们说的多路访问网络,这个网络是要选举DR/BDR,如果你不懂DR/BDR是啥,你要先去了解下,不然你往下看不懂的。
点到点的网络啥样子。
比如PPP链路,这个链路不需要选举DR和BDR。
啥是非广播(Non-Broadcast )网络?比如帧中继网络,这种网络也要选举DR/BDR.选举规则:★比较接口优先级选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DR和BDR。
★Route-Id大小如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。
在一个多路访问网络中,选举DR和BDR是有时间限制的,该时间为Wait时间,默认为4倍的Hello时间,即与Dead时间相同,如果OSPF路由器在超过Wait时间后也没有其它路由器与自己竞争DR与BDR的选举,那么就选自己为DR;当一个多路访问网络中选举出DR与BDR之后,在DR与BDR没有失效的情况下,不会进行重新选举,也就是在选举出DR与BDR之后,即使有更高优先级的路由器加入网络,也不会影响DR与BDR 的角色,在越出选举时间(Wait时间)后,只有DR与BDR失效后,才会重新选举。
DR失效后,会同时重新选举DR与BDR,而在BDR失效后,只会重新选举BDR。
说了半天,下面才是重点!注意:我们这个选举规则的前提是多路访问网络!!请问下图的DR和BDR是哪个路由器?很显然,DR是route-id 8.8.8.8的路由器R8,BDR是route-id7.7.7.7 的路由器R7,其他路由器是DRother。
OSPF中DR与BDR触发
问题的提出:DR和BDR选举的触发事件是什么?一个路由器,在什么情况下会认定DR/BDR选举完成,而DR/BDR选举完成则意味着这个多路访问网络已经稳定,那么换而言之,在什么情况下,一个路由器会认定这个网络已经稳定?前置知识:已经大致了解DR/BDR选举过程,并至少已经通读了《TCP_IP路由技术(卷1)》中关于DR/BDR选举过程的描述。
解决问题:首先我们来看下DR/BDR选举中,很少被人所知的过程,其实一个路由器是先选出BDR的!但此时的BDR 不会被写入接口数据库,而是会立刻将此BDR提升到了DR的地位并写入数据库,然后会再看看是否有人声称他自己(这点在后面会提及)是BDR,如果没有人声称的话,他会再次进行BDR的选举,并写入接口数据库中向外发通告(总结自OSPF的RFC文档)当一个路由器新接入一个多路访问网络的时候,他会先等待waittime计时器到期,到期后,将按DR/BDR 选举原则进行选举,其时间默认是hello间隔的四倍,而其之所以要先等待waittime计时器到期是因为它刚刚接入此网络,不知道此网络的状况,因此他需要收集hello包进行分析,这就是waittime计时器的作用。
而如果其收集到的hello包有证据表明此网络已经稳定,即DR/BDR选举已完成,那么他将不会等待waittime 计时器到期而立刻触发选举。
那么,触发选举的的事件有哪些呢?触发事件一:当新接入的路由器接收到了一个来自BDR的hello包,且DR字段不为空后,他将不会等待waittime计时器到期而立刻选举。
提出疑问:为什么新接入的路由器”宁可相信” BDR,而不愿相信DR的数据包呢?也就是说如果是DR发送了一个hello包,且DR/BDR字段都不为空,为什么不会触发选举?其实仔细想想waittime计时器的作用,我们会发现其实只要路由器能够确定此网络中的DR/BDR的选举已经完成,那么waittime计时器即可不必理会,那么关键就在于路由器凭什么认定此网络中的DR/BDR的选举已经完成。
DR和BDR的选举问题
DR和BDR的选举问题1、DR---Designated Router(指定路由器)DR的任务:该图中,当R3所直连的某一网络发生中断,则R3将把该信息只交给R1(DR),DR收到该信息后,再向R2和R4发送该网络中断的信息。
换句话说,R1(即DR)是整个OSPF网络中的领导者,网络中出现任何变化,都需要向DR汇报,再由DR向其他路由器发送该消息。
2、BDR---Backup Designated Router(备份指定路由器)BDR的任务:在上图中,如果充当整个OSPF网络管理者的DR路由器发生意外情况,down 了,则整个网络会因为失去了核心而变得混乱。
BDR的作用就是在DR实效后顶替DR的位置,变成新的DR。
3、为什么要选择DR、BDR?先来考虑一下没有DR/BDR网络的更新将是什么样子的:如图,当R2路由器有路由更新信息需要告诉给其他路由器,那么它会把信息copy三份分别发给R1,R3,R4当R1、R3、R4收到来自R2的更新报文后,也会做同样的事---因为它们不确定别的路由器是否已经知道了这条更新,所以他们会尽力的把自己知道的所有消息通过所有的ospf interface转发出去。
这样会导致一个问题:网络中的重复更新信息被复制了很多份,占用了宝贵的网络资源。
如果仅仅只有一台领导者DR和一台BDR那么问题就会解决:所有的非DR、BDR路由器有任何的路由更新信息都只告诉DR和BDR,再由DR负责向其他的路由器转发该更新信息。
4、怎么选择DR、BDR如下图,四台OSPF路由器的Router ID都已标识出来.它们使用HELLO报文来互相交换信息,从而选择出DR、BDR。
在整个OSPF网络中,Router ID最高者则成为DR,次高者成为BDR,其余的路由器统称为DRother。
下图中,因为R1路由器的Router ID最高,则成为DR;而R2路由器的Router ID次高,成为BDR;R3、R4两台路由器被称为DRother.5、手工配置DR、BDRDR需要处理整个网络中的实时的变动信息,承担着整个OSPF网络中领导者的责任,因此做为DR路由器需要较强的性能。
华为ospf中DR选举
OSPF中DR选举机制详解在广播和NBMA 类型的网络上flood 如果网络中有 N 台路由器N-1 任何一台路由器的路由变化N-1 这是没有必要的为了解决这个问题Designated Router 所有的路由器都只将路由信息发送给DR Á½Ì¨²»ÊÇDR 的路由器之间不再建立邻接关系这样在同一网段内的路由器之间只需建立2N本文以Quidway路由器组成的广播网络为例旨在介绍一种DR工作过程的实验室操作试验环境4台分别带有以太网的Quidway路由器HUB和带有串口的PC机网线若干Router ARouter DRouter C二4台路由器通过以太网口被连到一个HUB上其中它是网络上的最高优先级路由器C是优先级第二高路由器D优先级设为0路由器B未配置优先级而其缺省值为1ROUTER Alogin telnetrouter id 1.1.1.1hostname RT-Ainterface Ethernet12/2/0ip address 192.168.10.1 255.255.255.0ip ospf priority 100router ospfnetwork 192.168.10.0 0.0.0.255 area 0.0.0.0 endROUTER BNow create configuration...Current configuration!login telnetrouter id 1.1.1.3hostname RT-Cinterface Ethernet12/2/0ip address 192.168.10.3 255.255.255.0ip ospf priority 2router ospfnetwork 192.168.10.0 0.0.0.255 area 0.0.0.0 endROUTER D¼à²âÅäÖÃ在路由器A上运行show ip ospf neighbor来显示OSPF邻居 1.1.1.21.1.1.4RT-A#sho ip ospf neiInterface: 192.168.10.1 Area: 0.0.0.0Neighbors:RouterID: 1.1.1.2 Address: 192.168.10.2State: Full Mode: Slave Priority: 1DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 23:27 Last Exchange: 20:47RouterID: 1.1.1.3 Address: 192.168.10.3State: Full Mode: Slave Priority: 2DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 23:27 Last Exchange: 7:28RouterID: 1.1.1.4 Address: 192.168.10.4State: Full Mode: Slave Priority: 0DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 23:27 Last Exchange: 7:28可以看到full这意味着A路由器与它的每个邻居都形成了邻接RT-A是网络中的DR用show ip ospf可以看到RT-B DROTHER这意味着它们既不是DR也不是BDRÐèҪעÒâµÄÊÇÁÚ¾Ó1.1.1.4的状态是而不是RT-B#sho ip ospf nei neighbors Area 0 interface 192.168.10.2(Ethernet14/2/0)'s RouterID: 1.1.1.1 Address: 192.168.10.1 Ful l Mode: Master Priority: 100 State: DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 20:16 Last Exchange: 0RouterID: 1.1.1.3 Address: 192.168.10.3State: Full Mode: Hold Priority: 2DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 20:18 Last Exchange: 20:19RouterID: 1.1.1.4 Address: 192.168.10.4State: 2 Way Mode: None Priority: 0DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 20:18 Last Exchange: 0在路由器C上运行sho ip ospf nei来显示OSPF邻居full因为C是网络中的BDR在路由器D上运行sho ip ospf nei来显示OSPF邻居 2 way full是因为1.1.1.2既不是DR也不是BDR但一旦DR被选出直至它结束B的以太网接口上RT-B(con-inf-ethnet14/2/0)#ip ospf priority 200在路由器RT¿ÉÒÔ¿´µ½RT然而其并未成为DRState: Full Mode: Slave Priority: 0DR: 192.168.10.1 BDR: 192.168.10.3Last Hello: 32:57 Last Exchange: 7:28只有DR不在网络上后关掉路由器A¿ÉÒÔ¿´µ½Ô-À´µÄBDR路由器C成为DRInterface: 192.168.10.4 Area: 0.0.0.0Neighbors:RouterID: 1.1.1.2 Address: 192.168.10.2State: Full Mode: Slave Priority: 200DR: 192.168.10.3 BDR: 192.168.10.2Last Hello: 32:56 Last Exchange: 28:04RouterID: 1.1.1.3 Address: 192.168.10.3State: Full Mode: Slave Priority: 2DR: 192.168.10.3 BDR: 192.168.10.2Last Hello: 32:58 Last Exchange: 31:38关掉所有的路由器然后再打开这时路由器B就会被选为DR 如下所示RT-D#sho ip ospf neiInterface: 192.168.10.4 Area: 0.0.0.0Neighbors:RouterID: 1.1.1.1 Address: 192.168.10.1State: Full Mode: Master Priority:100DR: 192.168.10.2 BDR: 192.168.10.1Last Hello: 28:43 Last Exchange: 0RouterID: 1.1.1.2 Address: 192.168.10.2State: full Mode: None Priority: 200DR: 192.168.10.2 BDR: 192.168.10.1Last Hello: 28:35 Last Exchange: 0RouterID: 1.1.1.3 Address: 192.168.10.3State: 2 way Mode: Master Priority: 2DR: 192.168.10.2 BDR: 192.168.10.1Last Hello: 28:36 Last Exchange: 0四Ÿ所有存在两个以上附属路由器的多路访问网络下同如果没有DRÕâ¸ö¹ý³Ì½«²úÉú个邻接只向DR 和BDR 发送路由信息如果DR 失效Ÿ当一个路由器第一次在一个多路访问网络中工作时如果有一旦一个DR 被选出其他路由器是无法替代的如果网络中没有DR华为技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DR/BDR选举过程如下:
1.在与一个或多个邻居之间的双向通信建立起来之后,(路由器)对每个邻居(发送来)的Hello包中的优先级、DR和BDR域进行检查。
列出所有能够参加选举的路由器(也就是说,路由器的优先级高于0并且此路由器的邻居状态至少为“双向”);所有路由器都宣称自己为DR(将它们自己的接口地址置于Hello包的DR域中);
而且所有路由器都宣称自己为BDR(将它们自己的接口地址置于Hello包的BDR域中)。
进行计算的路由器也要将自身包括在此列表内,除非它被禁止参加选举。
2.从(以上)备选路由器列表中,创造一个子集,此子集包含所有未宣称为DR
的路由器(宣称自己为DR的路由器无法被选举为BDR).
3.如果此子集中的一或多个邻居将它(们)自身的接口地址置于BDR域中,这些邻居中拥有最高优先级的路由器将被宣告为BDR。
如果出现平局(路由器优先级相等),拥有最高Router ID的邻居将被选举出来。
4.如果此子集中没有任何路由器被宣告为BDR,拥有最高优先级的邻居将被宣告
为BDR。
如果出现平局,拥有最高Router ID的邻居将被选举出来。
5.如果一或多个备选路由器将它(们)自身的接口地址置于DR域中,拥有最高优先级的邻居将被宣告为DR。
如果出现平局,拥有最高Router ID的邻居将被选举出来。
6.如果没有任何路由器宣告自己为DR,则新选举出来的BDR将成为DR。
7.如果进行计算的路由器是新选举出来的DR或者BDR,或者如果它不再是DR或
者BDR,重复步骤2到6。
简而言之,当一个OSPF路由器启动并开始搜索邻居时,它先搜寻活动的DR和BDR。
如果DR和BDR存在,路由器就接受它们。
如果没有BDR,就进行一次选举将拥有最高优先级的路由器选举为BDR。
如果多于一台路由器拥有相同的优先级,那么拥有
最高路由器ID的路由器将胜出。
如果没有活动的DR,BDR将被提升为DR然后再进行一次BDR的选举。
以上译自《Routing TCP/IP Volume I》 Jeff Doyle Cisco Press 1998 / PTP 2003
DR选举机制按照如下规则运作:将进行计算的路由器称为路由器X。
路由器X将会检查所有连接到此网络并与路由器X建立起双向通信的邻居的列表。
此列表恰好为所有与路由器X的状态等于或高于“2-Way”状态的所有邻居的总和。
路由器X也将其本身包括在此列表内。
将列表中无权参加选举的所有路由器剔除。
(拥有优先级0的路由器将无权成为DR。
)。
基于列表中剩余的所有路由器执行如下步骤:1.记录当前网络中的DR和BDR值。
此值稍后将作比较之用。
2.为此网络按照如下方式计算BDR。
只有那些在列表中的没有宣称自己为DR的路
由器才能参加BDR选举。
如果多于一台路由器宣称自己为BDR(例如,当前在它们
的Hello包中它们将自己列为BDR,但不是DR),则拥有最高路由器优先级的路由器被选举成为BDR。
如果路由器的优先级相等,则拥有最高Router ID的路由器将
当选。
如果没有路由器宣称自己为BDR,则选举拥有最高路由器优先级的路由器为BDR(同样不考虑那些宣称自己为DR的路由器),同样使用Router ID来打破平局。
3.按照如下方法为此网络计算新的DR。
如果一或多个路由器宣称自己为DR(也就是说,当前在它们的Hello包中将它们自己列为DR),则拥有最高路由器优先级的
路由器被宣告为DR。
如果出现平局,拥有最高Router ID者胜出。
如果没有路由器宣告自己为DR,则新选择出来的BDR成为DR。
4.如果路由器X现在被选为新的DR或者BDR,或者它不再成为DR或者BDR,重复步骤2和3,然后跳到步骤5。
例如,如果路由器X现在是DR,当重复第2步时路由器X将不能再参加BDR的选举。
此外,这也会保证没有任何路由器会同时宣告自己为BDR和DR。
5.作为选举的结果,路由器本身可能现在成为了DR或者BDR。
路由器的接口状态将被依此而设置。
如果路由器现在成为了BDR,则端口的新状态为“备份”。
否则,接口的新状态成为DR Other。
6.如果所连接的网络是NBMA网络而路由器本身正好被选举为DR或者BDR,它必须开始发送hello包给那些无权成为DR的邻居。
这是通过调用每个拥有路由器优先级0的邻居消息“Start”来实现的。
7.如果以上计算导致了DR或者BDR身份的改变,与此端口关联的邻接关系需要进行改变。
某些邻接关系需要建立,而其他一些将被打破。
为了实现此动作,为所有状态至少为“2-Way”的邻居调用消息“AdjOK?”。
这将会导致它们重新检查邻接状态。
以上译自 RFC 2178。