在广播型多路访问链路上,所有在接口下启用了OSPF进程的路由器,在进入Two-Way状态后开始触发选举过程。这个状态下,这台路由器都检查每个邻居路由器发送过来的HELLO数据包的优先级(优先级不参与选举)、DR和BDR字段。如果邻居路由器没有相关DR和BDR字段,那么就等待40S的时间,才开始选举DR/BDR,这也是保证选举的公平性。
问题:假如,这个网络只有一台路由器(优先级不为 0),它会选举 DR/BDR吗?(嘿嘿,肯定有很多人士在学习OSPF的时候,没有想过这个问题)
好像这二种说法都有道理,我们通过做实验,来证明谁是黑猫还是白猫?
所以,一台路由器是会选择DR的。
想要了解DR/BDR选举过程中的更多细节问题,可以参考Jeff写的《TCP/IP路由技术》卷一。
问题:假如,这个网络只有一台路由器(优先级不为 0),它会选举 DR/BDR吗?(嘿嘿,肯定有很多人士在学习OSPF的时候,没有想过这个问题)
反方观点:不会。因为DR/BDR选举是在和邻居进入two-way状态时才触发的,没有邻居,谈何进入这个此状态呢?
正方观点:会。在没有触发选举的过程下,路由器会等待一个超时时间(wait time),然后,先标识自已为BDR,后DR。成了DR后,BDR置为0.0.0.0字段。
正方观点:会。在没有触发选举的过程下,路由器会等待一个超时时间(wait time),然后,先标识自已为BDR,后DR。成了DR后,BDR置为0.0.0.0字段。
好像这二种说法都有道理,我们通过做实验,来证明谁是黑猫还是白猫?
实验环境:
路由器(R1)的F0/0桥接到本地电脑上的环回口上(我是用 Dynamips做的,好用抓包软件)
查看OSPF接口下的信息
查看OSPF链路状态数据库
因为,路由器会每隔10S发送一次HELLO包,通过Wireshark这个软件抓包来看看HELLO包的字段。
路由器(R1)的F0/0桥接到本地电脑上的环回口上(我是用 Dynamips做的,好用抓包软件)
R1#
debug ip ospf adj //开启邻接DEBUG调试信息
OSPF adjacency events debugging is on
R1#conf t
R1(config)# int f0/0
R1(config-if)# ip add 202.101.1.1 255.255.255.0
R1(config-if)# no shut
R1(config-if)#
R1(config-if)# router os 110
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 202.101.1.1 0.0.0.0 ar 0
R1(config-router)#
*Mar 1 00:04:29.983: OSPF: Interface FastEthernet0/0 going Up
*Mar 1 00:04:30.487: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000001
Rack02-R1(config-router)#
*Mar 1 00:05:09.987: OSPF: end of Wait on interface FastEthernet0/0 //等待 40S的超时时间
*Mar 1 00:05:09.987: OSPF: DR/BDR election on FastEthernet0/0
*Mar 1 00:05:09.987: OSPF: Elect BDR 1.1.1.1 //先 BDR
*Mar 1 00:05:09.987: OSPF: Elect DR 1.1.1.1 //后 BDR
*Mar 1 00:05:09.987: OSPF: Elect BDR 0.0.0.0
*Mar 1 00:05:09.991: OSPF: Elect DR 1.1.1.1
*Mar 1 00:05:09.991: DR: 1.1.1.1 (Id) BDR: none
*Mar 1 00:05:10.491: OSPF: No full nbrs to build Net Lsa for interface FastEthernet0/0
OSPF adjacency events debugging is on
R1#conf t
R1(config)# int f0/0
R1(config-if)# ip add 202.101.1.1 255.255.255.0
R1(config-if)# no shut
R1(config-if)#
R1(config-if)# router os 110
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 202.101.1.1 0.0.0.0 ar 0
R1(config-router)#
*Mar 1 00:04:29.983: OSPF: Interface FastEthernet0/0 going Up
*Mar 1 00:04:30.487: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000001
Rack02-R1(config-router)#
*Mar 1 00:05:09.987: OSPF: end of Wait on interface FastEthernet0/0 //等待 40S的超时时间
*Mar 1 00:05:09.987: OSPF: DR/BDR election on FastEthernet0/0
*Mar 1 00:05:09.987: OSPF: Elect BDR 1.1.1.1 //先 BDR
*Mar 1 00:05:09.987: OSPF: Elect DR 1.1.1.1 //后 BDR
*Mar 1 00:05:09.987: OSPF: Elect BDR 0.0.0.0
*Mar 1 00:05:09.991: OSPF: Elect DR 1.1.1.1
*Mar 1 00:05:09.991: DR: 1.1.1.1 (Id) BDR: none
*Mar 1 00:05:10.491: OSPF: No full nbrs to build Net Lsa for interface FastEthernet0/0
查看OSPF接口下的信息
R1#sh ip ospf int f0/0
FastEthernet0/0 is up, line protocol is up
Internet Address 202.101.1.1/24, Area 0
Process ID 110, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 1.1.1.1, Interface address 202.101.1.1
No backup designated router on this network
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
FastEthernet0/0 is up, line protocol is up
Internet Address 202.101.1.1/24, Area 0
Process ID 110, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 1.1.1.1, Interface address 202.101.1.1
No backup designated router on this network
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
查看OSPF链路状态数据库
R1#sh ip os data
OSPF Router with ID (1.1.1.1) (Process ID 110)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 177 0x80000001 0x006E8A 1
OSPF Router with ID (1.1.1.1) (Process ID 110)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 177 0x80000001 0x006E8A 1
因为,路由器会每隔10S发送一次HELLO包,通过Wireshark这个软件抓包来看看HELLO包的字段。
想要了解DR/BDR选举过程中的更多细节问题,可以参考Jeff写的《TCP/IP路由技术》卷一。
转载于:https://blog.51cto.com/445053869/102344