资源描述
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 loopback 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(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 LOADING 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 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 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
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 directly 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 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,NBMA选取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 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, maximum 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
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)/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, 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 - 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, * - 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/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 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:12:34, Serial1/0
[110/65] via 192.168.2.3, 00:12:34, Serial1/1
R2的路由表显示来自环回口的路由,掩码为/32,既我们所说的“主机路由”。在实际应用中,环回口以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 - 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, * - 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.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
我们看到主机路由没有了,取而代之的是一个/24的网段。
本文出自 “盖如鹤的步徒” 博客,请务必保留此出处
OSPF实验2:DR/BDR的选取
实验级别:Professional
情况一:
我们都知道OSPF选取DR的过程是首先比较优先级,在优先级相同的情况下选择RID较高的为DR,但是我多次实验后发现在很多时候DR并非RID最高的路由器,这是什么原因呢?
在翻阅了卷一有关OSPF DR选取的介绍时,发现了这么一句话:“在一个多址网络上,最先初始化启动的两台具有DR选取资格的路由器将成为DR和BDR路由器。”这是我总结了非最高RID而成为DR的实验,发现这些路由器都是我在进行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:
conf 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 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 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的规则,新加入的路由器即使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之间,路由器等待邻居路由器的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 FastEthernet0/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
*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 Communication 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.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 hello 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.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 FastEthernet0/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
*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 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,而是有一个时间间隔让路由器来等待其他路由器,在这个时间间隔内,路由器相互监听Hello包中的DR和DBR字段中的信息,并且服从优先级原则,可以这样认为——选举是公平的。
实际情况:
在实际的网络中,即使是40秒内同时起进程的情况也少见;实际情况下是率先启用ospf进程的路由器就很有可能成为DR,第二个启动的就很有可能成为BDR,考虑到路由器故障或者重启等情况,实际的运行效果是:“活”得最久的路由器成为DR(比多长时间不重起) .
OSPF实验3:OSPF over NBMA下的五种网络类型
实验等级:Professional
实验拓扑:
实验基本配置:
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
encapsulation 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
encapsulation 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.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 area 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 ospf 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 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: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 from 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/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
Neighbor 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
展开阅读全文