AS區域内和區域間路由描述的是AS内部的網絡結構。AS外部路由則描述了應該如何選擇到AS以外目的位址的路由。OSPF引入的其他路由協定或不同OSPF程序的路由,均屬于外部路由。
外部路由類型
OSPF引入外部路由,共有兩種類型可選:
- 第一類外部路由的AS外部開銷值被認為和AS内部開銷值是同一數量級的,是以第一類外部路由的開銷值為AS内部開銷值(路由器到ASBR的開銷)與AS外部開銷值之和;
- 第二類外部路由的AS外部開銷值被認為遠大于AS内部開銷值,是以第二類外部路由的開銷值隻包含AS外部開銷,忽略AS内部開銷。
預設情況下,OSPF外部路由采用的是第二類外部路由。對于同一目的位址,第一類的外部路由的優先級要大于第二類外部路由。
OSPF路由選路規則如下:
- OSPF區域内路由優于區域間路由
- OSPF的區域間路由優于外部路由
- OSPF外部路由中type1的路由優于type2的路由
- 同為type1的外部路由中,優先内部成本和外部成本之和後成本最小的路由,如果路由的成本一樣,則負載分擔
- 同為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隻能宣告一條外部路由,其包含的主要資訊如下圖所示。
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包含的主要資訊如下圖所示。
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路由器用來計算外部路由。
當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的路由。
當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的路由。
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計算下一跳。
ASBR上的接口如果滿足以下四個規則,則ASBR 上外部路由的下一跳位址就是該外部路由五類LSA的FA,否則該外部路由五類LSA中的FA為0。
- 該外部路由的下一跳位址所在網段的接口要釋出到OSPF中。
- 該外部路由的下一跳位址所在網段的接口沒有被設定成 silent 接口。
- 下一跳位址所在網段的接口 OSPF網絡類型不是Point-to-Point 網絡類型
- 下ー地止所在同段的接口 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路由程序域内。
對引入的路由進行路由聚合後,有以下幾種情況:
- 如果本地路由器是ASBR且處于普通區域中,本地路由器将對引入的聚合位址範圍内的所有Type-5 LSA進行路由聚合。
- 如果本地路由器是ASBR且處于NSSA區域中,本地路由器對引入的聚合位址範圍内的所有Type-7 LSA進行路由聚合。
- 如果本地路由器既是ASBR又是ABR且處于NSSA區域中,本地路由器對引入的聚合位址範圍内的所有Type-7 LSA進行路由聚合外,還将對由Type-7 LSA轉化成的Type-5 LSA也進行路由聚合。