您的位置:首页 > 其它

OSPF:DR、BDR选举算法探究实验

2012-10-05 19:11 351 查看
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发送DD的同时也发送了Hello消息




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时,如果在本地看来,该“其它设备”具备选举资格,则将其纳入选举算法中进行计算
本文出自 “Thely” 博客,请务必保留此出处http://thely.blog.51cto.com/2695427/1013445
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: