一、DR和BDR选举原理
原理参考我上一篇关于OSPF路由协议的原理篇,
链接如下:OSPF路由协议原理部分
二、实验过程
2.1 实验目的
通过抓包分析OSPF路由协议DR、BDR的选举,
然后down掉DR的路由器接口,再次抓包查看DR和BDR的选举,
最后再激活原有的DR路由器的接口,抓包查看
2.2 实验环境
通过三台路由器与一台交换机相连,构成如下拓扑图
2.3 实验步骤
2.3.1 配置R1
<Huawei>sys
[Huawei]undo info-center en
[Huawei]sysn R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.0.0.3 24 ###配置接口ip地址
[R3-GigabitEthernet0/0/0]un sh
[R3-GigabitEthernet0/0/0]int loo 0
[R3-LoopBack0]ip add 3.3.3.3 32 ###配置本地环回地址
[R3]ospf 1 router-id 3.3.3.3 ###开启OSPF进程手动配置router-id
[R3-ospf-1]area 0.0.0.0 ###划为骨干区域
[R3-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255 ###此时稍后回车宣告
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
2.3.2 配R2
<Huawei>sys
[Huawei]undo info-center en
[Huawei]sysn R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 13.0.0.2 24 ###配置接口ip地址
[R2-GigabitEthernet0/0/0]un sh
[R2-GigabitEthernet0/0/0]int loo 0
[R2-LoopBack0]ip add 2.2.2.2 32 ###配置本地环回地址
[R2]ospf 1 router-id 2.2.2.2 ###开启OSPF进程手动配置router-id
[R2-ospf-1]area 0.0.0.0 ###划为骨干区域
[R2-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255 ###此时稍后回车宣告
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
2.3.3 配置R3
<Huawei>sys
[Huawei]undo info-center en
[Huawei]sysn R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.0.0.3 24 ###配置接口ip地址
[R3-GigabitEthernet0/0/0]un sh
[R3-GigabitEthernet0/0/0]int loo 0
[R3-LoopBack0]ip add 3.3.3.3 32 ###配置本地环回地址
[R3]ospf 1 router-id 3.3.3.3 ###开启OSPF进程手动配置router-id
[R3-ospf-1]area 0.0.0.0 ###划为骨干区域
[R3-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255 ###此时稍后回车宣告
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
2.4 验证测试
2.4.1 第一次抓包
此时显示DR为13.0.0.3,BDR为13.0.0.2
2.4.2 第二次抓包
在R3中进入g0/0/0口,shutdown掉这个接口,等待40秒
此时再看抓包数据
此时,DR变成了13.0.0.2,BDR变成了13.0.0.1
2.4.3 第三次抓包
再在R3中进入g0/0/0口,输入undo shutdown,激活这个接口,等待40秒
此时,DR恢复成了13.0.0.3,而BDR变成了13.0.0.1
三、总结
3.1 第一个hello包什么时候出现?会和DR有关吗?
●接口宣告之后开始发送第一个hello,里边没有DR,40秒 wait时间之后 虽然没有别的邻居,当然也不能行成2-way状态,但是DR选举结果已经在HELLO包中体现了。
由此可以得出结论DR/BDR选举是在接口宣告就启动选举等待时间wait40内进行,和2-way状态无关,2way只是衡量邻居,有没有选举资格,不能说选举是在2way中(后)选举,非常不严谨 。
●要说两台或者多台,进行选举的条件是都需要对方是2way状态才能参加选举。但不是选举的唯一条件,没有2way关系的邻居(候选人),仍然会进行选举。
3.2 选举DR和BDR的另一种情况
当然选举DR/BDR有几种情况。
还是使用如上拓扑。不同的是 R2 也做配置并宣告。
- 广播网络中,路由器R1/R2 初始配置ospf,比如R1先配置ospf 并宣告接口 (R1的route id 1.1.1.1)
R2紧接着也配置ospf并宣告接口(R2 route id 2.2.2.2)。此时R1开始发送hello包,并启动wait 40s 计时器。
并将收到的hello包 放在自己备选DR/BDR 列表中。(如果40秒内没有收到任何HELLO包,就宣布自己是DR)。 - 如果wait时间内收到就比较优先级/route id 越大的胜出。通过hello宣布选举结果。
3.3 你知道DR不抢占原则和wait时间吗?
-
这里涉及到概念第一个wait时间,这个是每个路由器宣告进网络的时候都要启动的计时器
- 目的是防止DR抢占
(ospf的DR有不抢占原则,就是当有人宣告自己是DR的时候。其他路由器默认承认) - 还有个作用就是留出时间进行选举,
尤其是初始网络这个时间可以等待收取路由器的hello来比较优先级和route id。
- 目的是防止DR抢占
-
DR可能不是优先级最高
如果某个设备优先级最高,而且加入network的时间不晚于其他设备30s(waiting timer 的40s再留出10s,达到two-way状态),就一定可以成为DR,晚于30s就不一定能成为DR了(取决于它能参加选举时,选举是否已经完成) -
也就说R1和R2优先级相同
的情况下虽然R1的route id 小 但是在wait时间之后也就是选举之后就会成为DR,然后因为不抢占原则,所以才会有有小的ID成为DR的可能。每台只要运行ospf的路由器,在广播网络中都在第一个hello 发出后在本地进行
DR 、BDR选举 其他路由器要想参与到对方选举中,只能在和这个路由形成2-way状态之后才有资格参与选举。 -
路由器在有效选举时间内做出选举结果并用hello包通告结果。网络中出现第一个通告选举结果的,
其他的路由器停止选举,承认DR选举。(DR不抢占原则)
其他路由器要想参与到对方选举中,只能在和这个路由形成2-way状态之后才有资格参与选举。
路由器在有效选举时间内做出选举结果并用hello包通告结果。网络中出现第一个通告选举结果的,
其他的路由器停止选举,承认DR选举。(DR不抢占原则)