OSPF介绍

OSPF简介


OSPF是一种链路状态路由协议,它是距离矢量路由信息协议(RIP)的替代产品。在网络和Internet的早期,RIP是可接受的路由协议。但是,RIP依赖跳数作为确定最佳路由的唯一指标很快就成为问题。在具有可变速度的多个路径的大型网络中,使用跳数计数不能很好地扩展。与RIP相比,OSPF具有显着优势,因为它提供了更快的收敛速度,并可以扩展到更大的网络实现。
OSPF是一种使用区域概念的链路状态路由协议。网络管理员可以将路由域划分为不同的区域,以帮助控制路由更新流量。链接是路由器上的接口。链接也是连接两个路由器的网段,或者是连接到单个路由器的存根网络(例如以太网LAN)。有关链接状态的信息称为链接状态。所有链接状态信息都包括网络前缀(network prefix),前缀长度(prefix length)和成本(cost)。

OSPF的组成


所有路由协议共享相似的组件。它们都使用路由协议消息来交换路由信息。这些消息有助于建立数据结构,然后使用路由算法对其进行处理。

路由协议消息(Routing Protocol Messages)

报文类型
Hello packet Hello报文
Database description packet 数据库描述报文
Link-state request packet 链路状态更新报文
Link-state acknowledgment packet 链路状态确认报文

OSPF介绍
这些数据包用于发现相邻路由器,还用于交换路由信息以维护有关网络的准确信息

数据结构(Data Structures)
OSPF消息用来创建和维持三个OSPF数据库

数据库 描述
邻接数据库(Adjacency database) (1)邻居表 路由器已建立双向通信的所有邻居路由器的列表。(2)该表对于每个路由器都是唯一的。(3)可以使用show ip ospf neighbor 命令查看。
邻接状态数据库(Link-state database (LSDB)) 拓扑表 (1)列出有关网络中所有其他路由器的信息。该数据库代表网络拓扑。(2)一个区域内的所有路由器都具有相同的LSDB。(3)可以使用show ip ospf database 命令查看。
转发数据库(Forwarding database) 路由表 (1)在链接状态数据库上运行算法时生成的路由列表。(2)每个路由器的路由表都是唯一的,并且包含有关如何以及在何处将数据包发送到其他路由器的信息。(3)可以使用show ip route命令查看。

算法
路由器使用基于Dijkstra最短路径优先(SPF)算法的计算结果来构建拓扑表。SPF算法基于到达目的地的累积成本。

SPF算法通过将每个路由器放置在树的根并计算到达每个节点的最短路径来创建SPF树。然后,将SPF树用于计算最佳路由。OSPF将最佳路由放入转发数据库,​​该数据库用于制作路由表。
OSPF介绍

链接状态操作


为了维护路由信息,OSPF路由器完成通用的链路状态路由过程以达到收敛状态。该图显示了五个路由器拓扑。路由器之间的每个链接都标有成本值。在OSPF中,成本用于确定到达目的地的最佳路径。以下是路由器完成的链路状态路由步骤:

  1. 建立邻居邻接
  2. 交换链接状态广告
  3. 建立链接状态数据库
  4. 执行SPF算法
  5. 选择最佳路线

1、建立邻居关系(Establish Neighbor Adjacencies)
启用OSPF的路由器必须先在网络上相互识别,然后才能共享信息。启用OSPF的路由器向所有启用OSPF的接口发送Hello数据包,以确定这些链路上是否存在邻居。如果存在邻居,则启用OSPF的路由器会尝试与该邻居建立邻居邻接。
OSPF介绍
2、交换链路状态信息(Exchange Link-State Advertisements)
建立邻接关系后,路由器将交换链路状态通告(LSA)。LSA包含每个直接连接的链路的状态和成本。路由器将其LSA泛洪到相邻的邻居。接收LSA的相邻邻居会立即将LSA泛洪到其他直接连接的邻居,直到该区域中的所有路由器都具有所有LSA。

OSPF介绍
3 、建立链接状态数据库( Build the Link State Database)
收到LSA后,启用OSPF的路由器会根据收到的LSA构建拓扑表(LSDB)。该数据库最终保存有关该区域拓扑的所有信息。
OSPF介绍
4、执行SPF算法( Execute the SPF Algorithm)

