3.5.6OSPF(Open Shortest Path First)路由协议

3.5.6OSPF(Open Shortest Path First)路由协议

OSPF为IETF OSPF工作组开发的一种基于链路状态的内部网关路由协议。OSPF是专为IP开发的路由协议,直接运行在IP层上面,协议号为89,采用组播方式进行OSPF包交换,组播地址为224.0.0.5(全部OSPF设备)和224.0.0.6(指定设备)。

链路状态算法是一种与哈夫曼向量算法(距离向量算法)完全不同的算法。应用哈夫曼向量算法的传统路由协议为RIP,而OSPF路由协议是链路状态算法的典型实现。与RIP路由协议相比,OSPF除了算法上的不同,还引入了路由更新认证、VLSMs(可变长子网掩码)、路由汇聚等新概念。即使RIP v2做了很大的改善,可以支持路由更新认证、可变长子网掩码等特性,但是RIP协议还是存在两个致命弱点:一是收敛速度慢;二是网络规模受限制,最大跳数不超过16跳。OSPF的出现克服了RIP的弱点,使得IGP协议也可以胜任中大型、较复杂的网络环境。OSPF路由协议利用链路状态算法建立和计算到每个目标网络的最短路径,该算法本身较复杂,以下简单地、概括性地描述了链路状态算法工作的总体过程。

初始化阶段,设备将产生链路状态通告,该链路状态通告包含了该设备全部链路状态。

所有设备通过组播的方式交换链路状态信息,每台设备接收到链路状态更新报文时,将拷贝一份到本地数据库中,然后再传播给其他设备。

当每台设备都有一份完整的链路状态数据库时,设备应用Dijkstra算法针对所有目标网络计算最短路径树,结果内容包括:目标网络、下一跳地址、花费,是IP路由表的关键部分。

在OSPF路由域中,根据设备的部署位置,有3种设备角色:

(1)区域内部设备,该设备的所有接口网络都属于一个区域。

(2)区域边界设备,也称为“ABR(Area Border Routers)”,该设备的接口网络至少属于两个区域,其中一个必须为骨干区域。

(3)自治域边界设备,也称为“ASBR(Autonomous System Boundary Routers)”,是OSPF路由域与外部路由域进行路由交换的必经之路。

1.创建OSPF路由进程

创建OSPF路由进程,并定义与该OSPF路由进程关联的IP地址范围,以及该范围IP地址所属的OSPF区域。OSPF路由进程只在属于该IP地址范围的接口发送、接收OSPF报文,并且对外通告该接口的链路状态。

要创建OSPF路由进程,可以按照如下步骤进行:

使用命令no router ospf process-id关闭OSPF协议。以下为打开OSPF协议的示例:

Ruijie(config)#router ospf 1

Ruijie(config-router)#network 192.168.0.0 0.0.0.255 area 0

Ruijie(config-router)#end

2.配置OSPF接口参数

OSPF允许更改某些特定的接口参数,可以根据实际应用的需要设置这些参数。应该注意的是,一些参数的设置必须保证与该接口相邻接的设备的相应参数一致,这些参数通过ip ospf hello-interval,ip ospf dead-interval,ip ospf authentication,ip ospf authenticationkey和ip ospf message-digest-key 5个接口参数进行设置,当使用这些命令时,应该注意邻居设备也有同样的配置。

要配置OSPF接口参数,可在接口配置模式中执行以下命令:

使用以上命令的no模式,可以取消原来的设置或者恢复缺省值。

3.OSPF配置实例

1)配置要求

三台设备要通过帧中继网络实现网状全连接,每台设备只有一条帧中继线路,线路带宽和PVC速率全部一样。IP地址分配和设备连接见图3.9。

要求:

(1)设备A、B、C之间配置NBMA类型网络。

(2)设备A为指定设备,设备B为备份指定设备。

图3.9 IP地址分配和设备连接示意

(3)全部网络都在一个区域内。

(4)加快拓扑收敛。

2)设备具体配置

由于OSPF没有特殊配置,将采用组播方式自动发现邻居。如果接口配置了NBMA网络类型,该接口就不会发OSPF组播报文,因此,需要指定邻居的IP地址。可以通过设置较短的SPF计算等待时间来加快拓扑收敛。

(1)设备A的配置。

①配置广域网端口:

Ruijie(config)#interface Serial 1/0

Ruijie(config-if)#ip address 192.168.123.1 255.255.255.0

Ruijie(config-if)#encapsulation frame-relay

Ruijie(config-if)#ip ospf network non-broadcast

Ruijie(config-if)#ip ospf priority 10

②配置OSPF路由协议,到设备B的花费更小:

Ruijie(config)#router ospf 1

Ruijie(config-router)#network 192.168.123.0 0.0.0.255 area 0

Ruijie(config-router)#neighbor 192.168.123.2 priority 5

Ruijie(config-router)#neighbor 192.168.123.3

Ruijie(config-router)#timers spf 500 1000 10000

(2)设备B的配置。

①配置广域网端口:

Ruijie(config)#interface Serial 1/0

Ruijie(config-if)#ip address 192.168.123.2 255.255.255.0

Ruijie(config-if)#encapsulation frame-relay

Ruijie(config-if)#ip ospf network non-broadcast

Ruijie(config-if)#ip ospf priority 5

②配置OSPF路由协议:

Ruijie(config)#router ospf 1

Ruijie(config-router)#network 192.168.123.0 0.0.0.255 area 0

Ruijie(config-router)#neighbor 192.168.123.1 priority 10

Ruijie(config-router)#neighbor 192.168.123.3

Ruijie(config-router)#timers spf 500 1000 10000

(3)设备C的配置。

①配置广域网端口:

Ruijie(config)#interface Serial 1/0

Ruijie(config-if)#ip address 192.168.123.3 255.255.255.0

Ruijie(config-if)#encapsulation frame-relay

Ruijie(config-if)#ip ospf network non-broadcast

②配置OSPF路由协议:

Ruijie(config)#router ospf 1

Ruijie(config-router)#network 192.168.123.0 0.0.0.255 area 0

Ruijie(config-router)#neighbor 192.168.123.1 10

Ruijie(config-router)#neighbor 192.168.123.2 5

Ruijie(config-router)#timers spf 500 1000 10000