前言

上一章介绍了RIP动态路由协议,知道了RIP是基于距离矢量的路由协议。知识卡片|最全RIP动态路由协议技术详解。

从今天开始我们介绍下另一个动态路由协议——OSPF。开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。

为什么会出现OSPF?:因为RIP是一种基于距离矢量算法的路由协议,存在着

  • 收敛慢;

  • 易产生路由环路;

  • 可扩展性差,最大只能支持15跳。

OSPF的出现很好地解决了上述3个问题,那么OSPF是如何解决上述3个问题的呢?我们一起来看下。

正文

1 OSPF是如何保证无路由环路的?

OSPF是一种基于链路状态的路由协议,它从设计上就保证了无路由环路。

那么什么是链路状态协议?

如果说距离矢量路由协议提供的是路标,那么链路状态路由协议提供的就是地图。每个运行链路状态协议的路由器上都有一张完整的网络图。

就好比你有一张地图怎么还会迷路?运行链路状态协议的每一台路由器都会有一张地图库从而避免了环路。

链路状态协议工作原理:

每台运行链路状态路由协议的路由器都了解整个网络的链路状态信息(地图),这样才能计算出到达目的地的最优路径。

1、LSA泛洪:

运行链路状态路由协议的路由器都会进行链路状态公告LSA (Link State Advertisement)泛洪,LSA中包含了路由器已知的接口状态、接口IP地址、掩码、开销和网络类型等信息。

通俗点讲就是每台路由器都会将一些关于自己,关于本地直连链路以及这些链路的状态和关于所有直连邻居的信息传送给相邻的其他路由器。

2、建立LSDB:

收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database)。

通俗点讲就是每台路由器都会收到网络中其他的路由器发送过来的LSA信息,这些所有的LSA信息构成了LSDB。这里需要注意的是当网络稳定后,网络中的所有设备应该是有相同的LSDB的。

3、建立最短路径树:

运行OSPF协议的路由器在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。

4、路由计算:

通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。

常见的链路状态协议有:

OSPF:开放式最短路径优先协议

IS-IS:中间系统到中间系统协议

OSPF支持区域的划分,区域内部的路由器使用SPF最短路径算法保证了区域内部的无环路

为什么划分区域?

划分OSPF区域可以缩小路由器的LSDB规模,减少网络流量。

区域内的详细拓扑信息不向其他区域发送,区域间传递的是抽象的路由信息,而不是详细的描述拓扑结构的链路状态信息。

每个区域都有自己的LSDB,不同区域的LSDB是不同的。路由器会为每一个自己所连接到的区域维护一个单独的LSDB。由于详细链路状态信息不会被发布到区域以外,因此LSDB的规模大大缩小了。

OSPF是如何划分区域的呢?

1、路由器的每个接口可以被划分在一个区域,一个路由器可以同时属于多个区域。

2、Area 0为骨干区域,其他区域为非骨干区域。每个非骨干区域都必须连接到骨干区域。

3、运行在区域之间的路由器叫做区域边界路由器ABR(Area Boundary Router),它包含所有相连区域的LSDB。

自治系统边界路由器ASBR(Autonomous System Boundary Router)是指和其他AS中的路由器交换路由信息的路由器,这种路由器会向整个AS通告AS外部路由信息。

为什么SPF算法可以保证区域内无环路?

SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。树形是无环路的。

OSPF利用区域间的连接规则保证了区域之间无路由环路。

为了避免区域间路由环路,非骨干区域之间不允许直接相互发布路由信息,所有的非骨干区域间通信都需要借助骨干区域。因此,每个区域都必须连接到骨干区域。

2 OSPF是如何实现快速收敛的?

OSPF支持触发更新,能够快速检测并通告自治系统内的拓扑变化。触发更新就是当路由有变化立刻发送路由更新信息。

3 OSPF是如何保证扩展性的?

OSPF可以解决网络扩容带来的问题。当网络上路由器越来越多,路由信息流量急剧增长的时候,OSPF可以将每个自治系统划分为多个区域,并限制每个区域的范围。OSPF这种分区域的特点,使得OSPF特别适用于大中型网络。

总结