文章目录
前言
- OSPF的邻接关系建立有七个状态,其中DR和BDR的选举在ExStart状态(准启动状态)完成。
- 那么DR和BDR的选举过程会这么单一吗?
一:OSPF邻接关系
1.1:七个状态
状态 | 描述 |
---|---|
Down状态 | 只知道自己的ID,不知道其他任何路由器 |
Init状态(初始化状态) | Down状态的端口接收到Hello信息后,自动激活init状态,此时,只能接收Hello包,不能发送Hello包 |
2-Way状态 | route系统加载完成后从Init状态进入2-Way状态。2-Way状态中既可以接收Hello包也可以发送Hello包(选举出两个最大的Router ID,但是并不会确定主从路由身份) |
ExStart状态(准启动状态) | 确定主从路由身份。即确定DR和BDR身份。 |
Exchange状态 | 交换DBD信息库,同时接收到后也会有LSACK包。 |
Loading状态 | 最繁忙状态,包的种类最多,有LSR,LSU(包含多个LSA),LSACK,形成的路由表 |
Full 状态 | 稳定状态开始转发数据包 |
二:抓包分析选举过程
2.1:环境
- eNSP软件
- 三台路由器
- 一台交换机
2.2:拓扑图
2.3:配置并抓包分析
-
配置R1
sysname R1 # ... # interface GigabitEthernet0/0/0 ip address 13.0.0.1 255.255.255.0 # ... # interface LoopBack0 ip address 1.1.1.1 255.255.255.255 # ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 13.0.0.0 0.0.0.255
-
配置R2
sysname R2 # ... # interface GigabitEthernet0/0/0 ip address 13.0.0.2 255.255.255.0 # .... # interface LoopBack0 ip address 2.2.2.2 255.255.255.255 # ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 13.0.0.0 0.0.0.255 network 2.2.2.2 0.0.0.0
-
R3用相同方法配置,不再赘述
三:DR和BDR选举的总结
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 也做配置并宣告。 -
1.广播网络中,路由器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不抢占原则)