在一個大型網絡中會出現很多問題,如路由條目過多、LSDB過大、OSPF和其他路由協定如何通信等問題,需要進一步的優化和解決。這次将介紹路由重分發和NSSA區域的概念和配置。
路由重分發及配置
上次介紹了LSA5,可以講OSPF AS外的路由通告到OSPF系統内,這是如何實作的呢?
路由重分發
路由重分發通常在那些負責從一個自治系統學習路由,然後向另一個自治系統廣播的路由器上進行配置。例如:一台路由器既運作OSPF又運作RIP,如果OSPF程序被配置為通告由RIP學到的路由到OSPF自治系統中,那麼這種做法就可以叫“重分發RIP”。
一個單一的IP路由協定是管理網絡中IP路由的首選方案。無論是從配置管理的角度還是容錯管理的角度,每台路由器都被期望運作單種路由協定而不是多種路由協定。然而,顯示網絡的情況是存在多種路由協定的,并且這些網絡要互相連通,那就必須至少有一台路由器運作多種路由協定來實作不同網絡之間的通信。是以,路由器重分發的問題不可避免。
注意:一台路由器上運作多種路由協定并不意味着重分發就會自動進行,重分發必須被配置以後才能進行。
進行路由重分發時,不管是有類路由協定還是無類路由協定,都需要考慮每種路由協定的能力及特性。最常考慮的兩個因素是路徑成本(Metrics)和管理距離(Administrative Distances)。
1. 路徑成本(Metrics)
路徑成本代表距離。它們用來在尋找路由時确定最優路由。每一種路由算法在産生路由表時都會為每一條通過網絡的路徑産生一個數值(路徑成本),最小的值表示最優路徑。路徑成本的計算可以隻考慮路徑的一個特性,但更複雜的路徑成本是綜合了路徑的多個特性産生的。
一些常用的路徑成本有跳數、代價(Cost)、帶寬、時延、負載、可靠性、最大傳輸單元(MTU)等。
OSPF路由協定的路徑成本為Cost,而RIP路由協定的路徑成本為跳數。
2. 管理距離(Administrative Distances)
管理距離是指一種路由協定的路由可信度。每一種路由協定按可靠性從高到低依次配置設定一個信任等級,這個信任等級就叫管理距離。對于兩種不同的路由協定到一個目的地的路由資訊,路由器首先根據管理距離決定相信哪一個協定。Ciso IOS使用的預設管理距離如下表所示:
路由源
預設級别
直連口
靜态路由
1
OSPF
110
RIP
120
未知
255
3. OSPF重分發路由的路徑類型
重分發到OSPF自治系統中路由的路徑類型分為兩種:類型1的外部路徑和類型2的外部路徑。如圖所示:
<a href="http://yangshufan.blog.51cto.com/13004230/1962615" target="_blank"></a>
類型1的外部路徑(Type 1 External Path,E1):是指目的地在OSPF自治系統外部的路徑,表示為E1。當一條外部路由重新配置設定到任何自治系統的時候,它都必須指定一個對那個自治系統中的路由選擇協定有意義的路徑成本。在OSPF協定裡,ASBR路由器的責任是給它們所要通告的外部路由指定一個代價值。對于類型1的外部路徑來說。這個代價值是這條路由的外部代價加上到達ASBR路由器的路徑代價之和。
類型2的外部路徑(Type 2 External Path,E2):也是指目的地在OSPF自治系統外部的路徑,但是在計算外部路由的度量時不再計入到達ASBR路由器的路徑代價。E2的路由類型将提供給網絡工程師一個選擇,可以告訴OSPF協定隻需要考慮外部路由在OSPF外部的代價,而忽略到達ASBR路由器的内部代價。OSPF外部路由預設條件下是類型2的外部路徑,即E2路徑。
路由重分發配置
1.配置路由重分發
在進行路由重分發之前,必須首先注意以下幾個方面。
(1)決定在哪兒添加新的協定
(2)确定自治系統邊界路由器(ASBR)
(3)決定哪個協定在核心,哪個在邊界
(4)決定進行路由重分發的方向
可以使用以下指令重分發路由:
<code>Router(config-router)</code><code># redistribute protocol [metric metric-value] [metric-type type-value] [subnets]</code>
其中,參數表示含義如下:
protocol:路由器要進行路由重分發的源路由協定。主要的值有bgp、eqp、isis、ospf [process-id]、static、connected和rip。其中,static表示重分發靜态路由,connected表示重分發直連路由,ospf [process-id]表示重分發另一個OSPF程序的路由。
metric:是一個可選的參數,用來指明重分發的路由的路徑成本。
metric-type:指定重分發的路由類型。可取1或2兩個值,1即E1,2即E2。預設值是2。
subnets:連其子網一起宣告。
下面的配置代碼是在RIP和OSPF之間進行重分發指令的執行個體:
2
3
4
5
<code>Router(config)</code><code># router rip</code>
<code>Router(config-router)</code><code># redistribute ospf 10 metric 10</code>
<code>Router(config)</code><code># router ospf 1</code>
<code>Router(config-router)</code><code># redistribute rip metric 200 subnets</code>
在這個執行個體中,由OSPF派生的路由被重分發到RIP路由中,并且路徑成本跳數為10。由RIP派生的路由被重分發到OSPF之中,作為類型2的外部路由,并給定一個OSPF代價200(如果不指定metric,則預設的代價值是20)。
注意:在RIP協定中重分發OSPF協定時需要指定metric的值,否則在RIP中無法學到重分發的路由條目。
重分發靜态路由時,隻需要在OSPF協定中釋出即可,配置如下:
<code>Router(config-router)</code><code># redistribute static metric 100 subnets metric-type 2</code>
在這個執行個體中,靜态路由被重分發到OSPF之中,作為類型我的外部路由,并指定一個OSPF代價100。而靜态路由無法重分發OSPF路由,隻能通過再配置靜态路由實作到達OSPF區域。
如果要重分發預設路由的話,需要使用default-information originate指令,和redistribute指令一樣,通過OSPF路由器使它成為一個ASBR,此指令也可以指定被重分發的預設路由的路徑成本,也可以設定OSPF外部路由類型。下面為重分發預設路由的執行個體。
<code>Router(config-router)</code><code># network 192.168.0.0 0.0.0.255 area 0</code>
<code>Router(config-router)</code><code># default-information originate metric 10 metric-type 1</code>
<code>Router(config-router)</code><code># ip route 0.0.0.0 0.0.0.0 10.0.1.1</code>
在這個執行個體中,預設路由被重分發到OSPF之中,作為類型1的外部路由,并給定一個OSPF代價10。
2.路由重分發執行個體
實驗環境
公司有兩家分公司,分别在上海、杭州,總公司在北京。為了提高通路的安全性和實時性,避免出現故障,Benet公司決定租用數字電路,将分公司和總公司的網絡互通,如上圖所示,其中R1為總公司路由器,R2、R5為上海分公司路由器,R3、R4為杭州分公司路由器。按照以下要求配置網絡中的路由器,實作全網互通,并能通路Internet。
公司的要求如下:
網絡便于維護,總公司到各分公司之間使用OSPF協定,上海、杭州分公司内部使用的路由協定不變。上海分公司使用RIP協定,而杭州分公司内部使用靜态路由協定。
所有分公司通路公網都需要通過總公司R1路由器實作
Benet公司的網絡規劃如下:
R1和R2的互聯位址:10.0.0.0/30,R1和R3的互聯位址:10.0.0.4/30,R3和R4的互聯位址:10.0.0.8/30,R2和R5的互聯位址:192.168.100.0/24,R1和ISP的互聯位址:172.16.31.0/30
路由器的Loopback0位址為R1:1.1.1.1/32,R2:2.2.2.2/32,R3:3.3.3.3/32,R4:4.4.4.4/32,并使用此位址為OSPF協定RouterID。
具體步驟:
1. 配置各路由器的接口位址。(略)
2. 配置各路由器的OSPF協定、RIP協定、靜态路由
R1的配置如下:
6
<code>R1(config)</code><code># router ospf 1</code>
<code>R1(config-router)</code><code># network 10.0.0.0 0.0.0.3 area 0</code>
<code>R1(config-router)</code><code># network 10.0.0.4 0.0.0.3 area 0</code>
<code>R1(config-router)</code><code># network 192.168.1.0 0.0.0.255</code>
<code>R1(config)</code><code># ip route 0.0.0.0 0.0.0.0 172.16.31.2</code>
R2的配置如下:
7
<code>R2(config)</code><code># router ospf 1</code>
<code>R2(config-router)</code><code># network 10.0.0.0 0.0.0.3 area 0</code>
<code>R2(config)</code><code># router rip</code>
<code>R2(config-router)</code><code># version 2</code>
<code>R2(config-router)</code><code># no auto-summary</code>
<code>R2(config-router)</code><code># network 192.168.100.0</code>
R3的配置如下:
<code>R3(config)</code><code># ip route 192.168.3.0 255.255.255.0 10.0.0.10</code>
<code>R3(config)</code><code># router ospf 1</code>
<code>R3(config-router)</code><code># network 10.0.0.4 0.0.0.3 area 0</code>
R4的配置如下:
<code>R4(config)</code><code># ip route 0.0.0.0 0.0.0.0 10.0.0.9</code>
R5的配置如下:
<code>R5(config)</code><code># router rip</code>
<code>R5(config-router)</code><code># version 2</code>
<code>R5(config-router)</code><code># no auto-summary</code>
<code>R5(config-router)</code><code># network 192.168.100.0</code>
<code>R5(config-router)</code><code># network 192.168.2.0</code>
ISP的配置如下:
<code>ISP(config)</code><code># ip route 0.0.0.0 0.0.0.0 172.16.31.1</code>
3. 配置路由重分發
R1路由器重分發預設路由,配置如下:
<code>R1(config-router)</code><code># default-information originate</code>
R2路由器重分發,配置如下:
<code>R2(config-router)</code><code># redistribute static subnets</code>
<code>R2(config-router)</code><code># redistribute ospf 1 metric 10</code>
R3路由器重分發靜态路由和直連路由,配置如下:
<code>R3(config-router)</code><code># redistribute static subnets</code>
<code>R3(config-router)</code><code># redistribute connected subnets</code>
4. 驗證網絡通信是否正常
經ping指令驗證,網絡通信正常。檢視R2和R5的路由表如下:
從R2的路由表可以看出,已經學到了重分發的路由條目
在R5中,也學到了重分發的路由條目
NSSA區域
由于OSPF網路中末梢區域不允許存在ASBR,是以在一台屬于末梢區域的路由器上配置重分發路由到OSPF區域中是無法實作的。需要将純末梢區域修改為标準區域,配置如下
<code>Router(config-router)</code><code># no area 1 stub</code>
注意:在重分發路由時,如果路由器所屬區域類型是末梢區域時,會有相應的提示出現,請注意觀察,以免出現相似的問題。提示如下:
Warning:Router is currently an ASBR while having only one area which is a stub area
當此區域路由器性能較差時,如果改為标準區域可能會導緻路由器的記憶體、CPU等資源占用率較高,進而導緻轉發緩慢或出現故障。而配置成NSSA将解決這種問題。
非純末梢區域(NSSA)概述
非純末梢區域NSSA允許外部路由通告到OSPF自治系統内部,而同時保留自治系統其餘部分的末梢區域特征。為了做到這一點,在NSSA區域内的ASBR将始發類型7的LSA來通告那些外部的目的網絡。這些NSSA區域外部的LSA将在整個NSSA區域中進行泛洪,但是會在ABR路由器的地方被阻塞。
LSA 7(NNSA External LSA,NSSA外部LSA):是指在非純末梢區域(Not-So-Stubby Area,NSSA)内始發于ASBR路由器的LSA通告。可以通告指令show ip ospf database nssa-external來顯示NSSA 外部LSA通告的資訊。
NNSA外部LSA通告幾乎和自治系統外部LSA通告時相同的。隻是不像自治系統外部LSA通告那樣在整個OSPF自治系統内進行泛洪,NSSA外部LSA通告僅僅在始發這個NSSA外部LSA通告的非純末梢區域内部進行泛洪。NNSA區域中的ABR路由器可以将類型7的LSA裝換成為類型5的LSA,并且将此LSA泛洪到其他的區域中去。
同樣,NSSA重分發到OSPF中的路由也是兩種類型,在NNSA區域的路由表中顯示為N1和N2,當其經過ABR裝換成為LSA5後,N1轉換成為E1,N2轉換成為E2。
配置NSSA區域
配置指令如下:
<code>Router(config-router)</code><code># area area-id nssa [no-summary]</code>
其中,area-id:将要配置為NSSA的區域号;no-summary:可選參數,在ABR上配置NSSA時如果使用該選項,除了通告一條指向ABR的預設路由的類型3的LSA外,其他的類型3的LSA和類型4的LSA在NSSA區域内都将被阻止。也可以使用指令area area-id nssa default-information-originate。
OSPF協定總結
1. LSA的類型
2. OSPF區域類型
OSPF區域分為骨幹區域、标準區域(非骨幹區域、非末梢區域)、末梢區域、完全末梢區域、NSSA。每一種區域内允許泛洪的LSA類型如下表所示:
* 除了ABR路由器使用一個類型3的LSA通告預設路由。
3. OSPF路由類型的優先級
OSPF定義了四種路徑類型,分别是區域内路徑、區域外路徑、類型1的外部路徑和類型2的外部路徑。OSPF路徑類型的優先級如下所示,1表示最高優先級,而4表示最低優先級。
區域内路徑:
優先級1
區域間路徑:
優先級2
E1外部路徑:
優先級3
E2外部路徑:
優先級4
路由表添加路由條目時,如果目的網段相同,則會選擇優先級高的路由條目添加到路由表中。
本文轉自 楊書凡 51CTO部落格,原文連結:http://blog.51cto.com/yangshufan/1962615,如需轉載請自行聯系原作者