注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 子域部署Exchange服务器详..
 帮助

OSPF路由协议中DR和BDR选举问题


2007-10-13 10:17:39
 标签:OSPF   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shangwen.blog.51cto.com/245264/46047

OSPF路由协议中DRBDR选举问题

实验拓扑图:
问题分析:
在上面网络拓扑中配置ospf路由协议,设备的配置顺序为先配置A->B->C
A路由器的配置如下
A(config)#router ospf 100
A(config-router)#network 10.0.0.0 0.0.0.255 area 0
A(config-router)#network 192.168.10.0 0.255.255.255 area 0

 B路由器的配置如下
B(config)#router ospf 200
B(config-router)#network 20.0.0.0 0.0.0.255 area 0
B(config-router)#network 192.168.10.0 0.255.255.255 area 0
B(config-router)#network 192.168.20.0 0.255.255.255 area 0

 C路由器的配置如下
C(config)#router ospf 300
C(config-router)#network 30.0.0.0 0.0.0.255 area 0
C(config-router)#network 192.168.20.0 0.255.255.255 area 0

 
根据书本上ospf路由协议在广播型网络中DRBDR 的选举原则为
1)  比较路由器接口的优先级有较高优先级的路由器成为DR;次高优先级的路由器被选举为BDR。(cisco路由器的默认优先级为1
2)  如果路由器的优先级相同则比较路由器的ID,有较高ID的路由器被选举为DR
3)  DRBDR选举完成以后,再向该区域网络中加入了优先级更高的或路由器ID 更大的路由器时将不会重新选举直到DR失效为止。
___________________________________________________________
注:如果路由器上配置了loopback接口那么该接口上配置的IP地址就是该路由器的ID
如果没有配loopback接口,就比较路由器上所有活动物理接口的IP地址,有较高的IP地址将成为该路由器的ID
 
在上面的网络拓扑中路由器ABC都配置了回环接口所以路由器ABC的路由器ID应该使用回环接口的IP地址来表示即:
A路由器的ID=10.1.1.1
B路由器的ID=20.1.1.1
C路由器的ID=30.1.1.1
路由器B f0/0C f0/0相连属于广播型网络,所有要选举DRBDR按照以上的选择原则在优先级相同情况下比较路由器的ID大小,很显然C路由器的ID30.1.1.1 要大于B路由器的ID,即C被选举为DRB被选举为BDR
 
按照以上的配置步骤和顺序,显示结果却和我们分析不一样? 以下是显示的结果B路由器是DRC路由器为BDR。为什么会是路由器ID较小的成为了DR呢? 
 
B#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
10.1.1.1          0   FULL/  -        00:00:37    192.168.10.1    Serial1/0
30.1.1.1          1   FULL/BDR       00:00:39    192.168.20.2    FastEthernet0/
B#show ip ospf interface f0/0
FastEthernet0/0 is up, line protocol is up
  Internet Address 192.168.20.1/24, Area 0
  Process ID 2, Router ID 20.1.1.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 20.1.1.1, Interface address 192.168.20.1
  Backup Designated router (ID) 30.1.1.1, Interface address 192.168.20.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:08
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 30.1.1.1  (Backup Designated Router)
  Suppress hello for 0 neighbor(s)
结论:
    如果在这个广播型OSPF区域中只有唯一一台路由器B启动用OSPF路由协议,那么B路由器把自己看作是DRBDR,当在这个区域中在有其他的路由器加入这个区域中时,因为DR已经被选举出来了只需要选举BDR了。所以会发生上面的问题;
    
gairuhe BLOG中对该问题的总结相当精彩  ! http://gairuhe.blog.51cto.com
    并不是先启动OSPF进程的路由器就是DR,而是有一个时间间隔让路由器来等待其他路由器,在这个时间间隔内,路由器相互监听Hello包中的DR和DBR字段中的信息,并且服从优先级原则,可以这样认为——选举是公平的。
     ospf中有一个Wait Timer计时器,在这个计时器所限定的时间内起来的OSPF可以视为同时开机。
    TCP/IP卷1第292页对于这个时间间隔是这样定义的:
    Wait Timer:在开始选举DR和BDR之间,路由器等待邻居路由器的Hello数据包通告DR和BDR的时长。长度就是RouterDeadInterval的时间。
 
实际情况:
     在实际的网络中,即使是40秒内同时起进程的情况也少见;实际情况下是率先启用ospf进程的路由器就很有可能成为DR,第二个启动的就很有可能成为 BDR,考虑到路由器故障或者重启等情况,实际的运行效果是:“活”得最久的路由器成为DR(比多长时间不重起)

抛砖引玉希望大家说说自己的看法!

本文出自 “土豆丝” 博客,请务必保留此出处http://shangwen.blog.51cto.com/245264/46047





    文章评论
 
2007-10-13 23:45:25
看来你是没有看到一句话!在OSPF的DR与BDR选举中,当已经存在DR时,即使有新的RID比DR的RID高.DR都不会转到RID高的那台上,要等现在的DR down了重新选举才会重新选RID高的为BDR!

简单的说,除非你把路由器统一配置完,然后同时关机再开,不是的话,你很难说在未存在DR的OSPF中看到书中关于DR与BDR的选举!因为你首先配置好OSPF的那台路由怎么都是DR来的!

2007-10-14 13:10:59
谢谢 adonv的解答!

2007-10-15 12:59:03
关于这个问题,我写过一篇文档。敬请查看,也许对你会有帮助
http://gairuhe.blog.51cto.com/77728/38156

2007-10-15 16:27:29

谢谢 gairuhe 提供的文章写得相当精彩。

2007-10-16 03:14:20
实在不想让它当DR/BDR 的路由器把它选举权设为0也行,呵呵

2007-10-20 15:39:22
^_^ ....

2007-12-23 20:49:39
不错 美女你除拉LINUX,CISCO也不错啊 呵呵
我喜欢 以后得向你学习啊 两门技术都比你差
我现在在一物流公司做网管 WINDOWS技术好一点
自己想向LINUX方面发展 可自己技术差 找这方面的工作 不好找啊
郁闷!!

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: