OSPF路由协议综述及其配置(4)

文章出处:Linux 宝库 作者:未知 发布时间:2006-09-21
  OSPF路由协议综述及其配置(4)
  
  当OSPF area过大的话,带来的负面影响有:
  1.太过频繁的SPF计算,造成路由器CPU负载过重
  2.路由表过大
  3.LSDB过大
  解决方案是划分层次化的area路由(hierarchical area routing),减少了SPF运算的频率,减小了路由表的体积,减少了LSU的负载
  
  OSPF路由器的类型如下图:
  
 

  internal routers:所有的接口在一个area里,拥有相同的LSDB
  backbone router:至少一个有接口连接到area 0里,和internal routers保持相同的OSPF进程和算法
  ABR:接口连接了多个area,每个接口保持它所连的area的单独的LSDB
  ASBR:至少有一个接口连接到外部网络比如其他的AS,非OSPF网络
  当然,一个路由器同时可以扮演上述多个角色
  
  OSPF LSA Types
  
  一些LSA的类型如下:
  类型1:router LSA
  类型2:network LSA
  类型3/4:summary LSA
  类型5:AS external LSA
  类型6:multicast OSPF LSA,使用在OSPF多播应用程序里
  类型7:使用在Not-So-Stubby area(NSSA)里
  类型8:特殊的LSA用来连接OSPF和BGP
  类型9/10/11:opaque LSA,用于今后OSPF的升级等
  
  LSA类型1(router LSA),如下图:
  
 

  类型1的LSA只在一个area里传播,不会穿越ABR.描述了和路由器直接相连的链路集体状态信息.RID鉴别类型1的LSA,LSA描述了链路的网络号和掩码(即link ID).另外类型1的LSA还描述了路由器是否是ABR或ASBR
  
  类型1的LSA不同的链路类型的link ID如下:
  1.point-to-point的link ID是邻居的RID
  2.transit network的link ID是DR的接口地址
  3.stub network的link ID是IP网络号
  4.virtual link的link ID是邻居的RID
  
  LSA类型2(network LSA),如下图:
  
 

  类型2的LSA只在一个区域里传播,不会穿越ABR.描述了组成transit network的直连的路由器.transit network直连至少2台OSPF路由器.DR负责宣告类型2的LSA,然后在transit network的一个area里进行洪泛.类型2的LSA ID是DR进行宣告的那个接口的IP地址
  
  LSA类型3(summary LSA),如下图:
  
 

  类型3的LSA由ABR发出.默认OSPF不会对连续子网进行汇总.可在ABR上进行人工设定启用汇总.类型3的LSA可以在整个AS内进行洪泛
  
  LSA类型4(summary LSA),如下图:
  
 

  类型4的LSA只使用在area里存在ASBR的时候,类型4的LSA鉴别ASBR和提供到达ASBR的路由.类型4的LSA只包含了ASBR的RID信息.类型4的LSA由ABR生成,并在整个AS里进行洪泛
  
  LSA类型5(external LSA),如下图:
  
 

  类型5的LSA描述了到达外部AS的路由,由ASBR生成并在整个AS内洪泛
  Interpreting the OSPF LSDB and Routing Table
  
  使用show ip ospf database来查看OSPF的LSDB信息
  
  一些route designator如下:
  1.O:代表OSPF area内(intra-area)路由,为router LSA
  2.O IA:在一个AS里的area之间(inter-area)的路由,为summary LSA
  3.O E1/O E2:AS外路由,为external LSA
  
  SPF算法根据LSDB运算出SPF树来决定最佳路径,步骤如下:
  1.所有在各自的area里的路由器计算出最佳路径并放进路由表里,为LSA类型1和类型2.用O来标记
  2.area之间的路由器计算出最佳路径,这些最佳路径是area间路由条目,或LSA类型3和LSA类型4.用O IA来标记
  3.所有的除了stub area的路由器计算出到达外部AS的最佳路径(LSA类型5),标记为O E1或O E2
  
  O E1和O E2的区别为是到达外部网络,前者要加内部cost,后者不加,如下图:
  

  一般只有一个ASBR宣告到达外部AS的外部路由的时候,就使用O E2(O E2为默认类型);如果有多个ASBR宣告一条到达同一个外部AS的外部路由的时候,就应该使用O E2