首页 理论教育OSPF协议:计算网络最优路径,收敛速度快,适用大型网络

OSPF协议:计算网络最优路径,收敛速度快,适用大型网络

【摘要】:OSPF 使用Dijkstra 的SPF 算法,对全网拓扑作出精确判断,并计算出无环路的最优路径。OSPF 使用IP 上层协议号89,有自身的可靠传输机制。OSPF 对网络整体把握,收敛速度快,适用于大型网络。运行OSPF 的路由器,通过互相发送hello 包建立邻居关系。DR 和BDR 在OSPF 域内的任何网段中只能有一个。DR、BDR 的选举进一步体现了OSPF 分级理念的精准控制和严格管理。

1.OSPF 概述

OSPF 是典型的链路状态路由协议,是由Internet 工程任务组(Internet Engineer Task Force,IETF)开发的国际通用的IGP,目前普遍应用在IPv4 网络中的是OSPFv2 版本。OSPF 使用Dijkstra 的SPF 算法,对全网拓扑作出精确判断,并计算出无环路的最优路径。OSPF 使用IP 上层协议号89,有自身的可靠传输机制。OSPF 对网络整体把握,收敛速度快,适用于大型网络。

2.OSPF 的特点

(1)快速收敛(Rapid Converge)。

(2)触发式增量更新(Triggered &Increment Update)。

(3)支持VLSM。

(4)符合链路状态路由协议特点,需要精确掌握全网拓扑,OSPF 在同一个区域(Area)内每隔30min 泛洪(Flooding)同步更新一次。

(5)以Cost 为度量值,计算方法是参考带宽100Mbit/s/带宽(链路真实带宽,单位为Mbit/s)。

(6)无路由环路,使用SPF 算法,每个路由器以自己为根节点计算最小生成树,从根本上杜绝路由环路。

(7)默认支持4 条(最大6 条)等链路负载均衡。

(8)默认AD 为110。

(9)不支持自动路由汇总,只能在区域边界进行手工汇总。

(10)支持明文和MD5 验证。

3.OSPF 的3 张表

(1)邻居表。运行OSPF 的路由器,通过互相发送hello 包建立邻居关系。在点对点和广播网络中,发送hello 包的时间间隔(Hello Interval)默认为10s,死亡间隔(Dead Interval)为40s。在非广播网络中(如帧中继),发送hello 包的时间间隔默认为30s,死亡间隔为120s。

(2)拓扑表。OSPF 的拓扑表也称为链路状态数据库(Link State Data Base,LSDB),其中记录了同区域内全网拓扑中所有链路的类型与Cost 值。在同一个区域内,所有路由器的LSDB 必须保持同步。

(3)路由表。每个路由器经过SPF 算法计算后,将无环路的最优路径放到路由转发表中,形成该路由器的OSPF 路由表。

4.OSPF 分级理念

OSPF 通过区域划分,将网络定义为层次化的结构,体现分级的理念,其共分为两个区域:

微课6-4

(1)骨干区域(Backbone Area):0 区域,有且仅有一个,骨干区域相当于人的躯体。

(2)常规区域(Regular Area):所有的非0 区域,可以有多个,原则上常规区域与骨干区域必须直接相连,常规区域之间不可以相连(常规区域相当于人的四肢)。

OSPF 的区域划分是以接口为单位的,即一个路由器有几个接口,就可以被划分到几个区域中。处于两个或两个以上区域的路由器称为区域边界路由器(Area Border Router,ABR),还运行了其他外部路由协议的路由器称为自治系统边界路由器(Autonomous System Border Router,ASBR)。

5.OSPF 划分区域的特性

(1)通过区域间路由汇总,减少路由表条目。OSPF 的路由汇总只能在ABR 上手工配置。

(2)将拓扑结构变化的影响限制在一个区域内,即同区域内的详细链路状态公告(Link State Advertise ment,LSA)泛洪截止在区域边界。(www.chuimin.cn)

(3)需要一个层次化(分级)的网络架构设计和IP 地址设计。

6.OSPF 的工作步骤

(1)路由器之间配置正确的IP 地址,形成拓扑结构。

(2)路由器之间通过发送hello 包建立邻居关系。

(3)形成邻居关系的路由器之间进一步形成邻居关系(Adjacent)[指定路由器(Designated Router,DR)、备份指定路由器(Backup Designated Router,BDR)选举]。

(4)路由器之间通过相互发送链路状态公告,建立链路状态数据库。

(5)路由器之间通过在一个区域内的泛洪,同步链路状态数据库。

(6)链路状态数据库同步之后,每个路由器都以自己为根节点计算最小生成树,即运行SPF 算法,计算出到达每个目标网段的无环路最优路径。

(7)路由器将无环路最优路径放入路由表。

7.OSPF 的Router ID

Router ID 是一个32 位的无符号整数,是一台路由器在OSPF 域内的唯一标识,通常选择路由器接口IP 地址为Router ID。

首先,路由器选取它所有的loopback 接口上数值最大的IP 地址为Router ID;如果路由器没有配置IP 地址的loopback 接口,则选取它所有的物理接口上数值最大的IP 地址为Router ID。还可以通过命令指定路由器的Router ID,此为最优先方法,并且用作路由器Router ID 的接口不一定要运行OSPF 协议。

8.DR 和BDR

运行OSPF 的路由器还有不同角色之分,体现了OSPF 严格的分级理念和对网络的精准控制,其中包括DR、BDR 和普通路由器(DRouter)。

DR 和BDR 在OSPF 域内的任何网段中只能有一个。在一个网段中,DR 相当于班长,BDR 相当于副班长,DRouter 相当于普通同学。所有DRouter 都要与DR 和BDR 形成邻居关系。

选举DR、BDR 时要比较OSPF 优先级,优先级配置在OSPF 接口上,通过hello 包传递。优先级最高的为DR,次高的为BDR,默认优先级为1,优先级取值范围为0 ~255。当优先级为0 时,不参与DR 和BDR 选举,只能作为DRouter。

在优先级相同的情况下,比较Router ID。Router ID 最高的为DR,次高的为BDR,DR和BDR 的选举是非抢占的。

DR、BDR 的选举进一步体现了OSPF 分级理念的精准控制和严格管理。所有DRouter 都要与DR 和BDR 形成邻接关系,当拓扑结构发生变化时,DRouter 直接通告DR 和BDR,再由DR 和BDR 通告其他DRouter。它们之间进行LSA 通告时,使用组播地址进行通信

9.OSPF 的数据包类型

(1)hello 包:直接相连的路由器之间建立邻居关系。

(2)数据库描述(DataBase Description,DBD)包:邻居之间发送链路状态数据库的简要信息。

(3)链路状态请求(Link State Request,LSR)包:形成邻居关系后,DRouter 要向DR和BDR 请求明细路由更新信息。

(4)链路状态更新(Link State Updata,LSU)包:DR 和BDR 要响应DRouter 的请求,发送所请求的详细路由信息(具体的各条LSA 明细),并进行LSDB 的更新。

(5)链路状态确认(LSAck)包:OSPF 的可靠传输保障,对DBD 包和LSU 包的确认。