路由器然后执行SPF算法。图中此步骤的齿轮用于指示SPF算法的执行。SPF算法创建SPF树。
OSPF介绍
5、选择最佳路线(Choose the Best Route)
在建立SPF树之后,将向每个网络的最佳路径提供给IP路由表。除非存在到同一网络且管理距离较短的网络的路由源(例如静态路由),否则该路由将插入到路由表中。路由决策是基于路由表中的条目做出的。
OSPF介绍

单区域和多区域OSPF

为了使OSPF更加高效和可扩展,OSPF支持使用区域的分层路由。OSPF区域是一组路由器,它们在其LSDB*享相同的链路状态信息。OSPF可以通过以下两种方式之一实现:

  • 单区域OSPF-所有路由器都在一个区域中。最佳做法是使用区域0。
  • 多区域OSPF -OSPF使用多个区域以分层方式实现。所有区域都必须连接到骨干区域(区域0)。互连区域的路由器称为区域边界路由器(ABR)。

OSPF介绍

多区域OSPF

使用多区域OSPF,可以将一个大型路由域划分为较小的区域,以支持分层路由。区域之间仍会进行路由(区域间路由),而许多密集型路由操作(例如重新计算数据库)都保留在区域内进行处理。
例如,每当路由器收到该区域内拓扑更改的新信息(包括链接的添加,删除或修改)时,区域内的路由器都必须重新运行SPF算法,创建新的SPF树并更新路由表。SPF算法占用大量CPU,并且计算所需的时间取决于区域的大小。

注意:其他区域的路由器会收到有关拓扑更改的更新,但是这些路由器只会更新路由表,而不会重新运行SPF算法。

一个区域中过多的路由器会使LSDB非常大,并增加CPU的负载。因此,将路由器安排在各个区域中可以有效地将潜在的大型数据库划分为更小且更易于管理的数据库。
多区域OSPF的分层拓扑设计优点:

  • 较小的路由表 -由于路由表条目较少,因此表较小。这是因为可以在区域之间汇总网络地址。默认情况下,不启用路由汇总。
  • 减少链路状态更新开销 -设计面积较小的多区域OSPF可最大程度地减少处理和内存需求。
  • 减少SPF计算的频率 -多区域OSPF可以在一个区域内本地化拓扑变化的影响。例如,由于LSA泛洪在区域边界停止,因此它使路由更新的影响最小化。

例如,在图中R2是区域51的ABR。区域51中的拓扑更改将导致所有区域51路由器重新运行SPF算法,创建新的SPF树并更新其IP路由表。ABR R2将向区域0中的路由器发送LSA,该LSA最终将泛洪至OSPF路由域中的所有路由器。这种类型的LSA不会导致其他区域的路由器重新运行SPF算法。他们只需要更新其LSDB和路由表。
OSPF介绍

OSPFv3


OSPFv3与OSPFv2等效,用于交换IPv6前缀。回想一下,在IPv6中,网络地址称为前缀,子网掩码称为前缀长度。

类似于其IPv4对应版本,OSPFv3交换路由信息以使用远程前缀填充IPv6路由表。

注意:通过OSPFv3地址系列功能,OSPFv3包括对IPv4和IPv6的支持。OSPF地址族超出了本课程的范围。

OSPFv2在IPv4网络层上运行,与其他OSPF IPv4对等方通信,并且仅发布IPv4路由。

OSPFv3具有与OSPFv2相同的功能,但是将IPv6用作网络层传输,与OSPFv3对等体进行通信并发布IPv6路由。OSPFv3还使用SPF算法作为计算引擎来确定整个路由域中的最佳路径。

OSPFv3具有与IPv4相对应的独立进程。这些过程和操作与IPv4路由协议中的基本相同,但独立运行。OSPFv2和OSPFv3分别具有单独的邻接表,OSPF拓扑表和IP路由表,如图所示。

OSPFv3的配置和验证命令与OSPFv2中使用的命令相似。
OSPF介绍
下一篇OSPF数据包