实验内容:配置 OSPF 动态路由协议
实验环境: Cisco Packet Tracer 模拟器
实验原理:
1.概述
——OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统 (Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个 AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
——作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
2.数据包格式
——在OSPF路由协议的数据包中,其数据包头长为24个字节,包含如下8个字段:
* Version number-定义所采用的OSPF路由协议的版本。
* Type-定义OSPF数据包类型。OSPF数据包共有五种:
* Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。
* Database Description-用于描述整个数据库,该数据包仅在OSPF初始化时发送。
* Link state request-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的。
* Link state update-这是对link state请求数据包的响应,即通常所说的LSA数据包。
* Link state acknowledgment-是对LSA数据包的响应。
* Packet length-定义整个数据包的长度。
* Router ID-用于描述数据包的源地址,以IP地址来表示。
* Area ID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定的OSPF区域。
* Checksum-校验位,用于标记数据包在传递时有无误码。
* Authentication type-定义OSPF验证类型。
* Authentication-包含OSPF验证信息,长为8个字节。
3.OSPF基本算法
3.1 SPF算法及最短路径树
——SPF算法是OSPF路由协议的基础。SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是Dijkstra发明 的。SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该 结构图类似于一棵树,在SPF算法中,被称为最短路径树。在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称 为OSPF的Cost,其算法为:Cost = 100×106/链路带宽
——在这里,链路带宽以bps来表示。也就是说,OSPF的Cost 与链路的带宽成反比,带宽越高,Cost越小,表示OSPF到目的地的距离越近。举例来说,FDDI或快速以太网的Cost为1,2M串行链路的Cost为48,10M以太网的Cost为10等。
3.2 链路状态算法
——作为一种典型的链路状态的路由协议,OSPF还得遵循链路状态路由协议的统一算法。链路状态的算法非常简单,在这里将链路状态算法概括为以下四个步骤:
当路由器初始化或当网络结构发生变化(例如增减路由器,链路状态发生变化等)时,路由器会产生链路状态广播数据包LSA(Link-State Advertisement),该数据包里包含路由器上所有相连链路,也即为所有端口的状态信息。
所有路由器会通过一种被称为刷新(Flooding)的方法来交换链路状态数据。Flooding是指路由器将其LSA数据包传送给所有与其相邻的 OSPF路由器,相邻路由器根据其接收到的链路状态信息更新自己的数据库,并将该链路状态信息转送给与其相邻的路由器,直至稳定的一个过程。 当网络重新稳定下来,也可以说OSPF路由协议收敛下来时,所有的路由器会根据其各自的链路状态信息数据库计算出各自的路由表。该路由表中包含路由器到每 一个可到达目的地的Cost以及到达该目的地所要转发的下一个路由器(next-hop)。
第4个步骤实际上是指OSPF路由协议的一个特性。当网络状态比较稳定时,网络中传递的链路状态信息是比较少的,或者可以说,当网络稳定时,网络中是比较安静的。这也正是链路状态路由协议区别与距离矢量路由协议的一大特点。
配置 OSPF 路由协议的相关命令
命令 | 功能 |
router ospf process-id | 指定使用 OSPF 协议 |
network address wildcard-mask area area-id | 指定与该路由器相连的网络 |
show ip route | 查看路由表信息 |
show ip route ospf | 查看 OSPF 协议路由信息 |
注:
1 · OSPF 路由进程 process-id 必须指定范围在 1~65 535 之间,多个 OSPF 进程可以在同一个路由器上配置,但最好不要这样做,多个 OSPF 进程需要多个 OSPF 数据库的副本,必须运行多个最短路径算法的副本。 process-id 只在路由器内部起作用,不同路由器的 process-id 可以不同。
2 · wildcard-mask 是子网掩码的反码 。网络区域 ID area-id 是在 0~4294967295 内的十进制数,也可以是带有 IP 地址格式的 X.X.X.X 。当网络区域 ID 为 0 或 0.0.0. 0 时为 主干域 。 不同网络区域的路由器通过主干域学习路由信息。
搭建路由拓扑如下:
对路由器 Router0 配置 ospf 动态路由协议
Router(config)#router ospf 10
Router(config-router)#network 192.2.0.0 0.0.0.255 area 1
Router(config-router)#network 192.1.0.128 0.0.0.63 area 1
Router(config-router)#exit
Router(config)#
对路由器 Router1 配置 ospf 动态路由协议
Router(config)#router ospf 100
Router(config-router)#network 192.200.10.4 0.0.0.3 area 0
Router(config-router)#network 192.1.0.128 0.0.0.63 area 1
Router(config-router)#end
%SYS-5-CONFIG_I: Configured from console by console
Router#
00:32:53: %OSPF-5-ADJCHG: Process 100, Nbr 192.2.0.1 on Serial0/0/1 from LOADING to FULL, Loading Done
对路由器 Router2 配置 ospf 动态路由协议
Router(config)#router ospf 100
Router(config-router)#network 192.200.10.4 0.0.0.3 area 0
Router(config-router)#network 192.1.0.128 0.0.0.63 area 2
对路由器 Router3 配置 OSPF 动态路由协议
Router(config)#router ospf 12
Router(config-router)#network 192.1.0.64 0.0.0.31 area 2
Router(config-router)#network 192.3.0.0 0.0.0.255 area 2
Router(config-router)#end
查看 Router0 路由信息:
Router#show ip route
192.1.0.0/26 is subnetted, 2 subnets
O IA 192.1.0.64 [110/192] via 192.1.0.129, 00:08:21, Serial0/0/1
C 192.1.0.128 is directly connected, Serial0/0/1
C 192.2.0.0/24 is directly connected, FastEthernet0/0
O IA 192.3.0.0/24 [110/193] via 192.1.0.129, 00:08:21, Serial0/0/1
192.200.10.0/30 is subnetted, 1 subnets
O IA 192.200.10.4 [110/128] via 192.1.0.129, 00:48:24, Serial0/0/1
查看 Router1 路由信息:
Router#show ip route
192.1.0.0/26 is subnetted, 2 subnets
O IA 192.1.0.64 [110/128] via 192.200.10.6, 00:09:55, Serial0/0/0
C 192.1.0.128 is directly connected, Serial0/0/1
O 192.2.0.0/24 [110/65] via 192.1.0.130, 00:49:53, Serial0/0/1
O IA 192.3.0.0/24 [110/129] via 192.200.10.6, 00:09:55, Serial0/0/0
192.200.10.0/30 is subnetted, 1 subnets
C 192.200.10.4 is directly connected, Serial0/0/0
查看 Router2 路由信息:
Router>enable
Router#show ip route
192.1.0.0/26 is subnetted, 2 subnets
C 192.1.0.64 is directly connected, Serial0/0/1
O IA 192.1.0.128 [110/128] via 192.200.10.5, 00:17:56, Serial0/0/0
O IA 192.2.0.0/24 [110/129] via 192.200.10.5, 00:17:56, Serial0/0/0
O 192.3.0.0/24 [110/65] via 192.1.0.65, 00:11:18, Serial0/0/1
192.200.10.0/30 is subnetted, 1 subnets
C 192.200.10.4 is directly connected, Serial0/0/0
查看 Router3 路由信息:
Router>enable
Router#show ip route
192.1.0.0/26 is subnetted, 2 subnets
C 192.1.0.64 is directly connected, Serial0/0/1
O IA 192.1.0.128 [110/128] via 192.200.10.5, 00:17:56, Serial0/0/0
O IA 192.2.0.0/24 [110/129] via 192.200.10.5, 00:17:56, Serial0/0/0
O 192.3.0.0/24 [110/65] via 192.1.0.65, 00:11:18, Serial0/0/1
192.200.10.0/30 is subnetted, 1 subnets
C 192.200.10.4 is directly connected, Serial0/0/0
实验完成。。。。。。。。。。。。。。。。。。。。。。。。。。。。。