1.探究选举过程 |
1.1实验拓扑
|
1.2实验需求 (1)按拓扑完成基本IP地址配置 (2)在共享链路上抓包,关注OSPF邻接关系建立过程中的Hello消息 (3)R1、R2、R3、R4上开启OSPF邻接关系调试 (4)依次宣告R1、R2、R3、R4的直连网络进入OSPF进程 (5)观察实验现象,并分析 |
1.3实验步骤 (1)抓包现象 初始阶段,四台路由器发送的Hello包中的DR、BDR字段都被置为0.0.0.0
R1发送的更新中,Active Neighbor为2.2.2.2、3.3.3.3、4.4.4.4,收到该更新的这三台路由器会将R1置为2WAY状态,但此时DR、BDR依旧为0.0.0.0
R1发送DD的同时也发送了Hello,表明此时已经将R4置为了Exstart状态 该Hello消息显示信息如下 此时R1选举R4接口地址既为DR,又为BDR,这是因为经过第一轮选举后,R4接口在选举BDR时胜出,选举DR时,由于没有路由器声明自己为DR,则BDR直接成为了DR导致 R2发送的Hello消息中有同样现象,R3类似,此处不再说明
R4本地选举出了DR以及BDR,现象与期望的一致,从理论上将,这是R4本地经过跳转步骤以后的结果 此后,所有路由器发送的Hello包中,本地也已判断出结果,值与R4发送的该Hello消息一致
(2)调试现象 R1 *Mar 1 00:02:00.731: OSPF: end of Wait on interface FastEthernet0/0 *Mar 1 00:02:00.731: OSPF: DR/BDR election on FastEthernet0/0 *Mar 1 00:02:00.731: OSPF: Elect BDR 4.4.4.4 *Mar 1 00:02:00.731: OSPF: Elect DR 4.4.4.4 *Mar 1 00:02:00.735: DR: 4.4.4.4 (Id) BDR: 4.4.4.4 (Id) *Mar 1 00:02:00.735: OSPF: Send DBD to 4.4.4.4 on FastEthernet0/0 seq 0x40E opt 0x52 flag 0x7 len 32 一旦确定了某台设备的接口角色,就进入了Exstart状态 该信息重复若干次之后,才选出”正确“的BDR *Mar 1 00:02:02.447: OSPF: DR/BDR election on FastEthernet0/0 *Mar 1 00:02:02.451: OSPF: Elect BDR 3.3.3.3 *Mar 1 00:02:02.451: OSPF: Elect DR 4.4.4.4 *Mar 1 00:02:02.451: DR: 4.4.4.4 (Id) BDR: 3.3.3.3 (Id) *Mar 1 00:02:02.451: OSPF: Send DBD to 3.3.3.3 on FastEthernet0/0 seq 0x1F6E opt 0x52 flag 0x7 len 32
R2、R3现象与R1完全相同
R4 *Mar 1 00:01:59.927: OSPF: Rcv DBD from 1.1.1.1 on FastEthernet0/0 seq 0x40E opt 0x52 flag 0x7 len 32 mtu 1500 state 2WAY *Mar 1 00:01:59.927: OSPF: Nbr state is 2WAY *Mar 1 00:02:00.327: OSPF: Rcv DBD from 2.2.2.2 on FastEthernet0/0 seq 0x1D69 opt 0x52 flag 0x7 len 32 mtu 1500 state 2WAY *Mar 1 00:02:00.331: OSPF: Nbr state is 2WAY *Mar 1 00:02:00.859: OSPF: Rcv DBD from 3.3.3.3 on FastEthernet0/0 seq 0x12BD opt 0x52 flag 0x7 len 32 mtu 1500 state 2WAY *Mar 1 00:02:00.863: OSPF: Nbr state is 2WAY 由于R4接口参与OSPF进程最晚,首先收到了来自邻居的DD消息,但此时与邻居依然处于2WAY状态 *Mar 1 00:02:01.571: OSPF: DR/BDR election on FastEthernet0/0 *Mar 1 00:02:01.571: OSPF: Elect BDR 4.4.4.4 *Mar 1 00:02:01.571: OSPF: Elect DR 4.4.4.4 在R4本地,同样也是经过一轮选举后,DR同时成为了BDR *Mar 1 00:02:01.571: OSPF: Elect BDR 3.3.3.3 *Mar 1 00:02:01.575: OSPF: Elect DR 4.4.4.4 在跳转过后选出了”正确“的BDR *Mar 1 00:02:01.575: DR: 4.4.4.4 (Id) BDR: 3.3.3.3 (Id) *Mar 1 00:02:01.575: OSPF: Send DBD to 1.1.1.1 on FastEthernet0/0 seq 0x1C0B opt 0x52 flag 0x7 len 32 *Mar 1 00:02:01.579: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x209C opt 0x52 flag 0x7 len 32 *Mar 1 00:02:01.579: OSPF: Send DBD to 3.3.3.3 on FastEthernet0/0 seq 0x17D opt 0x52 flag 0x7 len 32 |
2.NMBA网络接口角色 |
2.1实验拓扑
|
2.2实验需求 (1)按拓扑完成基本配置 (2)全网运行OSPF,直连接口封装类型指定为Frame-Relay并宣告进OSPF进程 (3)R1上OSPF进程中指定Neighbor为R2,一段时间后,观察OSPF邻接关系以及接口角色 (4)R3上OSPF进程中指定Neighbor为R1、R2,一段时间后,观察OSPF邻接关系以及接口角色 |
2.3实验步骤 (1)完成需求(3) R1(config-router)#neighbor 31.31.123.2
R1#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface N/A 0 ATTEMPT/DROTHER 00:01:51 31.31.123.2 Serial0/0
R1#show ip ospf inter s0/0 | in State Transmit Delay is 1 sec, State WAITING, Priority 1
R1#show ip ospf inter s0/0 | in State Transmit Delay is 1 sec, State DR, Priority 1 经过几乎一个DeadInterval之后,R1发送Hello,邻接关系建立,接口状态直接改为DR
(2)完成需求(4) R3(config-router)#neighbor 31.31.123.1 R3(config-router)#neighbor 31.31.123.2
R3发送的第一个Hello消息中,将其DR置为自己的接口IP地址
R3#show ip ospf inter s0/0 | in State Transmit Delay is 1 sec, State DR, Priority 1 经过竞选机制之后,接口角色变为DR |
2.4实验结论 NBMA网络中,由于不指定Neighbor时,本地接口不会发送Hello消息,过了Wait Timer之后,接口状态自动变为DR 激活Neighbor后,本地发送的Hello中DR字段此时不为0,接收到Hello消息的设备开始重新竞选DR,此时,路由器接口角色的稳定性就被破坏了 |
3.声明邻居为DR或BDR |
3.1实验拓扑 |
3.2实验需求 本实验期望模拟如下情况: 刚加入OSPF网络的设备,接收到Hello消息,其中声明其它设备为DR或BDR,本地是否信任;抑或是必须声明自己为DR或BDR时才会参与选举算法 (1)按拓扑完成基本IP地址配置 (2)开启OSPF进程,开启邻接关系调试,修改三台设备的HelloInterval为20s,DeadInterval为500s (3)当R3与R1、R2进入2WAY状态后,R1、R2上通过编写扩展ACL,阻止R3的Hello消息;R3上通过编写扩展ACL,阻止来自R1、R2的消息 (4)当R1与R2建立邻接关系时,在R2上配置Default-interface,阻止R2发送Hello消息,同时去除加在R1、R3接口上的扩展ACL (5)观察实验现象 |
3.3实验步骤 (1)修改Hello/Dead Interval R1(config-if)#ip ospf hello-interval 20 R1(config-if)#ip ospf dead-interval 500 修改Hello时间是为了防止在操作期间发送过多Hello消息,进而影响实验结论
(2)编写扩展ACL R1(config)#access-list 100 deny ip 31.31.123.3 0.0.0.0 any R1(config)#access-list 100 permit ip any any
R2(config)#access-list 100 deny ip 31.31.123.3 0.0.0.0 any R2(config)#access-list 100 permit ip any any
R3(config)#access-list 100 deny ip 31.31.123.2 0.0.0.0 any R3(config)#access-list 100 deny ip 31.31.123.1 0.0.0.0 any R3(config)#access-list 100 permit ip any any
(3)完成需求(4) R2(config-router)#passive-interface default
R1(config-if)#no ip access-group 100 in
R3(config-if)#no ip access-group 100 in
(4)实验现象 R2从与R3形成2WAY关系后,发送的Hello消息就被R3过滤,此后又激活被动接口,相当于R3一直与R2卡在2WAY状态而没有接收到任何来自R2的消息
*Mar 1 00:16:47.391: OSPF: DR/BDR election on FastEthernet0/0 *Mar 1 00:16:47.391: OSPF: Elect BDR 2.2.2.2 *Mar 1 00:16:47.391: OSPF: Elect DR 3.3.3.3 *Mar 1 00:16:47.395: DR: 3.3.3.3 (Id) BDR: 2.2.2.2 (Id) R3本地接收到来自R1的消息时,R1将声明R2为DR,自己为BDR,R3由于与R2已经形成了2WAY关系,此时实际上是会将与R2相关信息纳入选举算法 |
3.4实验结论 当接收到的Hello消息中,声明其它设备为DR或BDR时,如果在本地看来,该“其它设备”具备选举资格,则将其纳入选举算法中进行计算 |