1.探究选举过程

1.1实验拓扑

 

1.2实验需求

1)按拓扑完成基本IP地址配置

2)在共享链路上抓包,关注OSPF邻接关系建立过程中的Hello消息

3R1R2R3R4上开启OSPF邻接关系调试

4)依次宣告R1R2R3R4的直连网络进入OSPF进程

5)观察实验现象,并分析

1.3实验步骤

1抓包现象

初始阶段,四台路由器发送的Hello包中的DRBDR字段都被置为0.0.0.0

 

R1发送的更新中,Active Neighbor2.2.2.23.3.3.34.4.4.4,收到该更新的这三台路由器会将R1置为2WAY状态,但此时DRBDR依旧为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

 

R2R3现象与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进程

3R1OSPF进程中指定NeighborR2,一段时间后,观察OSPF邻接关系以及接口角色

4R3OSPF进程中指定NeighborR1R2,一段时间后,观察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.声明邻居为DRBDR

3.1实验拓扑

3.2实验需求

本实验期望模拟如下情况:

刚加入OSPF网络的设备,接收到Hello消息,其中声明其它设备为DRBDR,本地是否信任;抑或是必须声明自己为DRBDR时才会参与选举算法

1)按拓扑完成基本IP地址配置

2)开启OSPF进程,开启邻接关系调试,修改三台设备的HelloInterval20sDeadInterval500s

3)当R3R1R2进入2WAY状态后,R1R2上通过编写扩展ACL,阻止R3Hello消息;R3上通过编写扩展ACL,阻止来自R1R2的消息

4)当R1R2建立邻接关系时,在R2上配置Default-interface,阻止R2发送Hello消息,同时去除加在R1R3接口上的扩展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将声明R2DR,自己为BDRR3由于与R2已经形成了2WAY关系,此时实际上是会将与R2相关信息纳入选举算法

3.4实验结论

当接收到的Hello消息中,声明其它设备为DRBDR时,如果在本地看来,该“其它设备”具备选举资格,则将其纳入选举算法中进行计算