OSPF协议介绍及其协议操作过程(续)
作者: ChinaITLab  2005-05-17   
【IT168 网络 学院】OSPF 路由器之间使用链路状态通告(LSA)来交换各自的链路状态信息,并把获得的信息 存储在链路状态数据库中。各OSPF路由器独立使用SPF算法计算到各个目的地址的路由。
    OSPF协议支持分层路由方式,这使得它的扩展能力远远超过RIP协议。当OSPF网络扩展到 100、 500甚至上千个路由器时,路由器的链路状态数据库将记录成千上万条链路信息。为了使路由器的运行更快速、更经济、占用的资源更少,网络工程师们通常按功能、结构和需要把OSPF网络分割成若干个区域,并将这些区域和主干区域根据功能和需要相互连接从而达到分层的目的。
    OSPF分层路由的思想
    OSPF把一个大型网络分割成多个小型网络的能力被称为分层路由,这些被分割出来的小型网络就称为“区域”(Area)。由于区域内部路由器仅与同区域的路由器交换LSA信息,这样LSA报文数量及链路状态信息库表项都会极大减少,SPF计算速度因此得到提高。
    多区域的OSPF必须存在一个主干区域,主干区域负责收集非主干区域发出的汇总路由信息,并将这些信息返还给到各区域。 OSPF区域不能随意划分,应该合理地选择区域边界,使不同区域之间的 通信量最小。但在实际应用中区域的划分往往并不是根据通信模式而是根据地理或政治因素来完成的。
    OSPF中的四种路由器
    在OSPF多区域网络中,路由器可以按不同的需要同时成为以下四种路由器中的几种(如图1所示):
    1. 内部路由器:所有端口在同一区域的路由器,维护一个链路状态数据库。
    2. 主干路由器:具有连接主干区域端口的路由器。
    3. 区域边界路由器(ABR): 具有连接多区域端口的路由器,一般作为一个区域的出口。ABR为每一个所连接的区域建立链路状态数据库,负责将所连接区域的路由摘要信息发送到主干区域,而主干区域上的ABR则负责将这些信息发送到各个区域。
     4. 自治域系统边界路由器(ASBR): 至少拥有一个连接外部自治域网络(如非OSPF的网络)端口的路由器,负责将非OSPF网络信息传入OSPF网络。
OSPF链路状态公告类型
    OSPF 路由器之间交换链路状态公告(LSA)信息。OSPF的LSA中包含连接的接口、使用的Metric及其他变量信息。OSPF路由器收集链接状态信息并使用SPF算法来计算到各节点的最短路径。LSA也有几种不同功能的报文,在这里简单地介绍一下:
    LSA TYPE 1:由每台路由器为所属的区域产生的LSA,描述本区域路由器链路到该区域的状态和代价。一个边界路由器可能产生多个LSA TYPE 1。
    LSA TYPE 2:由DR产生,含有连接某个区域路由器的所有链路状态和代价信息。只有DR可以监测该信息。
    LSA TYPE 3:由ABR产生,含有ABR与本地内部路由器连接信息,可以描述本区域到主干区域的链路信息。它通常汇总缺省路由而不是传送汇总的OSPF信息给其他 网络。
    LSA TYPE 4:由ABR产生,由主干区域发送到其他ABR, 含有ASBR的链路信息,与LSA TYPE 3的区别在于TYPE 4描述到OSPF网络的外部路由,而TYPE 3则描述区域内路由。
    LSA TYPE 5:由ASBR产生,含有关于自治域外的链路信息。除了存根区域和完全存根区域,LSA TYPE 5在整个网络中发送。
    LSA TYPE 6:多播OSPF(MOSF),MOSF可以让路由器利用链路状态数据库的信息构造用于多播报文的多播发布树。
     LSA TYPE 7:由ASBR产生的关于NSSA的信息。LSA TYPE 7可以转换为LSA TYPE 5。
OSPF区域类型
    前述的四种 路由器可以构成五种类型的区域,这五种区域的主要区别在于它们和外部路由器间的关系:
    标准区域:一个标准区域可以接收链路更新信息和路由总结。 主干区域(传递区域): 主干区域是连接各个区域的中心实体。主干区域始终是“区域0”,所有其他的区域都要连接到这个区域上交换路由信息。主干区域拥有标准区域的所有性质。
    存根区域:存根区域是不接受自治系统以外的路由信息的区域。如果需要自治系统以外的路由,它使用默认路由0.0.0.0。
    完全存根区域:它不接受外部自治系统的路由以及自治系统内其他区域的路由总结。需要发送到区域外的报文则使用默认路由:0.0.0.0。完全存根区域是Cisco自己定义的。
   不完全存根区域(NSAA):它类似于存根区域,但是允许接收以LSA Type 7发送的外部路由信息,并且要把LSA Type 7转换成LSA Type 5。
    区分不同OSPF区域类型的关键在于它们对外部路由的处理方式。外部路由由ASBR传入自治系统内,ASBR可以通过RIP或者其他的路由协议学习到这些路由。
    报文在OSPF多区域网络中发送的过程
    首先,区域内部的路由器最初使用LSA TYPE 1或LSA TYPE 2对本区域内的路径信息进行交换并计算出相应的路由表项。当路由器的链路信息在区域内部路由达到统一后,ABR才能发送LSA摘要报文(LSA TYPE 3或LSA TYPE 4)给其他区域。
    其他区域路由器可以根据这些摘要信息计算相应到达本区域以外的路由表项。最后,除了存根区域,所有路由器根据ASBR所发送的LSA TYPE 5计算出到达自治域外的路由表项。
    为减少LSA报文,LSA摘要信息可以通过合理地分配IP地址和配置路由摘要提高效率。 在OSPF多区域网络中,主干区域必须保持全连通状态,即每个其他区域必须直接与主干区域Area0有连接才能交换区域间的路由信息。
    但在实际应用中,因为各种原因很难避免有些区域无法直接与Area0相连,为了解决这个问题,OSPF协议中定义了虚链路的概念使一个连接主干的区域连接第三方区域。在图2中,Area43与Area0的连接就是Lab_C通过虚链路与Lab_B实现的