1、OSPF 路由协议实验设计报告20014010-02 陈果设计目标设计一个关于 OSPF路由协议的实验,要求采用如下的拓扑:单区域AED C BS0/1 192.168.64.1/30S0/0 192.168.64.2/30Fa0/0192.168.72.1/30Fa0/0 192.168.1.3/24Fa0/0 192.168.1.2/24192.168.224.2/30S0/0S0/0192.168.224.1/30S0/1192.168.240.1/30192.168.240.2/30S0/0Fa0/0192.168.248.1/24 Workstation192.168.248.2/2
2、4Workstation192.168.72.2/30多区域AED C BS0/1 192.168.64.1/30S0/0 192.168.64.2/30Fa0/0192.168.72.1/30Fa0/0 192.168.1.3/24Fa0/0 192.168.1.2/24192.168.224.2/30S0/0S0/0192.168.224.1/30S0/1192.168.240.1/30192.168.240.2/30S0/0Fa0/0192.168.248.1/24 Workstation192.168.248.2/24Workstation192.168.72.2/30Area 0 A
3、rea 1Area 2设计要求1. 设计实验指导书,要求包括:实验目的、预备知识、实验环境、实验原理、实验方法、实验步骤、思考题。2. 设计实验记录的内容和格式。3. 根据指导书中设计的实验方法和步骤完成实验,记录实验数据,并回答指导书中设计的思考题。4. 分析实验数据,解释实验现象,总结实验结果。5. 完成设计报告。设计方法1. 以小组为单位进行课程设计。2. 小组成员共同设计一份实验指导书,协同完成本小组的实验内容。3. 小组成员独立完成课程设计报告。设计安排设计时间为两周,具体安排如下:第一周设计并完成实验指导书,收集实验所需的路由器配置命令周一:了解设计内容、要求和环境,选举组长。周二
4、:搜集相关材料,讨论、分析实验原理、方法和步骤。周三:完成实验指导书,分析实验所需环境、设备配置内容。周四:与指导老师讨论和修改实验指导书、实验环境和实验设备的配置内容。周五:完成实验指导书,完成实验准备工作。第二周实现并验证所设计的实验,完成设计报告,进行答辩周一周三:在指导老师和组长的组织下完成实验内容,记录实验数据和实验现象。周四:分析设计过程和实验过程,完成并提交设计报告。周五:答辩。设计过程确定目标实验环境是一个相对简单的小规模网络,且网络的拓扑比较简单(实际上就是线型拓扑) ,权衡各方面的因素,我们确定了三条实验目的:1、基本的 OSPF配置;2、分别在单区域与多区域中观察 LSA
5、的扩散过程;3、观察 OSPF是如何应对链路状态发生改变的情况的。另外有一个可选的实验目的,即截获实际的OSPF报文并对其进行解码。后来的实验证明,在现有的实验条件下是可以完成以上实验目的的。配置过程实验环境中有 5台 CISCO 2600路由器,运行的操作系统是 IOS 12.1。在配置过程中我们曾经遇到了以下几个问题:1、超级终端的速率设置不当,导致输出乱码。解决方法是指定速率为9600 bps。另外,通过超级终端的捕获功能将输出导入到文本文件中,非常有利于实验数据的采集与分析。2、对 IOS的模式不是很熟悉,因而常常出现某些特定命令无法执行的情况。3、以前保存在路由器中的配置文件没有清除
6、,因而干扰了本次实验的配置。解决方法是在特权模式下输入:Router#erase然后重新启动路由器:Router#reload4、在配置路由器串口的过程中忘记了指定时钟频率,导致串口的链路层协议不能启用。解决方法是在串口的 DCE端指定时钟频率:Router(config-if)#clockrate 720005、没有指定 RID,即没有创建 Loopback接口。结果导致了在此后的实验过程中,如果某个接口的 IP地址恰恰被选择成为 RID,当我们手工将其shutdown之后,就会导致路由器的 RID改变,从而引起链路状态数据库中的信息标识发生混乱。解决办法是为每台路由器创建 Loopback
7、接口。在我们的实验中,A、B、C、D、E 的 Loopback地址分别是1.1.1.1、1.1.1.2、1.1.1.3、1.1.1.4、1.1.1.5。另外,对于 OSPF数据包的截取,因为无法在串口上进行侦听,我们选择了A与 C之间的以太网线路。将采用交叉双绞线连接更换成采用集线器连接,这样就可以通过 PC的以太网卡来捕获数据。配置路由器 E所用到的命令如下:接口标识:Fa0/0 接口类型:以太网Router(config)#interface fastethernet 0/0Router(config-if)#ip address 192.168.248.1 255.255.255.0Ro
8、uter(config-if)#no shutdown观察此接口状态的命令:Routershow interface fastethernet 0/0显示结果表明此接口已经启用:FastEthernet0/0 is up, line protocol is up Internet address is 192.168.248.1/24接口标识:S0/0 接口类型:串口Router(config)#interface serial 0/0 Router(config-if)#ip address 192.168.240.2 255.255.255.252Router(config-if)#clo
9、ckrate 72000Router(config-if)#no shutdown观察此接口状态的命令:Router show interface serial 0/0显示结果表明此接口已经启用:Serial0/0 is up, line protocol is up Internet address is 192.168.240.2/30配置 Loopback接口:Router(config)#interface loopback 0 Router(config-if)#ip address 1.1.1.5 255.255.255.0单区域测试在实验中,我们采用 debug命令来观察各路由器
10、之间的信息交互过程。我们发现 Router#debug ip ospf adj命令比 Router#debug ip ospf events命令更有效,因为它能提供更详细的信息。但是,debug 命令会持续不断的刷屏,干扰正常的操作过程(可以通过 und all来结束 debug进程) ,而实际上,LSA的传播过程可以通过链路状态数据库和路由表来观察,因而我们没有将 debug命令写入实验指导书中。打开 debug ip ospf adj 命令后,可以观察出两台路由器从发现邻居到建立邻接关系的过程。以路由器 E为例:打开 debug命令:Router#debug ip ospf adjOSPF
11、 adjacency events debugging is on启动 ospf进程:Router(config)#router ospf 1配置各个网络接口所在的区域(单一区域):Router(config-router)#network 192.168.248.1 0.0.0.255 area 0Router(config-router)#network 192.168.240.2 0.0.0.3 area 0以太网接口所产生的信息:00:29:52: OSPF: Interface FastEthernet0/0 going Up00:29:52: OSPF: Build router
12、LSA for area 0, router ID 1.1.1.5, seq 0x8000000100:30:32: OSPF: end of Wait on interface FastEthernet0/000:30:32: OSPF: DR/BDR election on FastEthernet0/0 00:30:32: OSPF: Elect BDR 1.1.1.500:30:32: OSPF: Elect DR 1.1.1.500:30:32: OSPF: Elect BDR 0.0.0.000:30:32: OSPF: Elect DR 1.1.1.500:30:32: DR:
13、1.1.1.5 (Id) BDR: none 00:30:32: OSPF: Build network LSA for FastEthernet0/0, router ID 192.168.248.100:30:32: OSPF: No full nbrs to build Net Lsa for interface FastEthernet0/0以上信息反映了在以太网接口产生 LSA,选举指定路由器和备份路由器的过程。由于路由器 E所在的以太网只有一台路由器(它本身) ,因而其结果就是 DR和BDR都为 1.1.1.5。串行接口所产生的信息:00:31:06: OSPF: Interfac
14、e Serial0/0 going Up00:31:07: OSPF: Build router LSA for area 0, router ID 1.1.1.5, seq 0x8000000200:31:47: OSPF: Rcv hello from 1.1.1.4 area 0 from Serial0/0 192.168.240.100:31:47: OSPF: End of hello processing00:31:56: %SYS-5-CONFIG_I: Configured from console by console00:31:56: OSPF: Rcv DBD from
15、 1.1.1.4 on Serial0/0 seq 0x1DCF opt 0x2 flag 0x7 len 32 mtu 1500 state INIT00:31:56: OSPF: 2 Way Communication to 1.1.1.4 on Serial0/0, state 2WAY00:31:56: OSPF: Send DBD to 1.1.1.4 on Serial0/0 seq 0xE5E opt 0x2 flag 0x7 len 3200:31:56: OSPF: First DBD and we are not SLAVE00:31:56: OSPF: Rcv DBD f
16、rom 1.1.1.4 on Serial0/0 seq 0xE5E opt 0x2 flag 0x2 len 52 mtu 1500 state EXSTART00:31:56: OSPF: NdBR Negotiation Done. We are the MASTER00:31:56: OSPF: Send DBD to 1.1.1.4 on Serial0/0 seq 0xE5F opt 0x2 flag0x3 len 5200:31:56: OSPF: Database request to 1.1.1.4 00:31:56: OSPF: sent LS REQ packet to
17、1.1.1.4, length 1200:31:56: OSPF: Rcv DBD from 1.1.1.4 on Serial0/0 seq 0xE5F opt 0x2 flag 0x0 len 32 mtu 1500 state EXCHANGE00:31:56: OSPF: Send DBD to 1.1.1.4 on Serial0/0 seq 0xE60 opt 0x2 flag 0x1 len 3200:31:56: OSPF: Rcv DBD from 1.1.1.4 on Serial0/0 seq 0xE60 opt 0x2 flag 0x0 len 32 mtu 1500
18、state EXCHANGE00:31:56: OSPF: Exchange Done with 1.1.1.4 on Serial0/000:31:56: OSPF: Synchronized with 1.1.1.4 on Serial0/0, state FULL00:31:57: OSPF: Build router LSA for area 0, router ID 192.168.248.1, seq 0x8000000300:31:57: OSPF: Rcv hello from 1.1.1.4 area 0 from Serial0/0 192.168.240.100:31:5
19、7: OSPF: End of hello processing00:32:07: OSPF: Rcv hello from 1.1.1.4 area 0 from Serial0/0 192.168.240.100:32:07: OSPF: End of hello processing00:32:17: OSPF: Rcv hello from 1.1.1.4 area 0 from Serial0/0 192.168.240.100:32:17: OSPF: End of hello processing此后收到的都是保持邻接状态的 Hello报文。以上信息反映了路由器 E和路由器 D发
20、现对方并形成邻接关系的过程:首先通过 Hello报文确认对方的存在,然后进行协商并指定主从路由器,再发送各自的链路状态信息,更新数据库,最后通过每隔 10秒钟发送一次的 hello报文维持两台路由器的联系。显示此时的 OSPF信息:Router#show ip ospfRouting Process “ospf 1“ with ID 1.1.1.5Supports only single TOS(TOS0) routesSPF schedule delay 5 secs, Hold time between two SPFs 10 secsMinimum LSA interval 5 secs
21、. Minimum LSA arrival 1 secsNumber of external LSA 0. Checksum Sum 0x0 Number of DCbitless external LSA 0Number of DoNotAge external LSA 0Number of areas in this router is 0. 0 normal 0 stub 0 nssaExternal flood list length 0Area BACKBONE(0)Number of interfaces in this area is 2Area has no authentic
22、ationSPF algorithm executed 5 timesArea ranges areNumber of LSA 2. Checksum Sum 0x105F1 Number of DCbitless LSA 0Number of indication LSA 0Number of DoNotAge LSA 0Flood list length 0从以上信息可以看出,在这台路由器上,为了防止网络状态改变频繁时占用大量 CPU时间,将 SPF算法的间隔设置为 10秒钟。同时还可以看到,至 OSPF 1进程运行以来,SPF 算法一共执行了 5次。显示此时的邻居路由器:Router#s
23、how ip ospf neighborNeighbor ID Pri State Dead Time Address Interface1.1.1.4 1 FULL/ - 00:00:37 192.168.240.1 Serial0/0从这里也可以看出,路由器 E已经发现了与它串口相连的邻居路由器1.1.1.4。显示链路状态数据库:Router#show ip ospf databaseOSPF Router with ID (10.1.1.5) (Process ID 1)Router Link States (Area 0)Link ID ADV Router Age Seq# Chec
24、ksum Link count1.1.1.1 1.1.1.1 153 0x80000005 0xEECA 31.1.1.2 1.1.1.2 730 0x80000003 0x1E1 31.1.1.3 1.1.1.3 151 0x80000005 0x5E13 31.1.1.4 1.1.1.4 158 0x80000005 0xBFD6 41.1.1.5 1.1.1.5 766 0x80000002 0xB6FC 3Net Link States (Area 0)Link ID ADV Router Age Seq# Checksum1.1.1.1 1.1.1.1 153 0x80000001
25、0x219E 对比其他各路由器可以发现,所有路由器上的链路状态数据库是一致的。这正是单区域下 OSPF的特征。显示路由表:Router#show ip route192.168.72.0/30 is subnetted, 1 subnetsO 192.168.72.0 110/1628 via 192.168.240.1, 00:01:03, Serial0/0192.168.224.0/30 is subnetted, 1 subnetsO 192.168.224.0 110/845 via 192.168.240.1, 00:01:03, Serial0/0192.168.240.0/30
26、 is subnetted, 1 subnetsC 192.168.240.0 is directly connected, Serial0/0192.168.64.0/30 is subnetted, 1 subnetsO 192.168.64.0 110/1627 via 192.168.240.1, 00:01:03, Serial0/0C 192.168.248.0/24 is directly connected, FastEthernet0/0O 192.168.1.0/24 110/846 via 192.168.240.1, 00:01:04, Serial0/0以上的路由表是
27、通过链路状态数据库通过 SPF算法得出,与实际的网络情况完全符合。几乎在相同时刻,其他的路由器也得到了正确的路由表,可见 OSPF在很短的时间内就已经快速收敛了。在 192.168.248.2上进行连通性测试:C:Documents and SettingsUserping 192.168.72.2Pinging 192.168.72.2 with 32 bytes of data:Reply from 192.168.72.2: bytes=32 time=39ms TTL=123Reply from 192.168.72.2: bytes=32 time=32ms TTL=123Reply
28、 from 192.168.72.2: bytes=32 time=32ms TTL=123Reply from 192.168.72.2: bytes=32 time=32ms TTL=123Ping statistics for 192.168.72.2:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:Minimum = 32ms, Maximum = 39ms, Average = 33ms路由测试:C:Documents and Setti
29、ngsUsertracert 192.168.72.2Tracing route to 192.168.72.2 over a maximum of 30 hops1 1 ms 1 ms 1 ms 192.168.248.12 19 ms 19 ms 19 ms 192.168.240.13 21 ms 20 ms 20 ms 192.168.224.14 20 ms 20 ms 20 ms 192.168.1.25 40 ms 39 ms 39 ms 192.168.64.26 49 ms 47 ms 47 ms 192.168.72.2Trace complete.显示整个网络通信正常。然
30、后将 D的 S 0/0端口断开,观察 E的链路状态数据库,发现其表项并未减少:Router Link States (Area 0)Link ID ADV Router Age Seq# Checksum Link count1.1.1.1 1.1.1.1 1396 0x80000004 0xDDE1 31.1.1.2 1.1.1.2 1798 0x80000003 0xFEE1 31.1.1.3 1.1.1.3 1396 0x80000005 0x1E74 31.1.1.4 1.1.1.4 282 0x80000006 0xFFD9 21.1.1.5 1.1.1.5 280 0x800000
31、03 0xF9CD 3Net Link States (Area 0)Link ID ADV Router Age Seq# Checksum1.1.1.1 1.1.1.1 1397 0x80000001 0x7BB1 但是注意到被断开的链路所对应的年龄字段在不断增大(粗体部分) 。观察 E的路由表,发现已经更新了路由信息。后来发现,在链路断开的时候,E 的路由信息就已经立即更新了,只不过被断开的链路的信息仍然保留在链路状态数据库中。因而观察链路状态改变有三种途径:debug 命令的输出、链路状态数据库的 age字段以及路由表。考虑到 debug命令容易干扰正常的实验,因而在设计实验指导书的时
32、候采用了后两种方法。多区域测试多区域的测试过程与单区域的大同小异。需要注意的是,如果之前曾经配置了单区域的 OSPF进程,那么在配置多区域的 OSPF之前一定要将以前的配置清除掉,否则会对多区域的配置产生干扰。实验中我们采用的是用 erase命令清除所有配置,然后重新启动路由器。后来我们发现 clear命令可以清除一个OSPF进程,而不会对路由器的接口配置产生影响。在路由器 E上配置多区域 OSPF的过程如下:启动 OSPF进程:Router(config)#router ospf 1配置区域:Router(config-router)#network 192.168.248.1 0.0.0.
33、255 area 2Router(config-router)#network 192.168.240.2 0.0.0.3 area 2在实验中我们发现,虽然配置了多区域,但是任何一台路由器的链路发生改变之后,所有的路由器都可以感知到变化,LSA 的扩散过程与单区域的 OSPF并没有什么不同。后来才知道路由器在默认状态下是不进行链路聚合的,必须手工进行链路聚合。在边界路由器进行链路聚合的命令如下(以路由器 C为例):Router(config-router)#area 2 range 192.168.224.0 255.255.224.0进行链路聚合之后,路由器 E的链路状态数据库如下:OSPF Router with ID (1.1.1.5) (Process ID 1)Router Link States (Area 2)Link ID ADV Router Age Seq# Checksum Link count1.1.1.3 1.1.1.3 397 0x80000003 0x5309 21.1.1.4 1.1.1.4 447 0x80000004 0x821E 41.1.1.5 1.1.1.5 43 0x80000004 0xB309 1Summary Net Link States (Area 2)