OSPF是一种典型的链路状态路由协议。采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,独立计算路由。因为RIP路由协议不能服务于大型网络,所以,IETFIGP工作组特别开发出链路状态协议——OSPF

OSPF作为一种内部网关协议(Interior Gateway ProtocolIGP),用于在同一个自治域(AS)中的路由器之间发布路由信息。区别于距离矢量协议(RIP)OSPF具有支持大型网络、路由收敛快、占用网络资源少等优点,在目前应用的路由协议中占有相当重要的地位。

OSPF把一个大型网络分割成多个小型网络的能力被称为分层路由,这些被分割出来的小型网络就称为区域”(Area)。由于区域内部路由器仅与同区域的路由器交换LSA信息,这样LSA报文数量及链路状态信息库表项都会极大减少,SPF计算速度因此得到提高。多区域的OSPF必须存在一个主干区域,主干区域负责收集非主干区域发出的汇总路由信息,并将这些信息返还给到各区域。

OSPF区域不能随意划分,应该合理地选择区域边界,使不同区域之间的通信量最小。但在实际应用中区域的划分往往并不是根据通信模式而是根据地理或政治因素来完成的。

OSPF中的四种路由器

OSPF多区域网络中,路由器可以按不同的需要同时成为以下四种路由器中的几种:

1. 内部路由器:所有端口在同一区域的路由器,维护一个链路状态数据库。

2. 主干路由器:具有连接主干区域端口的路由器。

3. 区域边界路由器(ABR):具有连接多区域端口的路由器,一般作为一个区域的出口。ABR为每一个所连接的区域建立链路状态数据库,负责将所连接区域的路由摘要信息发送到主干区域,而主干区域上的ABR则负责将这些信息发送到各个区域。

4. 自治域系统边界路由器(ASBR):至少拥有一个连接外部自治域网络(如非OSPF的网络)端口的路由器,负责将非OSPF网络信息传入OSPF网络。

OSPF链路状态公告类型OSPF路由器之间交换链路状态公告(LSA)信息。OSPFLSA中包含连接的接口、使用的Metric及其他变量信息。OSPF路由器收集链接状态信息并使用SPF算法来计算到各节点的最短路径。

OSPF区域类型前述的四种路由器可以构成五种类型的区域,这五种区域的主要区别在于它们和外部路由器间的关系:

标准区域: 一个标准区域可以接收链路更新信息和路由总结。

主干区域(传递区域):主干区域是连接各个区域的中心实体。主干区域始终是区域0”,所有其他的区域都要连接到这个区域上交换路由信息。主干区域拥有标准区域的所有性质。

存根区域:存根区域是不接受自治系统以外的路由信息的区域。如果需要自治系统以外的路由,它使用默认路由0.0.0.0

完全存根区域:它不接受外部自治系统的路由以及自治系统内其他区域的路由总结。需要发送到区域外的报文则使用默认路由:0.0.0.0。完全存根区域是Cisco自己定义的。

区分不同OSPF区域类型的关键在于它们对外部路由的处理方式。外部路由由ASBR传入自治系统内,ASBR可以通过RIP或者其他的路由协议学习到这些路由。

报文在OSPF多区域网络中发送的过程

首先,区域内部的路由器最初使用LSA TYPE 1LSA TYPE 2对本区域内的路径信息进行交换并计算出相应的路由表项。当路由器的链路信息在区域内部路由达到统一后,ABR才能发送LSA摘要报文(LSA TYPE 3LSA TYPE 4)给其他区域。其他区域路由器可以根据这些摘要信息计算相应到达本区域以外的路由表项。最后,除了存根区域,所有路由器根据ASBR所发送的LSA TYPE 5计算出到达自治域外的路由表项。

为减少LSA报文,LSA摘要信息可以通过合理地分配IP地址和配置路由摘要提高效率。

OSPF多区域网络中,主干区域必须保持全连通状态,即每个其他区域必须直接与主干区域Area0有连接才能交换区域间的路由信息。但在实际应用中,因为各种原因很难避免有些区域无法直接与Area0相连,为了解决这个问题,OSPF协议中定义了虚链路的概念使一个连接主干的区域连接第三方区域。在图2 中,Area43Area0的连接就是Lab_C通过虚链路与Lab_B实现的。