OSPF轉發地址( Forwarding Address)解析

FA Forwarding Address的簡寫。FAASBR通告的TYPE 5 LSA中的字段,它的作用是告訴OSPF域內的路由器如何能夠更快捷地到達LSA 5所通告路由的下一跳地址。以免OSPF 內部路由器在廣播網絡上以ASBR爲下一跳,再由ASBR自己轉發到正確的下一跳,而產生額外的路由。簡單來說,FA字段的作用類似於BGP協議中的第三方下一跳概念,主要在廣播共享網絡中起作用。FA字段可以爲全0或者非0兩種選擇,有以下幾個規則:


1
、當與引入路由的下一跳關聯(互連)的接口沒有啓動OSPF時,FA設置爲0

例如在上面圖中,R8引入直連接口E1的路由,此接口沒有啓動OSPF,因此TYPE 5 LSA FA字段爲0

2、當下列所有條件均滿足的情況下,TYPE 5 LSAFA字段設置爲非0

1、在ASBR上,與引入外部路由下一跳關聯的接口啓動了OSPF,即位於Network

命令範圍內。

2、在ASBR上,與引入外部路由下一跳關聯的接口不能配置被動接口;

//前兩個規則是確保LSA能夠被通告。

3、在ASBR上,與引入外部路由下一跳關聯的接口配置的OSPF網絡類型不能是P2PP2MP

//確保網絡類型是BroadcastNBMA 的共享網絡。

以上說了FA字段可能設置爲非0,那麼到底是一個什麼值呢?它是數據包應該被路由到的出口的接口地址。並不是loopback接口的IP地址,或者ROUTER ID指示的值什麼的?

1 OSPF協議中FA地址是如何影響外部路由選路的?

上面提到TYPE 5 LSAFA字段要麼爲0,要麼非0。那麼對於路由選路有何影響嗎?

又有哪些注意點呢?

概括起來講就是在計算由TYPE 5 LSA描述的某個外部路由時,會查找生成該LSAASBR,如果不存在這個ASBR的表項,忽略這個LSA

否則,檢查這個LSAFA地址,這個地址就是轉發數據包應該被髮送到的地址。如果FA0,數據包應該被髮送到ASBR;如果FA0,在OSPF路由表中查找到FA地址的表項,而且該表項必須被域內或者域間路由覆蓋,否則不考慮這個LSA
前面賣了這麼多的關子,到底ospf在計算路由時如何參考FA地址?

一句話:如果FA0,根據計算到FA地址的metric,而不是計算到ASBRmetric進行路由優選。

那麼在計算外部路由時又是如何依據它進行選路呢?

1、計算外部路由時,首先檢查通告TYPE 5 LSAASBR是否存在,否則忽略該LSA

2、檢查TYPE 5 LSAFA地址是否爲0。如爲0,說明路由必須經過ASBR轉發,那麼優選到ASBR metric 最短的路徑。當有多個最短路徑時,優選從較大area ID學習到的。

如果FA0,那麼優選到FA地址 metric最短的路徑,而且到FA的路由必須時域內或域間的,否則忽略該表項。

注意以上的優選過程都是在比較了OSPF 域內、域間、外部類型1、外部類型2 四種優先級後,以及網絡前綴長度都相同的情況下進行的。

 

一、Type 5 LSA中的FA地址

在查看Type 5LSA時,注意到其中存在一個FAForwarding Address,轉發地址)的信息。它的作用是什麼呢?

示例:以該網絡拓撲爲例。

 
具體配置如下:
R1

int f0/0
   ip address 192.168.1.1 255.255.255.0
router ospf 1
   network 192.168.1.0 0.0.0.255 area 0

R2

int f0/0
   ip address 192.168.1.2 255.255.255.0
router ospf 1
   network 192.168.1.0 0.0.0.255 area 0
   redistribute rip subnets
router rip
   network 192.168.1.0

R3

int f0/0
   ip address 192.168.1.3 255.255.255.0
int f0/1
   ip address 192.168.2.1 255.255.255.0
router rip
   network 192.168.1.0
   network 192.168.2.0

在查看R2引入外部路由192.168.2.0/24對應產生的Type 5 LSA時,發現其中的FA192.168.1.3

首先我們分析一下OSPF如何計算到達外部路由的?
步驟1R2引入外部路由192.168.2.0/24,產生Type 5 LSA
步驟2R2LSA在擴散到OSPF域中
步驟3R1收到該LSA的信息
步驟4R1計算到達192.168.2.0/24的路由
     
按照正常的邏輯(即LSA中的FA地址爲0.0.0.0時),R1收到的這個LSAR2產生的,因此R1計算到達192.168.2.0/24路由,應該下一跳地址爲R2(即192.168.1.2)。 這樣從R1去往192.168.2.0/24將首先到達R2、在經過R3到達目的地,很明顯這樣的路徑不是最優的。

     
實際上,按照上圖的拓撲中進行的配置,R2產生的192.168.2.0/24對應的Type 5 LSA,其FA地址爲192.168.1.3
  
OSPF中計算路由時,將首先如何到達該FA地址(192.168.1.3),若能夠到達,則將能夠到達該FA地址的下一跳地址作爲外部路由的下一跳地址。
因此我們在R1上的路由表中看到192.168.2.0/24路由的下一跳爲192.168.1.3,這樣的路由是不是更優呢!!

結論1
1
)在OSPF引入外部路由時,若產生的Type 5 LSAFA地址爲0.0.0.0,則其他路由器在計算到達該外部網絡時,將考慮如何到達ASBR(即產生該Type 5 LSA的路由器)來計算出外部路由的下一跳地址。
2
)在OSPF引入外部路由時,若產生的Type 5 LSAFA地址不爲0,則其他路由器在計算到達該外部網絡時,將考慮如何到達該FA地址來計算出外部路由的下一跳地址。

那麼OSPF中產生Type 5 LSA時,什麼時候FA地址不爲0.0.0.0呢?
若同時滿足以下三個條件:
a
)引入的這條外部路由,其對應的出接口啓用了OSPF
b
)引入的這條外部路由,其對應的出接口未設置爲
passive-interface
c
)引入的這條外部路由,其對應的出接口的OSPF網絡類型爲
broadcast
則產生的Type 5 LSA,其FA地址等於該引入的外部路由的下一條地址。


對照上面的拓撲,判斷一下:
R2上將通過RIP學習到的192.168.2.0/24的路由引入,很明顯R2的路由表中192.168.2.0/24的信息如下:
    R     192.168.2.0/24     192.168.1.3     f0/0
  
條件a——R2f0/0口啓用了OSPF,因爲R2network命令包含192.168.1.0 0.0.0.255——滿足
  
條件b——ospf中,R2f0/0口未被配置爲被動接口——滿足
  
條件c——R2f0/0口對應的OSPF網絡類型爲broadcacst——滿足

  
所以R2產生的Type 5 LSA時,其FA地址爲192.168.1.3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章