OSPF实验2:DRBDR的选取
- 格式:doc
- 大小:37.00 KB
- 文档页数:4
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(DesignatedRouter)和BDR(BackupDesignatedRouter)是OSPF(开放式最短路径优先)协议中常见的概念,它们的作用是为了优化大型网络中的路由器通信效率。
DR是在OSPF网络中选出的拓扑结构中心路由器,它负责处理相邻路由器之间的路由信息交换,并将汇总后的路由信息传递给其他路由器。
这样可以有效减少大量路由信息的传输,提高网络的通信效率。
BDR是指备用的DR,当DR出现故障或者不可用时,BDR会立即接管DR的所有职责,保证网络的稳定性和可靠性。
因此,BDR在网络中的作用同样重要,它可以保证网络的连通性,防止网络出现故障等问题。
总之,DR和BDR的作用是为了减少路由信息的传输,提高网络通信效率,并保证网络的稳定性和可靠性。
在大型网络中,DR和BDR 的选举和配置十分重要,可以有效优化网络性能和管理。
- 1 -。
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。
实验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/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的选举规则,大家参考一下: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 V2知识要点OSPF 版本2路由器通过LSA来获悉其他路由器和网络,LSA被扩散到整个网络,它存储在拓扑表(LSDB)中。
区域内的路由器保存该区域中所有链路和路由器的详细信息,但只保存有关其他区域中路由器和链路的摘要信息。
Cisco建议每个区域中的路由器不应超过50~100台。
DR/BDR的选举接口上的优先级、Router-id。
Ospf的进程号OSPF 进程号只起本地标识作用,而无其他意义,类似于WINDOWS任务管理器中的进程号Router-id 的选取:1,路由器选取它所有的Loopback接口上最高的IP地址2,如果没有配置IP地址的Loopback接口,那么将选取它所有的物理接口上最高的IP 地址,注意是所有物理接口,子接口不参与选取在CISCO路由器上,即使作为Router-id 的物理接口DOWN掉了或被删除了,OSPF也会继续使用原来的物理接口做为Router-id ,所以使用loopback接口的好处仅在于更好的控制router-id正常情况下,在同一个区域内,OSPF database是完全一模一样的(包括顺序,内容)OSPF中重分布其它路由协议时,如果要修改重分布的内容,必须no掉重打,不支持覆盖功能。
Area 0.0.1.2= Area 258 ( 0.0.1.2 = 256+2 )OSPF区域特征:减少路由条目;将区域内拓扑变化的影响限制在本地;将LSA扩散限制在区域内;要求采取层次网络设计。
LSA刷新时间:为确保数据库的准确性,OSPF每隔30分钟对每条LSA记录扩散一次。
Router ID:用于标识路由器、通告路由器、确认主从关系、选举DR用等。
什么时候更改RID必须清除OSPF进程?RID是在OSPF域中用于标识自己的身份ID,所以在邻居关系还没形成之前更改RID 是不需要清除OSPF进程的。
当新加入一台设备到MA网络中时,该设备会将自己的DR和BDR的地址设为0.0.0.0 设置等待计时器为40秒,(超时后宣告自己为DR)如果一个网络中的所有路由器都不具有选举DR的资格,那么网络中的所有路由器都不会相互建立邻接,停留在TWO-W AY状态ABR/ASBR:ABR:ABR是连接多个区域的路由器,并且有一端在区域0上,而且至少有一端在其它区域上。
OSPF综合实验大全OSPF实验1:基本的OSPF配置实验级别:Assistant实验拓扑:实验步骤:1.首先在3台路由器上配置物理接口,并且使用ping命令确保物理链路的畅通。
2.在路由器上配置loopback接口:R1(config)#int loopback 0R1(config-if)#ip add 1.1.1.1 255.255.255.0R2(config)#int loopback 0R2(config-if)#ip add 2.2.2.2 255.255.255.0R3(config)#int loopback 0R3(config-if)#ip add 3.3.3.3 255.255.255.0路由器的RID是路由器接口的最高的IP地址,当有环回口存在是,路由器将使用环回口的最高IP地址作为起RID,从而保证RID的稳定。
3.在3台路由器上分别启动ospf进程,并且宣告直连接口的网络。
R1(config)#router ospf 10R1(config-router)#network 192.168.1.0 0.0.0.255area 0R1(config-router)#network 1.1.1.0 0.0.0.255 area 0R1(config-router)#network 192.168.3.0.0.0.255 area 0ospf的进程号只有本地意义,既在不同路由器上的进程号可以不相同。
但是为了日后维护的方便,一般启用相同的进程号。
ospf使用反向掩码。
Area 0表示骨干区域,在设计ospf网络时,所有的非骨干区域都需要和骨干区域直连!R2,R3的配置和R1类似,这里省略。
不同的是我们在R2和R3上不宣告各自的环回口。
*Aug 13 17:58:51.411: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on Serial1/0 from LOADING to FULL, Loading Done配置结束后,我们可以看到邻居关系已经到达FULL状态。
在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中DR/BDR相关概念1.角色:DR指定路由器,BDR备份指定路由器,Dother其他路由器2.作用:在MA网络中为了减少ospf的流量,减少内存占用,减少CPU消耗,从而形成DR/BDR的概念●DR:监听网络中所有的流量信息,最主要的就是LSA,可以认为是班长;●BDR:作为DR的备份,也能收到LSA,并且监听DR的状态,可以认为是副班长;●Dother:除了DR/BDR之外的所有路由器,只向DR/BDR发送LSA,可以认为是普通同学。
3.选举:只在MA网络中选举●比较接口优先级,越大越优,默认为1,为0则不参与选举,只能成为Dother。
●比较路由器的router-id,越大越优。
问题1:先选举DR还是BDR?答:在这里可以认为一个MA网络中有三个集合,a)最初所有接口都在Dother集合中,从中选一个最优的放到BDR集合中;b)再从BDR集合中选出一个最优的放到DR集合中;c)此时BDR集合为空,那么再从Dother集合中选一个最优的放到BDR集合中;d)即:先选BDR,再从BDR中选DR。
问题2:DR/BDR是接口的角色还是路由器的角色?答:接口的角色,一台路由器既可以有DR也可以有BDR。
示例:R1和R2,R2和R3分别形成了一个广播型网络,在每一个广播型网络中都会选举DR/BDR,根据选举原则,R2的左边接口是DR,右边接口是BDR,所以我们认为是接口的角色。
4.邻居关系和报文发送:Dother和Dother之间只能形成邻居关系,只发送hello报文,目的就是减少网络中ospf的流量。
其他的情况都可以建立邻接关系并且交互5种OSPF报文。
5.组播报文区分:●DR/BDR侦听224.0.0.6,即其他路由器发送报文给DR/BDR的组播ip都为224.0.0.6●Dother侦听224.0.0.5,即发给Dother的报文组播ip都是224.0.0.56.不抢占原则:●如果在一个网络中已经选出DR和BDR,新加入一个更优的路由器,它只能成为Dother,目的是减少网络动荡。
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监听该地址。
OSPF动态路由协议笔记之(⼆):基本⼯作原理(下)OSPF动态路由协议笔记之(⼆) : 基本原理(下) 本笔记承接上⼀节,继续对OSPF报⽂的报⽂头部和报⽂类型进⾏详尽的介绍,接着介绍OSPF建⽴邻接关系的过程(即LSDB同步的过程),最后补充上⼀节笔记中提及的DR和BDR选举的过程。
OSPF报⽂类型及作⽤ (1)OSPF协议报⽂头部 RIP路由器之间是基于UDP 520的报⽂进⾏通信,OSPF也有其规定的通信标准。
OSPF使⽤IP承载其报⽂,IP报⽂头部协议号为89。
在OSPF Packet部分,所有的OSPF报⽂均使⽤相同的OSPF报⽂头部。
报⽂头部各字段含义如下: ①Version(1个字节):版本。
对于当前所使⽤的OSPFv2,该字段的值为2。
② Type(1个字节):类型。
OSPF报⽂类型。
其值分别代表以下⼏种报⽂类型: l 1:Hello报⽂; l 2:DD报⽂; l 3:LSR报⽂; l 4:LSU报⽂; l 5:LSAck报⽂。
③Packet length(2个字节):数据包长度。
表⽰整个OSPF报⽂的长度,单位是字节。
④Router ID(4个字节):发送该报⽂的路由器标识。
表⽰⽣成此报⽂的路由器的Router ID。
⑤ Area ID(4个字节):发送该报⽂的所属区域。
表⽰此报⽂需要被通告到的区域。
⑥Checksum(2个字节):校验和。
⽤于校验报⽂的完整性,其校验的范围是整个OSPF报⽂,包括OSPF报⽂头部。
⑦Auth Type(2个字节):验证类型。
为0时表⽰不认证;为1时表⽰简单的明⽂密码认证;为2时表⽰加密(MD5)认证。
⑧Authentication(8个字节):鉴定字段。
认证所需的信息,该字段的内容随AuType(验证类型)的值不同⽽不同。
当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息,MD5验证数据添加在OSPF报⽂后⾯,不包含在Authenticaiton字段中。
选举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。
问题的提出: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的选举问题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路由器需要较强的性能。
实验级别: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字段中的信息,并且服从优先级原则,可以这样认为——选举是公平的。