问题:假如,这个网络只有一台路由器(优先级不为0),它会选举DR/BDR吗?(嘿嘿,肯定有很多人士在学习OSPF的时候,没有想过这个问题)
反方观点:不会。因为DR/BDR选举是在和邻居进入two-way状态时才触发的,没有邻居,谈何进入这个此状态呢? 正方观点:会。在没有触发选举的过程下,路由器会等待一个超时时间(wait time),然后,先标识自已为BDR,后DR。成了DR后,BDR置为0.0.0.0字段。 |
好像这二种说法都有道理,我们通过做实验,来证明谁是黑猫还是白猫?
实验环境:
路由器(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接口下的信息
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 |
查看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 |
因为,路由器会每隔10S发送一次HELLO包,通过Wireshark这个软件抓包来看看HELLO包的字段。
所以,一台路由器是会选择DR的。
想要了解DR/BDR选举过程中的更多细节问题,可以参考Jeff写的《TCP/IP路由技术》卷一。