1. 程式人生 > >OSPF路由協議之“路由重分發”及“NSSA區域”

OSPF路由協議之“路由重分發”及“NSSA區域”

這一 將在 p s 通知 connect 管理 net image 占用率

一個單一的IP路由協議是管理網絡中IP路由的首選方案。
Cisco IOS能執行多個路由協議,每一個路由協議和該路由協議所服務的網絡屬於同一個自治系統。
Cisco IOS使用路由重分發特性以交換由不同協議創建的路由信息。
一臺路由器上運行多種路由協議並不意味著重分發就會自動進行,重分發必須被配置以後才能進行。
路由重分發通常在那些負責從一個AS學習路由,然後向另一個AS廣播的路由器上進行配置。例如,一臺路由器既運行OSPF又運行RIP,如果OSPF進程被配置為通告由RIP學習到的路由到OSPF AS中,那麽這種做法就可以稱為“重分發RIP”。
現實網絡中的情況是存在多種路由協議的,並且這些網絡要互聯互通,那就必須至少有一臺路由器運行多種路由協議來實現不同網絡中的通信。因此,路由重分發的問題不可避免。
進行路由重分發時,不管是有類地址還是無類地址,都需要考慮每種路由協議的能力及特性,最常考慮的兩個因素是度量值和管理距離。
1、度量值:代表距離,他們用來在尋找路由時確定最優路由。每一種理由算法在產生路由表時都會為每一條通過網絡的路徑產生一個數值(度量值),最小的值表示最優路徑值。度量值的計算可以只考慮路徑的一個特性,但更復雜的度量值是綜合了路徑的多個特性產生的。
一些常用的度量值有跳數、成本、帶寬、時延、負載、可靠性、最大傳輸單元(MTU)等。
OSPF路由協議的度量值為成本,而RIP的度量值為跳數。
2、管理距離:管理距離是指一種路由協議的路由可信度。每一種路由協議按可靠性從高到低依次分配一個信任等級,這個信任等級就是管理距離。對於兩種不同的路由協議到一個目的地的路由信息,路由器首先根據管理距離決定相信那個協議。
下圖為Cisco IOS使用的默認管理距離(這個管理距離也可以理解為優先級,優先級低的優先選擇)
技術分享圖片
重分發到OSPF AS中路由的路徑類型分為兩種:
類型1(E1)的外部路徑和類型2(E2)的外部路徑。它們兩種類型的區別是,計算開銷值的方法不一樣,類型1計算開銷值是這條路由的外部開銷(ASBR指定)加上路由器到達ASBR路由器的路徑開銷之和。類型2的計算方法是值需要考慮外部路由在OSPF外部的開銷,而忽略到達ASBR路由器的內部開銷。
配置路由重分發需要註意以下幾個方面:
1、決定在哪裏添加新的協議
2、確定ASBR
3、決定那個協議在核心,那個協議在邊界
4、決定進行路由重分發的方向
下面的配置就是在RIP和OSPF之間進行重分發的命令實例:
R1(config)#router rip
R1(config-router)#redistribute ospf 1 metric 10
R1(config)#router ospf 1
R1(config-router)#redistribute rip subnets
在這裏,metric:是一個可選的參數,用來指明路由重分發的度量值,在RIP協議中重分發OSPF協議時需要指定metric值,否則在RIP中無法學習到重分發的路由條目。
subnets:表示連其子網一塊宣告。
在以上實例中,由OSPF派生的路由被充分發到了RIP路由中,並且度量值跳數為10.由RIP派生的路由被重分發到OSPF之中,作為類型2的外部路由,並給OSPF定一個開銷為200(如果不指定metric,則默認開銷為20)。
重分發靜態路由時,只需要在OSPF中發布即可:
R1(config)#router ospf 1
R1(config-router)#redistribute static 10 subnets metric-type 2
如果要重分發直連路由,只需要將上方代碼中的“static”改為“connected” 即可。
如果重分發默認路由的話,需要使用“default-information originate”命令,通知OSPF路由器使它成為一個ASBR:
R1(config)#router ospf 1
R1(config-router)#default-information originate

由於OSPF網絡中末梢區域不允許存在ASBR,所以在一臺屬於末梢區域的路由器上配置重分發路由到OSPF區域是無法實現的。
當重分發路由時,如果路由器所屬區域的類型是末梢區域,會有相應的提示出現,所以在配置的時候一定要註意觀察,以免出現類似的問題。提示如下:
技術分享圖片
那麽該如何解決呢:
一是將末梢區域中的路由器都使用命令“no area 1 stub”將末梢區域更改為標準區域,但是,在這個區域中的路由器性能比較差,如果改為標準區域,那麽可能會導致路由器的內存、CPU等資源占用率較高,從而導致轉發緩慢或出現網絡故障。
二則是將該區域配置為非純末梢區域(NSSA)。

非末梢區域允許外部路由通告到OSPF AS外部,而同時保留AS其余部分的末梢區域特征,為了做到這一點,在NSSA區域內的ASBR用始發類型7的LSA來通告那些外部的目的網絡。這些NSSA區域外部的LSA將在整個NSSA區域中進行泛洪,但是會在ABR路由器的地方被阻塞。
NSSA外部LSA通告幾乎和外部LSA通告是相同的。只是不像AS外部LSA通告那樣在整個OSPF AS中進行泛洪,NSSA外部LSA通告僅僅在始發這個NSSA外部LSA通告的非純末梢區域內部進行泛洪,NSSA區域中的ABR路由器可以將LSA7通告轉換為LSA5,並且將LSA泛洪到其他區域中去。
技術分享圖片
如圖所示:
NSSA區域是OSPF RFC的補遺:

  • 定義了特殊的LSA7類型
  • 提供類似stub area 和 totally stubby area 的優點
  • 主要它還可以包含ASBR
    NSSA重分發到OSPF中的路由器也是兩種類型,在NSSA區域的路由表中顯示為N1和N2,當其經過ABR轉換成為LSA5通告後,N1轉換為E1,N2轉換為E2。
    在NSSA區域的路由器上查看路由表,重分發的條目如下:
    技術分享圖片
    經過ABR轉換後,在其他區域顯示到的重分發路由條目如下:
    技術分享圖片
    NSSA的配置很簡單,在需要配置的區域內的路由器上進入OSPF,執行area area-id nssa即可配置為NSSA區域,但是NSSA區域與其他區域重分發路由的通信還是有問題,需要進一步配置,才可正常通信。
    因為當使用area 區域號 nssa命令後,ABR並不通告一條指向ABR的類型3的LSA默認路由,而NSSA區域中又無法泛洪LSA4和LSA5通告,導致NSSA區域中的路由器無法獲得從其他區域重分發的路由條目,最終導致NSSA區域與其他區域不能通信,這時可以使用以下命令生成LSA3的默認路由:
    area area-id default-information-originate
    area area-id nssa no-summary(因為 RIP v2在網絡邊界進行匯總,所以需要關閉自動匯總)

OSPF路由協議之“路由重分發”及“NSSA區域”