使用开放最短路径优先协议的无类路由
在大型复杂的网络中发送数据包时,会采取不同的路线。有些路线可能比较长,有些则比较短。
最快的可用路线总是最好的,因此需要一种机制来识别它们。
本文将介绍我们如何在网络上应用无类路由协议,使用开放最短路径优先(OSPF)协议识别快速路由。
先决条件
要想继续学习,读者应该。
- 对网络和配置有良好的理解。
- 对基本的网络路由概念有初步的了解。
- 知道如何使用Cisco Packet Tracer。
术语
-
无类别路由- 它指的是一种路由类型,如果没有找到其他特定的路由,路由器会使用默认路由来转发流量。它包括路由更新中的子网掩码信息,由RIPv2、OSPF和EIGRP协议支持。
-
管理距离(AD)- 这个功能被路由器用来选择可能的最佳路径。
-
公制- 它指的是每个无类路由协议用来确定通往网络的最佳路径的方式。OSPF使用
Sum of Inverse of Bandwidth,而RIP使用Hop Count。EIGRP依靠Min Bandwidth + Delay。 -
通配符掩码- 它指的是配置在接口上的子网掩码的反义词,并被OSPF用来指定检查匹配的IP地址范围。它通常是32位长。
-
具有相同区域标识的OSPF网络、路由器和链接的逻辑分组被称为OSPF区域。一个区域内的路由器需要有一个该特定区域的拓扑数据库。
-
OSPF邻居- 是指同一区域内由共同网络连接的两个启用OSPF的路由器之间存在的关系。
OSPF组件和特点
开放最短路径优先(OSPF)协议是一个链接状态、无类别、开放标准的路由协议,是作为内部网关协议创建的。
它使用区域的概念和路由度量cost ,通过提供快速收敛和扩展到更大的网络实施来帮助控制路由流量。
OSPF协议管理几个路由区,并协助确定特定情况下的最快可用路由。
OSPF协议有相当的组成部分。即:
-
路由协议消息- OSPF允许路由器以数据包的形式发送和接收消息。如hello数据包、链路状态请求数据包和数据库描述数据包。
-
数据结构- 它们是由OSPF邻居的消息创建的,包含了它们共享路由信息的周围路由器的列表。它们被存储在RAM中。
- 邻居表是由
adjacency database。 - 拓扑表是由
link-state database(LSDB)创建的。 - 路由表是由
forwarding database。
- 算法- OSPF采用了最短路径优先(SPF)算法,该算法基于到达目标的总成本。
OSPF的特点
- OSPF使用链路状态路由算法。
- 它支持CIDR寻址模型。
- OSPF只发送更新而不是完整的路由表。
- 最简单的路由统计是路径成本。
- 它支持认证,并在每10秒后发送更新。
- 更新是用多播地址发送的
224.0.0.5
OSPF的实施
OSPF可以用两种不同的方式设置。
i).单一区域OSPF
这种形式的OSPF实现发生在小型网络中,所有的路由器都在骨干区域(0区),导致巨大的路由表。
.
ii).多区域OSPF
OSPF是以分层的方式进行的。多个地点必须连接到骨干网。我们可以把一个大的自治系统划分为较小的部分,以支持分层路由。
最短路径优先(SPF)被限制在一个区域内,导致路由表更小。
.
OSPF配置
让我们看看我们如何在一个局域网上配置和验证OSPF的实现。
考虑一下下面的网络。

给两个路由器和PC上的接口分配IP地址。
Router>enable
Router#configure terminal
Router(config) #interface gi0/0 !specifying interface
Router(config-if) #ip address 192.168.20.1 255.255.255.0 !assigning IP address to interface
Router(config-if) #no shutdown !activating the interface
Router(config-if) #interface gi0/1
Router(config-if) #ip address 192.168.10.1 255.255.255.0
Router(config-if) #no shutdown
Router(config-if) #do write ! routers configuration saving
Router>enable
Router#config terminal
Router(config) #interface gi0/0
Router(config-if) #ip address 192.168.20.2 255.255.255.0
Router(config-if) #no shutdown
Router(config-if) #interface gi0/1
Router(config-if) #ip address 192.168.30.1 255.255.255.0
Router(config-if) #no shutdown
在两个路由器之间建立一个关系,并在OSPF中指定连接的子网。
Router(config) #router ospf 1 !ospf is enabled
Router(config-router) #network 192.168.10.0 0.0.0.255 area 0 !specifying the network, wildcard mask and the area
Router(config-router) #network 192.168.20.0 0.0.0.255 area 0
Router(config-router) #do write
Router(config-if) #router ospf 1
Router(config-router) #network 192.168.30.0 0.0.0.255 area 0
Router(config-router) #network 192.168.20.0 0.0.0.255 area 0
Router(config-router) #do write
要禁用路由器上的OSPF配置,在全局配置模式下使用命令
no router ospf。要查看OSPF信息,我们可以使用show ip protocols命令。
OSPF验证
为了验证我们在网络上配置了OSPF,并且其实施是有效的,可以使用命令show ip ospf 。
Router#show ip ospf
Routing Process "ospf 1" with ID 192.168.20.1
Supports only single TOS(TOS0) routes
Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
为了查看OSPF的邻居,我们使用show ip ospf neighbor 。
Router#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.30.1 1 FULL/BDR 00:00:32 192.168.20.2 GigabitEthernet0/0
在这两台路由器上,我们可以使用show ip route ospf 命令来检查连接的子网是否在不同的区域做了广告。
Router#show ip route ospf
O 192.168.10.0 [110/2] via 192.168.20.1, 00:34:39, GigabitEthernet0/0
计算机可以通信,因为它们直接连接到同一个区域。

结论
如上所示,我们可以在无类路由中使用OSPF来确定数据包的最快可用路由。这个功能有助于适应大型网络的实现。