試問R1上做RIP到OSPF的重分發,redistribute rip subnets metric-type 1 metric 1000,
請問R4上看到R2,R3,R4的Metric分別爲多少?
是1000,還是1010還是1020?顯然你猜錯了。
這要分兩種類型來討論:
第一種:將R1的fa0/0不宣告進OSPF。
第二種:將R1的f0/0宣告進OSPF。
如果不宣告進OSPF,那麼metric=到達ASBR的metric+重分發時的metric=1010。
如果宣告進OSPF,那麼metric=到達Fa的metric+重分發時的metric=1020。
解釋說明:
FA是Forwarding Address的簡寫。FA是ASBR通告的TYPE 5 LSA中的字段,它的作用是告訴OSPF域內的路由器如何能夠更快捷地到達LSA 5所通告路由的下一跳地址。以免OSPF內部路由器在廣播網絡上以ASBR爲下一跳,再由ASBR自己轉發到正確的下一跳,而產生額外的路由。簡單來說,FA字段的作用類似於BGP協議中的“第三方下一跳”概念,主要在廣播共享網絡中起作用。
5類LSAFA字段可以爲全0或者非0兩種選擇,有以下幾個規則:
1、當與引入路由的下一跳關聯(互連)的接口沒有啓動OSPF時,FA設置爲0;
2、當下列所有條件均滿足的情況下,TYPE 5 LSA中FA字段設置爲非0:
1、在ASBR上,與引入外部路由下一跳關聯的接口啓動了OSPF,即位於Network
命令範圍內。
2、在ASBR上,與引入外部路由下一跳關聯的接口不能配置被動接口;
//前兩個規則是確保LSA能夠被通告。
3、在ASBR上,與引入外部路由下一跳關聯的接口配置的OSPF網絡類型不能是P2P或P2MP。
//確保網絡類型是Broadcast或NBMA的共享網絡。
在滿足以上條件後,5類LSA的轉發地址爲連接外部路由下一跳的接口IP。
FR是如何影響OSPF的路由選擇的?
1、計算外部路由時,首先檢查通告TYPE 5 LSA的ASBR是否存在,否則忽略該LSA;
2、檢查TYPE 5 LSA的FA地址是否爲0。如爲0,說明路由必須經過ASBR轉發,那麼優選到ASBR metric最短的路徑。當有多個最短路徑時,優選從較大area ID學習到的。
3、如果FA非0,那麼優選到FA地址 metric最短的路徑。
解釋的很明白了,那麼我們繼續加問幾個問題:
1.R5的lo0 5.5.5.5的FA是什麼(假設R1的f0/0宣告進OSPF)------123.123.123.3
爲連接外部路由的下一跳接口IP
2.E2和E1的區別:
E2僅爲redistribute時重分發的Metric值,默認爲20.
E1爲到達FA的metric值+重分發時的metric值。如果FA爲0.0.0.0則爲到達ASBR的metric值+重分發時的metric值。
3.如果在R3上增加一個環回口2.2.2.2宣告進RIP,那麼R4上關於2.2.2.2的FA是什麼呢?
FA爲0.0.0.0,無論宣告R1fa0/0還是不宣告都是0.0.0.0,路由表中也只有一條而不是負載分擔
4.修改圖:條件和上面的3相同
現在關於R4上2.2.2.2的路由會是什麼情形?
首先對於OSPF拓撲數據庫它們的轉發地址爲0,它們的Metric相同,這樣它們會比較router-id,選擇router-id大的。也就是R4上只有R6一條路由。
然而對於3.3.3.3因爲轉發地址相同,所以R4上會負載分擔,R5也是一樣負載分擔。
再下面一個問題,如果是NSSA會怎麼樣?
首先假設rip重分發進OSPFarea1nssa的轉發地址爲0.0.0.0那麼R2type7totype5時轉發地址不變,那麼也爲0.0.0.0,這個轉發地址爲到達R2還是R3這個ASBR呢?所以7類LSA的轉發地址不可能爲0.0.0.0。
如果R3的fa0/1不宣告進OSPFType-7LSA的轉發地址爲R3的最大的環回口(宣告進OSPF),如果沒有宣告的環回口的話,使用最大的物理接口(起OSPF),否則爲外部路由下一跳地址。
最後總結一下:
5類LSA若同時滿足以下三個條件:
a)引入的這條外部路由,其對應的出接口啓用了OSPF
b)引入的這條外部路由,其對應的出接口未設置爲passive-interface
c)引入的這條外部路由,其對應的出接口的OSPF網絡類型爲broadcast
則產生的Type 5 LSA,其FA地址等於該引入的外部路由的下一跳地址,反之爲0.0.0.0(ASBR)
7類LSA的轉發地址不會爲0.0.0.0,唯一可能爲0.0.0.0的是向OSPF NSSA區域注入默認路由!!!滿足以上三個條件爲外部路由的下一跳地址,反之爲環回口地址。
追加一個問題:如果在NSSA中宣告默認路由,在ABR和ASBR中都宣告一條,那麼會選擇那一條呢?