OSPF实验2:DRBDR的选取
OSPF DR BDR选举过程(中文版)

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 2003DR选举机制按照如下规则运作:将进行计算的路由器称为路由器X。
阐明dr与bdr的作用

阐明dr与bdr的作用
DR(DesignatedRouter)和BDR(BackupDesignatedRouter)是OSPF(开放式最短路径优先)协议中常见的概念,它们的作用是为了优化大型网络中的路由器通信效率。
DR是在OSPF网络中选出的拓扑结构中心路由器,它负责处理相邻路由器之间的路由信息交换,并将汇总后的路由信息传递给其他路由器。
这样可以有效减少大量路由信息的传输,提高网络的通信效率。
BDR是指备用的DR,当DR出现故障或者不可用时,BDR会立即接管DR的所有职责,保证网络的稳定性和可靠性。
因此,BDR在网络中的作用同样重要,它可以保证网络的连通性,防止网络出现故障等问题。
总之,DR和BDR的作用是为了减少路由信息的传输,提高网络通信效率,并保证网络的稳定性和可靠性。
在大型网络中,DR和BDR 的选举和配置十分重要,可以有效优化网络性能和管理。
- 1 -。
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网络类型,DR和BDR理解

DR和BDR选举要先看优先级,再看Router-ID。如果DR失效,BDR会立即生效(BDR变成DR),不会重新选举DR,就算路由器中有优先高的,也不会立即选举。BDR变成DR后,在选举一个新的BDR,这时不会影响路由的计算。路由器接口的优先级:Router(config-if)#ip ospf priority {0 - 255}
3.OSPF的LSA类型:分为12种类型,主要学1、2、3、4、5、7等六个LSA类型。
LSA1 -- Router LSA(路由LSA)
LSA2 -- Network LSA(网络LSA)
LSA3 -- Network summary(网络汇总LSA)
LSA4 -- ASBR summary
2. 在NBMA和广播网络上需要选举DR与BDR,而在点到多点网络中没有DR与BDR。
NBMA用单播发送报文,需要手工配置邻居。点到多点采用多播方式发送报文。
OSPF,对于点对点与点对多点来说,没有必要选取DR与BDR。这时候采用组播地址224.0.0.5.
OSPF,对于NBMA与广播型网络来说,有必要选取DR与BDR。(会产生不必要的LSA通告,全网互通下产生N*(N-1)/2条),这时候DR采用组播地址224.0.0.5,接受地址224.0.0.6 BDR采用组播地址224.0.0.6,接受地址224.0.0.5 DRother之间不exchangeLSA信息,信息由DR发出。
密文认证:
r2(config)#router ospf 100
r2(config-router)#area 0 authentication message-digest
r2(config-if)#ip ospf authentication message-digest
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验级别:Professional情况一:我们都知道OSPF选取DR的过程是首先比较优先级,在优先级相同的情况下选择RID较高的为DR,但是我多次实验后发现在很多时候DR并非RID最高的路由器,这是什么原因呢?在翻阅了卷一有关OSPF DR选取的介绍时,发现了这么一句话:“在一个多址网络上,最先初始化启动的两台具有DR选取资格的路由器将成为DR和BDR路由器。
”这是我总结了非最高RID而成为DR的实验,发现这些路由器都是我在进行OSPF配置的时候首先启动ospf 的路由器,那会不会是因为这些路由器首先启动了OSPF,然后把自己设置为DR导致其他路由器启动OSPF后就不再进行DR的选取了呢?于是我做了下面的这个实验。
实验的topo很简单,我就不画了,就是两台路由器通过fa0/0口相连接。
R1:conf tho R1int lo0ip add 1.1.1.1 255.255.255.0int fa0/0ip add 172.1.1.1 255.255.255.0no shrouter ospf 10net 172.1.1.1 0.0.0.0 a 0R2:conf tho R2int lo0ip add 2.2.2.2 255.255.255.0int fa0/0ip add 172.1.1.2 255.255.255.0no shR1启动ospf进程后,我们在R2上暂时先不开启ospf,在R1上发现了以下信息:R1#sho ip ospf intFastEthernet0/0 is up, line protocol is upInternet Address 172.1.1.1/24, Area 0Process ID 10, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1 Transmit Delay is 1 sec, State DR, Priority 1Designated Router (ID) 1.1.1.1, Interface address 172.1.1.1No backup designated router on this networkTimer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5oob-resync timeout 40Hello due in 00:00:01Index 1/1, flood queue length 0Next 0x0(0)/0x0(0)Last flood scan length is 0, maximum is 0Last flood scan time is 0 msec, maximum is 0 msecNeighbor Count is 0, Adjacent neighbor count is 0Suppress hello for 0 neighbor(s)我们看到R1已经把自己设定为DR了,按照OSPF的规则,新加入的路由器即使RID比D R高,也不会替换DR。
这就说明了为什么在有些时候DR并非RID最高的路由器。
当然这个实验也顺便验证了ospf中DR选取结束后,除非DR路由器出现故障,否则就是有更高优先级或者RID的路由器进入OSPF进程,也是无法改变DR的。
既DR是不可以抢夺的!情况二(本实验参照了ITAA实验室Netfish的实验):ospf中有一个Wait Timer计时器,在这个计时器所限定的时间内起来的OSPF可以视为同时起机。
TCP/IP卷1第292页对于这个时间间隔是这样定义的:Wait Timer:在开始选举DR和BDR之间,路由器等待邻居路由器的Hello数据包通告D R和BDR的时长。
长度就是RouterDeadInterval的时间。
本实验拓扑与情况一相同,不同的地方在于当我们在R1上启动OSPF后,迅速(一定要迅速,非常迅速!40s之内)在R2上也启动ospf,通过debug信息可以看到以下情况:R1#debug ip ospf adjOSPF adjacency events debugging is onR1#debug ip ospf evOSPF events debugging is on*Aug 14 00:56:19.047: OSPF: Interface FastEthernet0/0 going Up*Aug 14 00:56:19.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet 0/0 from 172.1.1.1*Aug 14 00:56:19.551: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000001*Aug 14 00:56:19.555: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEtherne t0/0 172.1.1.2*Aug 14 00:56:19.555: OSPF: End of hello processingR1(config-router)#*Aug 14 00:56:29.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet 0/0 from 172.1.1.1*Aug 14 00:56:29.451: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEtherne t0/0 172.1.1.2*Aug 14 00:56:29.455: OSPF: 2 Way Communication to 2.2.2.2 on FastEthern et0/0, state 2WAY*Aug 14 00:56:29.455: OSPF: End of hello processingR1(config-router)#*Aug 14 00:56:39.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet 0/0 from 172.1.1.1*Aug 14 00:56:39.427: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEtherne t0/0 172.1.1.2*Aug 14 00:56:39.427: OSPF: End of hello processingR1(config-router)#*Aug 14 00:56:49.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet 0/0 from 172.1.1.1*Aug 14 00:56:49.447: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEtherne t0/0 172.1.1.2*Aug 14 00:56:49.447: OSPF: End of hello processingR1(config-router)#*Aug 14 00:56:59.051: OSPF: end of Wait on interface FastEthernet0/0*Aug 14 00:56:59.051: OSPF: DR/BDR election on FastEthernet0/0*Aug 14 00:56:59.051: OSPF: Elect BDR 2.2.2.2*Aug 14 00:56:59.055: OSPF: Elect DR 2.2.2.2*Aug 14 00:56:59.055: DR: 2.2.2.2 (Id) BDR: 2.2.2.2 (Id)*Aug 14 00:56:59.055: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0 x826 opt 0x52 flag 0x7 len 32*Aug 14 00:56:59.059: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet 0/0 from 172.1.1.1*Aug 14 00:56:59.459: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEtherne t0/0 172.1.1.2*Aug 14 00:56:59.463: OSPF: Neighbor change Event on interface FastEtherne t0/0*Aug 14 00:56:59.463: OSPF: DR/BDR election on FastEthernet0/0*Aug 14 00:56:59.463: OSPF: Elect BDR 1.1.1.1*Aug 14 00:56:59.467: OSPF: Elect DR 2.2.2.2*Aug 14 00:56:59.467: OSPF: Elect BDR 1.1.1.1*Aug 14 00:56:59.467: OSPF: Elect DR 2.2.2.2*Aug 14 00:56:59.471: DR: 2.2.2.2 (Id) BDR: 1.1.1.1 (Id)这个时候我们发现两个路由器进行了DR/BDR的选取,并且结论和书上介绍的完全一致。
从Debug信息的时间上来看,从启动OSPF进程到开始选举DR和DBR的时间间隔是40秒,在这个时间段内,无论R1还是R2并没有选举DR和DBR。
在RFC2328中对这个时间间隔的定义如下:Wait TimerA single shot timer that causes the interface to exit theWaiting state, and as a consequence select a Designated Routeron the network. The length of the timer is RouterDeadIntervalseconds.因为在广播链路中的RouterDeadInterval是40秒,所以我们看到的这个时间间隔为40秒。
结论:并不是先启动OSPF进程的路由器就是DR,而是有一个时间间隔让路由器来等待其他路由器,在这个时间间隔内,路由器相互监听Hello包中的DR和DBR字段中的信息,并且服从优先级原则,可以这样认为——选举是公平的。