OSPF轉發地址( Forwarding Address)解析

FA 是Forwarding Address的簡寫。

FA是ASBR通告的TYPE 5 LSA中的字段,它的作用是告訴OSPF域內的路由器如何能夠更快捷地到達LSA 5所通告路由的下一跳地址。以免OSPF內部路由器在廣播網絡上以ASBR爲下一跳,再由ASBR自己轉發到正確的下一跳,而產生額外的路由。簡單來說,FA字段的作用類似於BGP協議中的“第三方下一跳”概念,主要在廣播共享網絡中起作用



FA字段可以爲全0或者非0兩種選擇,有以下幾個規則:


1、當與引入路由的下一跳關聯(互連)的接口沒有啓動OSPF時,FA設置爲0;例如在上面圖中,R1引入直連接口E1的路由,此接口沒有啓動OSPF,因此TYPE 5 的LSA中 FA字段爲0。2、當下列所有條件均滿足的情況下,TYPE 5 LSA中FA字段設置爲非0:1、在ASBR上,與引入外部路由下一跳關聯的接口啓動了OSPF,即位於Network命令範圍內。2、在ASBR上,與引入外部路由下一跳關聯的接口不能配置被動接口;//前兩個規則是確保LSA能夠被通告。3、在ASBR上,與引入外部路由下一跳關聯的接口配置的OSPF網絡類型不能是P2P或P2MP。//確保網絡類型是Broadcast或NBMA的共享網絡

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


1 OSPF協議中FA地址是如何影響外部路由選路的?上面提到TYPE 5 LSA的FA字段要麼爲0,要麼非0。那麼對於路由選路有何影響嗎?又有哪些注意點呢?

概括起來講就是

在計算由TYPE 5 LSA描述的某個外部路由時,會查找生成該LSA的ASBR,如果不存在這個ASBR的表項,忽略這個LSA。否則,檢查這個LSA的FA地址,這個地址就是轉發數據包應該被髮送到的地址。

如果FA爲0,數據包應該被髮送到ASBR;如果FA非0,在OSPF路由表中查找到FA地址的表項,而且該表項必須被域內或者域間路由覆蓋,否則不考慮這個LSA。

前面賣了這麼多的關子,到底ospf在計算路由時如何參考FA地址?一句話:如果FA非0,根據計算到FA地址的metric,而不是計算到ASBR的metric進行路由優選。那麼在計算外部路由時又是如何依據它進行選路呢?1、計算外部路由時,首先檢查通告TYPE 5 LSA的ASBR是否存在,否則忽略該LSA;2、檢查TYPE 5 LSA的FA地址是否爲0。如爲0,說明路由必須經過ASBR轉發,那麼優選到ASBR metric 最短的路徑。當有多個最短路徑時,優選從較大area ID學習到的。如果FA非0,那麼優選到FA地址 metric最短的路徑,而且到FA的路由必須時域內或域間的,否則忽略該表項。注意以上的優選過程都是在比較了OSPF 域內、域間、外部類型1、外部類型2 四種優先級後,以及網絡前綴長度都相同的情況下進行的。 一、Type 5 LSA中的FA地址在查看Type 5的LSA時,注意到其中存在一個FA(Forwarding 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時,發現其中的FA爲192.168.1.3。

首先我們分析一下OSPF如何計算到達外部路由的?
步驟1:R2引入外部路由192.168.2.0/24,產生Type 5 LSA。
步驟2:R2將LSA在擴散到OSPF域中
步驟3:R1收到該LSA的信息
步驟4:R1計算到達192.168.2.0/24的路由
     按照正常的邏輯(即LSA中的FA地址爲0.0.0.0時),R1收到的這個LSA是R2產生的,因此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 LSA的FA地址爲0.0.0.0,則其他路由器在計算到達該外部網絡時,將考慮如何到達ASBR(即產生該Type 5 LSA的路由器)來計算出外部路由的下一跳地址。
2)在OSPF引入外部路由時,若產生的Type 5 LSA的FA地址不爲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)——R2的f0/0口啓用了OSPF,因爲R2的network命令包含192.168.1.0 0.0.0.255——滿足
  條件b)——在ospf中,R2的f0/0口未被配置爲被動接口——滿足
  條件c)——R2的f0/0口對應的OSPF網絡類型爲broadcacst——滿足

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