1、 OSPF综合实验大全 OSPF实验1:基本的OSPF配置 实验级别:Assistant 实验拓扑: 实验步骤: 1.首先在3台路由器上配置物理接口,并且使用ping命令确保物理链路的畅通。 2.在路由器上配置loopback接口: R1(config)#int loopback 0 R1(config-if)#ip add 1.1.1.1 255.255.255.0 R2(config)#int loopback 0 R2(config-if)#ip add 2.2.2.2 255.255.255.0 R3(config)#int l
2、oopback 0 R3(config-if)#ip add 3.3.3.3 255.255.255.0 路由器的RID是路由器接口的最高的IP地址,当有环回口存在是,路由器将使用环回口的最高IP地址作为起RID,从而保证RID的稳定。 3. 在3台路由器上分别启动ospf进程,并且宣告直连接口的网络。 R1(config)#router ospf 10 R1(config-router)#network 192.168.1.0 0.0.0.255 area 0 R1(config-router)#network 1.1.1.0 0.0.0.255 area 0 R1
3、config-router)#network 192.168.3.0.0.0.255 area 0 ospf的进程号只有本地意义,既在不同路由器上的进程号可以不相同。但是为了日后维护的方便,一般启用相同的进程号。 ospf使用反向掩码。Area 0表示骨干区域,在设计ospf网络时,所有的非骨干区域都需要和骨干区域直连! R2,R3的配置和R1类似,这里省略。不同的是我们在R2和R3上不宣告各自的环回口。 *Aug 13 17:58:51.411: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on Serial1/0 from LO
4、ADING to FULL, Loading Done 配置结束后,我们可以看到邻居关系已经到达FULL状态。 4. 在R1上查看路由表,可以看到以下信息: R1#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA e
5、xternal type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Ga
6、teway of last resort is not set 1.0.0.0/24 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Loopback0 C 192.168.1.0/24 is directly connected, Serial1/0 O 192.168.2.0/24 [110/65] via 192.168.1.2, 00:03:42, Serial1/0 C 192.168.3.0/24 is directl
7、y connected, FastEthernet0/ 我们看到R1学到了192.168.2.0/24这个网段的路由。后面的数字[110/65],分别表示OSPF的管理距离(AD)和路由的Metric值 OSPF的Metric值是由cost值逐跳累加的。Cost=100Mb/带宽值。 5. 在R1上show ip ospf neighbor 、show ip ospf interface R1#show ip ospf neighbor Neighbor ID Pri State Dead Time Address
8、 Interface 3.3.3.3 1 FULL/BDR 00:00:34 192.168.3.3 FastEthernet0/0 2.2.2.2 0 FULL/ - 00:00:32 192.168.1.2 Serial1/0 我们看到R1和R3选取了DR和BDR,而R1和R2没有选取。 在ospf的五种网络类型中。Point-to-Point,Point-to-Multipoint(广播与非广播)这三种网络类型不选取DR与BDR; Broadcast,NB
9、MA选取DR与BDR。 R1#show ip ospf interface FastEthernet0/0 is up, line protocol is up Internet Address 192.168.3.1/24, Area 0 Process ID 10, 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
10、192.168.3.1 Backup Designated router (ID) 3.3.3.3, Interface address 192.168.3.3 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:03 Index 3/3, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, m
11、aximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 3.3.3.3 (Backup Designated Router) Suppress hello for 0 neighbor(s) Serial1/0 is up, line protocol is up Internet Address 192.168.1.1/24, Area 0
12、 Process ID 10, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 64 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:02 Index 1/1, flood queue length 0 Next 0x0(0)/
13、0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 4 msec, maximum is 4 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 2.2.2.2 Suppress hello for 0 neighbor(s) Loopback0 is up, line protocol is up Internet Address 1.1.1.1/24,
14、Area 0 Process ID 10, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub Host 在这里我们看到环回口的网络网络类型是Loopback,这是一种特殊的网络类型,只针对环回口存在。我们到R2上看看路由表: R2#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIG
15、RP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate d
16、efault, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/65] via 192.168.1.1, 00:12:34, Serial1/0 2.0.0.0/24 is subnetted, 1 subnets C 2.2.2.0 is direct
17、ly connected, Loopback0 C 192.168.1.0/24 is directly connected, Serial1/0 C 192.168.2.0/24 is directly connected, Serial1/1 O 192.168.3.0/24 [110/65] via 192.168.1.1, 00:12:34, Serial1/0 [110/65] via 192.168.2.3, 00:12:34, Serial1/1 R2的路由表显示来自环回口的路由,掩码为/32,既我们所说的
18、主机路由”。在实际应用中,环回口以32位的居多,用作ospf的管理接口。但是如果你想让环回口模拟一个网段,我们可以通过以下配置来消除。 R1(config)#int loopback 0 R1(config-if)#ip ospf network point-to-point 环回口只能配置成point-to-point这种类型,不可以配置成其它的类型。 回到R2查看路由表: R2#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D -
19、 EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area,
20、 * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/24 is subnetted, 1 subnets O 1.1.1.0 [110/65] via 192.168.1.1, 00:00:24, Serial1/0 2.0.0.0/24 is subnetted, 1 subnets C 2
21、2.2.0 is directly connected, Loopback0 C 192.168.1.0/24 is directly connected, Serial1/0 C 192.168.2.0/24 is directly connected, Serial1/1 O 192.168.3.0/24 [110/65] via 192.168.1.1, 00:00:24, Serial1/0 [110/65] via 192.168.2.3, 00:00:24, Serial1/1 我们看到主机路由没有了,取而
22、代之的是一个/24的网段。 本文出自 “盖如鹤的步徒” 博客,请务必保留此出处 OSPF实验2:DR/BDR的选取 实验级别:Professional 情况一: 我们都知道OSPF选取DR的过程是首先比较优先级,在优先级相同的情况下选择RID较高的为DR,但是我多次实验后发现在很多时候DR并非RID最高的路由器,这是什么原因呢? 在翻阅了卷一有关OSPF DR选取的介绍时,发现了这么一句话:“在一个多址网络上,最先初始化启动的两台具有DR选取资格的路由器将成为DR和BDR路由器。”这是我总结了非最高RID而成为DR的实验,发现这些路由器都是我在进
23、行OSPF配置的时候首先启动ospf的路由器,那会不会是因为这些路由器首先启动了OSPF,然后把自己设置为DR导致其他路由器启动OSPF后就不再进行DR的选取了呢?于是我做了下面的这个实验。 实验的topo很简单,我就不画了,就是两台路由器通过fa0/0口相连接。 R1: conf t ho R1 int lo0 ip add 1.1.1.1 255.255.255.0 int fa0/0 ip add 172.1.1.1 255.255.255.0 no sh router ospf 10 net 172.1.1.1 0.0.0.0 a 0 R2: c
24、onf t ho R2 int lo0 ip add 2.2.2.2 255.255.255.0 int fa0/0 ip add 172.1.1.2 255.255.255.0 no sh R1启动ospf进程后,我们在R2上暂时先不开启ospf,在R1上发现了以下信息: R1#sho ip ospf int FastEthernet0/0 is up, line protocol is up Internet Address 172.1.1.1/24, Area 0 Process ID 10, Router ID 1.1.1.1, Network
25、Type BROADCAST, Cost: 1 Transmit Delay is 1 sec, State DR, Priority 1 Designated Router (ID) 1.1.1.1, Interface address 172.1.1.1 No backup designated router on this network Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in
26、 00:00:01 Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 0, maximum is 0 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 0, Adjacent neighbor count is 0 Suppress hello for 0 neighbor(s) 我们看到R1已经把自己设定为DR了,按照OSPF的规则,新加入的路由器即使
27、RID比DR高,也不会替换DR。这就说明了为什么在有些时候DR并非RID最高的路由器。 当然这个实验也顺便验证了ospf中DR选取结束后,除非DR路由器出现故障,否则就是有更高优先级或者RID的路由器进入OSPF进程,也是无法改变DR的。既DR是不可以抢夺的! 情况二(本实验参照了ITAA实验室Netfish的实验): ospf中有一个Wait Timer计时器,在这个计时器所限定的时间内起来的OSPF可以视为同时起机。 TCP/IP卷1第292页对于这个时间间隔是这样定义的: Wait Timer:在开始选举DR和BDR之间,路由器等
28、待邻居路由器的Hello数据包通告DR和BDR的时长。长度就是RouterDeadInterval的时间。 本实验拓扑与情况一相同,不同的地方在于当我们在R1上启动OSPF后,迅速(一定要迅速,非常迅速!40s之内)在R2上也启动ospf,通过debug信息可以看到以下情况: R1#debug ip ospf adj OSPF adjacency events debugging is on R1#debug ip ospf ev OSPF events debugging is on *Aug 14 00:56:19.047: OSPF: Interface Fa
29、stEthernet0/0 going Up *Aug 14 00:56:19.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1 *Aug 14 00:56:19.551: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000001 *Aug 14 00:56:19.555: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2
30、Aug 14 00:56:19.555: OSPF: End of hello processing R1(config-router)# *Aug 14 00:56:29.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1 *Aug 14 00:56:29.451: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2 *Aug 14 00:56:29.455: OSPF: 2 Way Communica
31、tion to 2.2.2.2 on FastEthernet0/0, state 2WAY *Aug 14 00:56:29.455: OSPF: End of hello processing R1(config-router)# *Aug 14 00:56:39.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1 *Aug 14 00:56:39.427: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.
32、1.2 *Aug 14 00:56:39.427: OSPF: End of hello processing R1(config-router)# *Aug 14 00:56:49.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1 *Aug 14 00:56:49.447: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2 *Aug 14 00:56:49.447: OSPF: End of hel
33、lo processing R1(config-router)# *Aug 14 00:56:59.051: OSPF: end of Wait on interface FastEthernet0/0 *Aug 14 00:56:59.051: OSPF: DR/BDR election on FastEthernet0/0 *Aug 14 00:56:59.051: OSPF: Elect BDR 2.2.2.2 *Aug 14 00:56:59.055: OSPF: Elect DR 2.2.2.2 *Aug 14 00:56:59.055: DR: 2.2.
34、2.2 (Id) BDR: 2.2.2.2 (Id) *Aug 14 00:56:59.055: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x826 opt 0x52 flag 0x7 len 32 *Aug 14 00:56:59.059: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1 *Aug 14 00:56:59.459: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthern
35、et0/0 172.1.1.2 *Aug 14 00:56:59.463: OSPF: Neighbor change Event on interface FastEthernet0/0 *Aug 14 00:56:59.463: OSPF: DR/BDR election on FastEthernet0/0 *Aug 14 00:56:59.463: OSPF: Elect BDR 1.1.1.1 *Aug 14 00:56:59.467: OSPF: Elect DR 2.2.2.2 *Aug 14 00:56:59.467: OSPF: Elect BDR 1.1.1.1
36、 *Aug 14 00:56:59.467: OSPF: Elect DR 2.2.2.2 *Aug 14 00:56:59.471: DR: 2.2.2.2 (Id) BDR: 1.1.1.1 (Id) 这个时候我们发现两个路由器进行了DR/BDR的选取,并且结论和书上介绍的完全一致。 从Debug信息的时间上来看,从启动OSPF进程到开始选举DR和DBR的时间间隔是40秒,在这个时间段内,无论R1还是R2并没有选举DR和DBR。 在RFC2328中对这个时间间隔的定义如下: Wait Timer A single shot
37、timer that causes the interface to exit the Waiting state, and as a consequence select a Designated Router on the network. The length of the timer is RouterDeadInterval seconds. 因为在广播链路中的RouterDeadInterval是40秒,所以我们看到的这个时间间隔为40秒。 结论: 并不是先启动OSPF进程的路由器就是DR,而是有
38、一个时间间隔让路由器来等待其他路由器,在这个时间间隔内,路由器相互监听Hello包中的DR和DBR字段中的信息,并且服从优先级原则,可以这样认为——选举是公平的。 实际情况: 在实际的网络中,即使是40秒内同时起进程的情况也少见;实际情况下是率先启用ospf进程的路由器就很有可能成为DR,第二个启动的就很有可能成为BDR,考虑到路由器故障或者重启等情况,实际的运行效果是:“活”得最久的路由器成为DR(比多长时间不重起) . OSPF实验3:OSPF over NBMA下的五种网络类型 实验等级:Professional 实验拓扑: 实验
39、基本配置: 1. 首先将R1配置成为帧中继交换机: frame-relay switching ! interface Serial1/0 no ip address encapsulation frame-relay clock rate 64000 frame-relay lmi-type ansi frame-relay intf-type dce frame-relay route 101 interface Serial1/1 102 ! interface Serial1/1 no ip address encapsulati
40、on frame-relay clock rate 64000 frame-relay lmi-type ansi frame-relay intf-type dce frame-relay route 102 interface Serial1/0 101 2. R2和R3的基本配置: R2: interface Loopback0 ip address 2.2.2.2 255.255.255.0 ! interface Serial1/0 ip address 12.1.1.2 255.255.255.0 en
41、capsulation frame-relay serial restart-delay 0 frame-relay map ip 12.1.1.3 101 broadcast no frame-relay inverse-arp ! router ospf 10 router-id 2.2.2.2 log-adjacency-changes network 2.2.2.0 0.0.0.255 area 0 network 12.1.1.0 0.0.0.255 area 0 R3: interface Loopback0 ip address 3.
42、3.3.3 255.255.255.0 ! interface Serial1/1 ip address 12.1.1.3 255.255.255.0 encapsulation frame-relay serial restart-delay 0 frame-relay map ip 12.1.1.2 102 broadcast no frame-relay inverse-arp ! router ospf 10 router-id 3.3.3.3 log-adjacency-changes network 3.3.3.0 0.0.0.255 are
43、a 0 network 12.1.1.0 0.0.0.255 area 0 Type1----Non_Broadcast(默认) 我们在R2上show ip ospf neighbor,发现没有邻居。说明在这种情况下邻居需要手动配置!配置如下: R2: R2(config)#router ospf 10 R2(config-router)#neighbor 12.1.1.3 R3: R3(config)#router ospf 10 R3(config-router)#neighbor 12.1.1.2 此时在R2上查看邻居: R2#sho ip os
44、pf nei Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 1 FULL/DR 00:01:46 12.1.1.3 Serial1/0 发现邻居已经形成并且有DR与BDR的选举! 在R2上查看接口 R2#show ip ospf interface Serial1/0 is up, line protocol is up Internet Address 12.1.1.2/24, Area
45、0 Process ID 10, Router ID 2.2.2.2, Network Type NON_BROADCAST, Cost: 64 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 3.3.3.3, Interface address 12.1.1.3 Backup Designated router (ID) 2.2.2.2, Interface address 12.1.1.2 Flush timer for old DR LSA due in 00:01:
46、40 Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 在这种网络类型中,hello的间隔是30s。 打开debug信息,我们可以看到在这种网络类型中,OSPF的数据包是单播传送的。 R2# *Aug 14 14:52:52.819: OSPF: Send hello to 12.1.1.3 area 0 on Serial1/0 from 12.1.1.2 R2# *Aug 14 14:52:57.087: OSPF: Rcv hello from 3.3.3.3 area 0 fr
47、om Serial1/0 12.1.1.3 *Aug 14 14:52:57.091: OSPF: End of hello processing Type2---- Broadcast 首先去掉刚才手动配置的邻居关系: R2(config)#router ospf 10 R2(config-router)#no neighbor 12.1.1.3 R3(config)#router ospf 10 R3(config-router)#no neighbor 12.1.1.2 将R2和R3接口的网络类型改成broadcast R2(config-router)#int s1
48、/0 R2(config-if)#ip ospf network broadcast R3(config-router)#int s1/1 R3(config-if)#ip ospf network broadcast 一会我们就看到了如下信息 R3# *Aug 14 14:59:52.823: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on Serial1/1 from LOADING to FULL, Loading Done 这说明了在这种网络类型下是不需要手动配置邻居关系的! R2#show ip ospf nei Neig
49、hbor ID Pri State Dead Time Address Interface 3.3.3.3 1 FULL/DR 00:00:39 12.1.1.3 Serial1/0 有DR与BDR的选举。 R2#sho ip ospf int Serial1/0 is up, line protocol is up Internet Address 12.1.1.2/24, Area 0 Process ID 10, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 64 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 3.3.3.3, Interface address 12.1.1.3 Backup Designated router (ID) 2.2.2.2, Interface address 12.1.1.2 Timer intervals configured, Hello 10, Dead 40






