天天看點

路由協定系列之六:OSPF FA位址

路由協定系列之六:OSPF FA位址

△作者:郝健

OSPF中的5類和7類LSA中包含了一個特殊的内容,叫Forwarding Address(以下簡稱FA),FA有什麼用呢?很簡單,OSPF協定在計算路由時總是希望能找到“最優路徑”,但在引入外部路由時,有些情況并不能如其所願,于是FA位址華麗登場,協助OSPF找到“真·最優路徑”。

背景介紹

FA是Forwarding Address(轉發位址)的簡寫。

FA是ASBR通告的TYPE 5 LSA和TYPE 7 LSA中的字段,它的作用是告訴OSPF域内的 路由器如何能夠更快捷地到達LSA 5所通告路由的下一跳位址。以免OSPF内部路由器在MA網絡上以ASBR為下一跳,再由ASBR自己轉發到正确的下一跳,而産生額外的路由,具有避免次優路徑的産生以及防止環路的功能。

路由協定系列之六:OSPF FA位址

當FA為0.0.0.0時,則到達該外部網段的流量會被發往引入這條外部路由的ASBR。而如果FA不為0.0.0.0,則流量會被發往這個轉發位址。

1

背景

沒有FA時:

路由協定系列之六:OSPF FA位址

R2、R3和R4運作OSPF,均部署在Area0中。其中R2和R3的GE0/0/1接口都激活OSPF并建立鄰接關系,但是兩者與外部路由器R1并不建立OSPF鄰接關系。

1、R2配置到達10.1.1.1/32的靜态路由,下一跳為10.1.123.1。

2、R2将靜态路由引入OSPF,産生Type5 LSA在區域内泛洪。

3、R3接收到R2産生的5類LSA,計算出到達10.1.1.1/32的外部路由,并且将路由的下一跳指定為R2(10.1.123.2)。

OSPF域内的路由器如R4到達10.1.1.1/32的路徑是:R4-R3-R2-R1,該路徑是次優路徑的。

有FA時:

路由協定系列之六:OSPF FA位址

R2向OSPF域内通告到達10.1.1.1/32的外部路由時,為對應的Type5 LSA設定FA,值為其自己到達該外部路由的下一跳:10.1.123.1。

當R3收到該LSA後,計算到達10.1.1.1/32的路由時,發現FA為非0,是以它認為到達目标位址10.1.1.1/32的下一跳為FA所指定的位址,即:10.1.123.1。

2

FA的取值

當ASBR引入外部路由時,若Type5 LSA中的FA字段為0,表示路由器認為到達目的網段的資料包應該發往該ASBR;若Type5 LSA中的FA字段不為0,表示路由器認為到達目的網段的資料包應該發往這個FA所辨別的裝置。

當以下條件全部滿足時,FA字段才可以被設定為非0:

1、ASBR在其連接配接外部網絡的接口(外部路由的出接口)上激活了OSPF;

2、該接口沒有被配置為Silent-Interface;

3、該接口的OSPF網絡類型為Broadcast或NBMA;

4、該接口的IP位址在OSPF配置的network指令指定的網段範圍内。

在RFC中規定,到達FA的路由必須是區域内或區域間路由,這樣接收到該外部LSA的路由器才能夠加載該LSA進入路由表。

為什麼要做這樣一個檢查呢。我們知道OSPF是一個無環的鍊路狀态協定,區域内的無環是依靠最短路徑樹來保證,而區域間的無環是依靠非骨幹區域和骨幹區域連接配接來實作,這些方法保證了AS内部路由計算的可靠性。

但是OSPF無法控制AS外部的路由資訊是否可靠,FA本身就是用于轉發到達外部網絡的位址,如果用一個外部路由來疊代查找FA并進行路由計算,那麼很可能會導緻路由問題,是以才有了以上要求。

3

NSSA場景下FA的典型應用

當NSSA區域中有多個ABR時,系統會根據規則自動選擇一個ABR作為轉換器,将Type7 LSA轉換為Type5 LSA,其他ABR不做LSA轉換。

預設情況下,轉換路由器是NSSA區域中Router ID最大的區域邊界路由器(ABR)。

LSA頭部Options字段中的P-bit(Propagate bit)用于告知轉化路由器該條Type7 LSA是否需要轉化為Type5 LSA。隻有P-bit置位并且FA不為0的Type7 LSA才能轉化為Type5 LSA。

區域邊界路由器産生的Type7 LSA預設路由不會置位P-bit(注意:所有的OSPF LSA有相同的LSA頭部,P-bit在LSA頭部中的Options字段)。

路由協定系列之六:OSPF FA位址

如圖所示,如果不考慮FA,由于R3的Router ID比R2大,是以它将執行7轉5的動作,如此一來,R1将認為必須經由ABR(R3)到達目的網絡。這樣,流量便會被引導到低帶寬鍊路,即R1-R3-R4-R5。

引入FA位址後:

R5引入直連外部路由,且将FA設為自己通路目的網段10.1.5.0/24的位址:10.1.45.5。

R3執行Type7 LSA轉換Type5 LSA動作,繼續攜帶FA:10.1.45.5。

R1收到後,會在自己的OSPF路由表中查詢到達這個FA的路由,發現在OSPF路由表中能夠找到比對這個FA的路由,就使用到達這個FA的下一跳位址作為這條外部路由的下一跳位址。

是以,R1最終會通過R1-R2-R4-R5路徑,通路目的網段10.1.5.0/24。

路由協定系列之六:OSPF FA位址

4

組網中需要注意的問題

在組網中可能遇到不同廠家的裝置或者是相同廠家不同版本的裝置,在對FA的處理上可能會存在不同,是以需要在配置規劃中注意一些問題:

1、盡量在ASBR處對外部路由進行聚合;

2、如果不在ASBR處進行路由聚合,那麼進行路由過濾,隻引入希望引入的外部路由;

3、如果ASBR連接配接外部網絡的接口上使能了OSPF,并且該接口連接配接了一個多點可達的網絡,那麼在所有OSPF内的路由器,要可以通過區域内或者區域間路由通路ASBR連接配接外部網絡的接口位址;

4、如果路由器并不存在與ASBR的直接鄰接,并且FA直連可達。為了使FA實作轉發的優化,必須在直連FA的接口也使能OSPF,可以同時将該接口配置為被動接口以減少對網絡的影響。

5

總結

路由協定系列之六:OSPF FA位址

總體來說,FA位址的存在能讓OSPF域内的路由器如何能夠更快捷地到達通告外部路由的下一跳位址,以免内部路由器在廣播網絡上以自己為下一跳路由到自己,自己再轉發到同一廣播網絡上的外部路由域的路由器上,而産生"額外"的一跳,确定最優路徑。

文 /泰克 圖 /網絡

本文為泰克教育原創,未經允許不得轉載

繼續閱讀