天天看點

OSPF的外部路由

作者:阿豪的筆記

AS區域内和區域間路由描述的是AS内部的網絡結構。AS外部路由則描述了應該如何選擇到AS以外目的位址的路由。OSPF引入的其他路由協定或不同OSPF程序的路由,均屬于外部路由。

外部路由類型

OSPF引入外部路由,共有兩種類型可選:

  • 第一類外部路由的AS外部開銷值被認為和AS内部開銷值是同一數量級的,是以第一類外部路由的開銷值為AS内部開銷值(路由器到ASBR的開銷)與AS外部開銷值之和;
  • 第二類外部路由的AS外部開銷值被認為遠大于AS内部開銷值,是以第二類外部路由的開銷值隻包含AS外部開銷,忽略AS内部開銷。

預設情況下,OSPF外部路由采用的是第二類外部路由。對于同一目的位址,第一類的外部路由的優先級要大于第二類外部路由。

OSPF路由選路規則如下:

  1. OSPF區域内路由優于區域間路由
  2. OSPF的區域間路由優于外部路由
  3. OSPF外部路由中type1的路由優于type2的路由
  4. 同為type1的外部路由中,優先内部成本和外部成本之和後成本最小的路由,如果路由的成本一樣,則負載分擔
  5. 同為type2的外部路由中,優先外部成本花銷小的路由,如果外部成本一緻,則優先内部成本小的路由,若外部和内部成本均一緻,則負載分擔

外部路由計算

OSPF主要通過AS-External-LSA和ASBR-Summary-LSA進行外部路由計算

AS-External-LSA

AS External LSA,即Type-5 LSA,當ASBR将外部路由引入OSPF時,會産生Type-5 LSA用于描述這些外部路由,這種類型的LSA一旦被産生後,會在整個OSPF域内傳播(除了一些特殊區域)。一條Type-5 LSA隻能宣告一條外部路由,其包含的主要資訊如下圖所示。

OSPF的外部路由

Type-5 LSA 中主要包括以下内容:

  • Ls id:目的網段位址。
  • Adv rtr:ASBR 的 Router ID。
  • Net mask:目的網段的網絡掩碼。
  • Metric:ASBR到達目的網絡的開銷值,預設值為1。
  • Tag:外部路由資訊可以攜帶一個Tag标簽,用于傳遞該路由的附加資訊,通常用于路由政策,預設值為1。

ASBR-Summary-LSA

ASBR Summary LSA,即Type-4 LSA,由ABR産生,描述到ASBR的路由資訊。四類LSA隻能在一個區域内泛洪,五類LSA每泛洪到一個區域,相應區域的ABR都會生成一條新的四類LSA來描述如何到達ASBR。Type-4 LSA包含的主要資訊如下圖所示。

OSPF的外部路由

Type-4 LSA中主要包括以下内容:

  • Ls id:該ASBR的Router ID。
  • Adv rtr:該産生此四類LSA的ABR的Router ID。
  • Metric:從該ABR到達此ASBR的OSPF開銷值。

路由計算過程

如下圖所示,RTA上配置了一條靜态路由,目的網絡是10.1.60.0/24,下一跳是RTF。在RTA的OSPF程序下,将配置的靜态路由重釋出到A公司的OSPF網絡中。

RTA會生成一條AS-External-LSA(五類LSA),用于描述如何從ASBR到達外部目的地;RTB和RTC會生成一條ASBR-Summary-LSA(四類LSA),用于描述如何從ABR到達ASBR。四類LSA和五類LSA,将被OSPF路由器用來計算外部路由。

OSPF的外部路由

當ASBR在本區域内時,以Area 0中RTB的外部路由計算為例:RTB收到五類LSA後,根據Adv rtr字段1.1.1.1發現,ASBR與自己同屬于一個區域(Area 0),便根據Ls id、Net mask、Metric字段最終生成目的網絡10.1.60.0/24 cost=1,下一跳為RTA的路由。

OSPF的外部路由

當ASBR沒有在本區域内時,以Area 1中RTD的外部路由計算為例:RTD收到五類LSA後,根據Adv rtr字段1.1.1.1發現,ASBR與自己不同屬于一個區域,便查找Ls id為1.1.1.1的四類LSA,發現此四類LSA的Adv rtr為2.2.2.2。它根據五類LSA中的LS id、Net mask、Metric字段和四類LSA資訊最終生成目的網絡10.1.60.0/24 cost=1,下一跳為RTB的路由。

OSPF的外部路由

Forwarding Address

如圖所示,RTA、RTB、RTC同處于一個MA網絡,RTA和RTB之間運作OSPF,RTB和RTC之間運作RIP。RTB将通過RIP學來的路由重釋出到OSPF,RTA通過OSPF學習到RIP中192.168.3.0/24的外部路由,但是下一跳是RTB。是以RTA通路192.168.3.0/24的流量先發送給RTB,RTB收到後又轉發給RTC。在RTA上這條路由是次優的,最優的下一跳應當為RTC。

OSPF通過設定Forwarding Address來解決這個問題。

通常情況下,ASBR引入外部路由産生的五類LSA中Forwarding Address字段設定為0.0.0.0。對于上圖中的場景,RTB路由表中到達192.168.3.0/24的下一跳位址為10.1.123.3。10.1.123.3所屬網段10.1.123.0/24運作OSPF,是以RTB生成的五類LSA中,Forwarding Address被設定為10.1.123.3。

當RTA收到五類LSA時,發現Forwarding Address字段非0,其值為10.1.123.3,是以RTA按照Forwarding Address計算下一跳。

OSPF的外部路由

ASBR上的接口如果滿足以下四個規則,則ASBR 上外部路由的下一跳位址就是該外部路由五類LSA的FA,否則該外部路由五類LSA中的FA為0。

  1. 該外部路由的下一跳位址所在網段的接口要釋出到OSPF中。
  2. 該外部路由的下一跳位址所在網段的接口沒有被設定成 silent 接口。
  3. 下一跳位址所在網段的接口 OSPF網絡類型不是Point-to-Point 網絡類型
  4. 下ー地止所在同段的接口 OSPF 網絡類型不是Point-to-Multipoint網絡類型.

外部路由聚合

當大規模部署OSPF網絡時,可能會出現由于OSPF路由表規模過大而降低路由查找速度的現象,為了解決這個問題,可以配置路由聚合,減小路由表的規模,降低管理的複雜度。

路由聚合是指将多條具有相同IP字首的路由聚合成一條路由。如果被聚合的IP位址範圍内的某條鍊路頻繁Up和Down,該變化并不會通告到被聚合的IP位址範圍外的裝置。是以,路由聚合可以避免網絡中的路由振蕩,在一定程度上提高了網絡的穩定性。

如圖所示,Area 0中RTA将8個連續的外部路由引入到OSPF域内,産生8條五類LSA并在OSPF程序域内泛洪。在ASBR(RTA)配置外部路由彙總後,RTA将僅産生1條五類LSA并泛洪至OSPF路由程序域内。

OSPF的外部路由

對引入的路由進行路由聚合後,有以下幾種情況:

  • 如果本地路由器是ASBR且處于普通區域中,本地路由器将對引入的聚合位址範圍内的所有Type-5 LSA進行路由聚合。
  • 如果本地路由器是ASBR且處于NSSA區域中,本地路由器對引入的聚合位址範圍内的所有Type-7 LSA進行路由聚合。
  • 如果本地路由器既是ASBR又是ABR且處于NSSA區域中,本地路由器對引入的聚合位址範圍内的所有Type-7 LSA進行路由聚合外,還将對由Type-7 LSA轉化成的Type-5 LSA也進行路由聚合。