OSPF协议介绍及配置 (下)
4、特殊區域詳解
?
為了讓我們的講解更加的通俗易懂,我們看上面這個拓撲,這是一個根據客戶業務邏輯結構所涉及的OSPF網絡,共有三個區域(實際上遠遠不止),骨干區域area0為一級行及二級行所部署,三級行部署的是OSPF的常規區域,為了保證網絡的暢通,我們將網絡中的各個角落都宣告進了OSPF,感覺上很爽,但是其實路由器很壓抑,畢竟隨著設備越來越多、網絡前綴越來越多,路由條目勢必逐漸增多,那么路由器就亞歷山大了,畢竟龐大的路由表及LSA在極大地消耗著路由器的資源。
從網絡優化的角度,我們一直在試圖在保證網絡通暢的情況下減少網絡中傳遞的路由條目及LSA的數量,路由匯總就是一種很好的方式,當然,從OSPF的設計規劃角度,我們還有特殊區域可供我們靈活運用,下面來看看OSPF特殊區域是如何幫助我們減少LSA泛洪的。
我們拿area1做參考區域,當area1為常規區域時,區域中會有多少種LSA在泛洪呢?1類是必然有的,由于area1中存在以太網鏈路,因此2類LSA也有。另外其他區域的3類LSA被ABR也都注入進了本區域。再者由于area2的ASBR引入了外部路由(5類LSA),因此LSA5也會被泛洪進area1,當然4類LSA也跟著來了。那么如此一來,area1中就有1、2、3、4、5,共計5種類型的LSA,齊活了。但是仔細一想我們就發現,其實area1作為“葉”區域,沒必要知道外部路由的詳細情況,我只需要知道有那么一條路,讓我到達域外即可,因此,第一種特殊區域:末梢區域 stub area。
實驗環境介紹
?
本次內容講解使用的實驗環境如上:
R1、R2、R3、R4運行OSPF;
設備互聯地址IP如圖所示;
所有設備配置Loopback0口,IP為x.x.x.x/32,其中x為設備編號。例如R1的Loopback0地址為1.1.1.1/32,該地址不network進OSPF,只作為設備OSPF RouterID使用;
R4上配置Loopback1接口,IP子網為44.44.44.0/24,R4將這條直連路由import進OSPF。
?
R1的配置如下(省略接口Ip地址的配置):[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
R2的配置如下(省略接口Ip地址的配置):
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 10.1.12.2 0.0.0.0
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
R3的配置如下(省略接口Ip地址的配置):
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] network 10.1.34.3 0.0.0.0
R4的配置如下(省略接口Ip地址的配置):
[R4] acl 2000
[R4- acl-basic-2000] rule permit source 44.44.44.0 0
[R4- acl-basic-2000] quit
[R4] route-policy RP permit node 10
[R4-route-policy] if-match acl 2000
[R4-route-policy] quit
[R4] ospf 1 router-id 4.4.4.4
[R4-ospf-1] import-route direct route-policy RP
[R4-ospf-1] area 2
[R4-ospf-1-area-0.0.0.1] network 10.1.34.4 0.0.0.0
下面我們開始介紹各種特殊區域:
1.Stub area末梢區域
我們可以通過配置,可以將一個常規區域設置為stub區域。例如下圖,將area1配置為stub area。Stub區域將禁止4、5類LSA進入該區域,同時該區域的ABR將會自動下發一條默認路由(3類LSA)進該區域,以確保區域內訪問區域外的路由通路沒有問題。這可以形象的理解為:“外面的世界再怎么精彩,你不用告訴我細節,只要讓我出去就行了”。這就是stub area的設計思路。當引入大量的外部路由進OSPF,適當的規劃某些區域為stub,可以起到不錯的網絡優化作用,大大的降低路由器需要維護的路由條目數量。
有一點值得注意,你不能將骨干區域area0配置為stub區域,同時,讓一個區域被指定為stub area,區域內將不允許注入外部路由,也就是不能做重發布。
?
在初始情況下R1的路由表如下:
[R1] display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
??????? Destinations : 11?????? Routes : 11
Destination/Mask Proto? Pre? Cost? Flags NextHop???????? Interface
10.1.23.0/24?? OSPF 10?? 2 D?? 10.1.12.2????? GigabitEthernet0/0/0
10.1.34.0/24? OSPF? 10?? 3 D?? 10.1.12.2????? GigabitEthernet0/0/0
?44.44.44.0/24? O_ASE150? 1? D?? 10.1.12.2???????? GigabitEthernet0/0/0
……
我們看到有其他區域的路由,以及外部路由44.44.44.0/24
再看一下R1的LSDB:
[R1] display ospf lsdb?
???????? OSPF Process 1 with Router ID 1.1.1.1
???????????????? Link State Database?
???????????????????????? Area: 0.0.0.1
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?Router??? 2.2.2.2???????? 2.2.2.2?????????? 1723? 36??? 80000005?????? 1
?Router??? 1.1.1.1???????? 1.1.1.1??????????? 116? 36??? 80000007?????? 1
?Network?? 10.1.12.1?????? 1.1.1.1??????????? 116? 32??? 80000004?????? 0
?Sum-Net?? 10.1.23.0?????? 2.2.2.2?????????? 1710? 28??? 80000002?????? 1
?Sum-Net?? 10.1.34.0?????? 2.2.2.2?????????? 1655? 28??? 80000002?????? 2
?Sum-Asbr? 4.4.4.4???????? 2.2.2.2?????????? 1572? 28??? 80000002?????? 2
?
???????????????? AS External Database
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?External? 44.44.44.0????? 4.4.4.4?????????? 1673? 36??? 80000002?????? 1
從上面能看到R1的LSDB里有1、2、3、4、5類LSA。
現在將area1配置為stub area:
R1的配置修改如下:
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1] stub
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
R2的配置修改如下:
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1]?stub
[R2-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
[R2-ospf-1-area-0.0.0.1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
需要注意的是,該命令要配置在stub區域中的所有路由器上,如果某臺路由器沒有配置,那么它將無法去其他stub area router建立鄰接關系。
實現效果:
?
Area1中將不會在有4、5類LSA,也就是area2重發布進來的路由,被ABR(R2)過濾掉了,同時area1中的路由器將獲取到一條ABR(R2)下發的3類LSA的默認路由。
[R1] display ip routing-table
Destination/Mask??? Proto?? Pre? Cost? Flags NextHop???????? Interface
? 0.0.0.0/0?? OSPF?? 10?? 2???? D? 10.1.12.2?????? GigabitEthernet0/0/0
?10.1.23.0/24? OSPF?? 10?? 2??? D? 10.1.12.2?????? GigabitEthernet0/0/0
?10.1.34.0/24? OSPF?? 10?? 3??? D? 10.1.12.2?????? GigabitEthernet0/0/0
我們發現之前的44.44.44.0/24這條外部路由沒有了,另外多了一條OSPF默認路由,這條默認路由是由ABR R2產生的,是3類LSA描述的。這個時候R1還是能ping通44.44.44.44的。
[R1]display ospf lsdb?
???????? OSPF Process 1 with Router ID 1.1.1.1
???????????????? Link State Database?
???????????????????????? Area: 0.0.0.1
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?Router??? 2.2.2.2???????? 2.2.2.2??????????? 106? 36??? 80000005?????? 1
?Router??? 1.1.1.1???????? 1.1.1.1??????????? 109? 36??? 80000004?????? 1
?Network? 10.1.12.2?????? 2.2.2.2??????????? 106? 32??? 80000002?????? 0
?Sum-Net 0.0.0.0???????? 2.2.2.2??????????? 158? 28??? 80000001?????? 1
?Sum-Net? 10.1.23.0?????? 2.2.2.2??????????? 158? 28??? 80000001?????? 1
?Sum-Net? 10.1.34.0?????? 2.2.2.2??????????? 158? 28??? 80000001?????? 2
再看R1的LSDB,我們發現4、5類LSA都沒有了,只剩下1、2、3類LSA。
?
2. Totally stub area完全末梢區域
?
通過將區域規劃為stub area,可以起到一定的網絡優化作用,但是感覺上還不夠徹底,除了外部路由,其他area的路由(LSAs)其實我也沒必要知道太多細節,完全用一條默認路由替代也行嘛,那么你可以將area1配置為完全末梢區域(totally stub area),當一個區域被配置為完全末梢區域,這個區域將:
阻擋3、4、5類LSA進入本區域
區域的ABR自動下發一條3類LSA的默認路由進入本區域
這么一來,area1內路由器收到的LSA將進一步減少,在存儲LSA及進行SPF算法運算的時候,耗費的資源自然也就減少了,另外當區域外拓撲出現變更的時候,對本區域的影響也將變為最小。
與stub區域類似,你無法將骨干區域area0配置為totally stub area,當然,如果一個區域被指定為totally stub area,你將不能在區域中的路由器上做路由重發布動作。
現在將area1配置為Totally stub area:
R1的配置修改如下:
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1]?stub
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
R2(ABR)的配置修改如下:
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1]?stub no-summary
[R2-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
[R2-ospf-1-area-0.0.0.1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
實現效果:
完成上述配置后,area1內的路由器(ABR除外)將只有本區域內的路由,同時都能獲取到ABR下發的3類的默認路由。也就是說其他區域的路由以及外部注入的路由都被ABR阻擋在外,取而代之的是一條默認路由。
[R1] display ospf lsdb?
???????? OSPF Process 1 with Router ID 1.1.1.1
???????????????? Link State Database?
???????????????????????? Area: 0.0.0.1
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?Router??? 2.2.2.2???????? 2.2.2.2???????????? 27? 36??? 80000008?????? 1
?Router??? 1.1.1.1???????? 1.1.1.1???????????? 29? 36??? 80000007?????? 1
?Network?? 10.1.12.1?????? 1.1.1.1???????????? 25? 32??? 80000002?????? 0
?Sum-Net?? 0.0.0.0???????? 2.2.2.2??????????? 572? 28??? 80000001?????? 1
?
3. Not-So-Stubby Area 非完全末梢區域(NSSA)
在前面的知識基礎上,我們已經了解到,在保證網絡連通性的情況下,減少LSA的泛洪以及精簡路由表,我們可以將特定區域配置為末梢區域或完全末梢區域。看下面的拓撲,我們將area2配置為stub,那么,這個區域一來將阻擋來自其他區域的4、5類LSA,同時區域內的路由器禁止重發布外部路由,那么如果此時我期望這個區域保持“阻擋其他區域過來的4、5類LSA”這個特性,同時允許我在區域本地重發布路由呢?
?
例如,假設area2原先是作為一個末梢區域運行的,但突然有一個外部網絡,需要接入到我們這個OSPF網絡中,并且連接在area2中,那么這個時候,為了保證路由的可達,就必須向area2中注入外部路由了,而這又違反了stub area的規則。
這里就引入NSSA(not-so-stubby-area)的概念,中文翻譯過來,可以理解為非完全末梢區域,當你將一個區域配置為NSSA,那么這個區域一來將阻擋骨干區域過來的4、5類LSA,同時允許區域本地import-route外部路由,這些外部路由以一種特殊的LSA類型—7類LSA在NSSA中泛洪,并且7類LSA不允許進入骨干區域或常規區域,NSSA的ABR會負責將7類LSA“轉換”成5類LSA,從而在常規區域中進一步泛洪。上面的“允許區域本地注入”的意思是,NSSA這個區域的路由器配置重發布,如下圖。
?
?現在將area2配置為NSSA
R3的配置修改如下:
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 2
[R3-ospf-1]?nssa
[R3-ospf-1-area-0.0.0.2] network 10.1.34.3 0.0.0.0
[R3-ospf-1-area-0.0.0.2] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0
R4(ASBR)的配置修改如下:
[R4] acl 2000
[R4- acl-basic-2000] rule permit source 44.44.44.0 0
[R4- acl-basic-2000] quit
[R4] route-policy RP permit node 10
[R4-route-policy] if-match acl 2000
[R4-route-policy] quit
[R3] ospf 1 router-id 4.4.4.4
[R3-ospf-1]?import-route direct route-policy RP
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.1] network 10.1.34.4 0.0.0.0
[R3-ospf-1-area-0.0.0.1]?nssa
實現效果:
將area2配置為nssa后,從骨干區域過來的4、5類LSA將無法進入NSSA,也就是說如果area1做了重發布,那么這些重發布的外部路由將無法進入NSSA(這是因為NSSA中不允許出現5類LSA),與此同時,area2允許本地的路由器做重發布動作,重發布進來的路由,以LSA7在NSSA中泛洪,大家在路由表中看到的這些外部路由,標記為“O_NSSA”,而這些7類LSA在“穿越”NSSA的ABR(R3)進入骨干區域之前,由ABR(R3)負責將7類LSA“轉換”成5類LSA。最終area0及area1也都能學習到這些外部路由,只不過,他們路由表中呈現的是“O_ASE”標記。
我們在R3上驗證一下:
[R3] display ip routing-table?
Destination/Mask??? Proto???? Pre?? Cost?? Flags NextHop???????? Interface
10.1.12.0/24? OSPF???? 10??? 2?????? D?? 10.1.23.2??? GigabitEthernet0/0/0
44.44.44.0/24? O_NSSA? 150?? 1??????? D?? 10.1.34.4??? GigabitEthernet0/0/1
?……
我們看到R3學習到了44.44.44.0/24這條外部路由,并且協議類型為“O_NSSA”表示這是一條通過LSA7計算出來的路由。
[R3] display ospf lsdb?
???????? OSPF Process 1 with Router ID 3.3.3.3
???????????????? Link State Database?
???????????????????????? Area: 0.0.0.0
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?Router??? 2.2.2.2???????? 2.2.2.2??????????? 141? 36??? 80000014?????? 1
?Router??? 3.3.3.3???????? 3.3.3.3??????????? 143? 36??? 80000012?????? 1
?Network?? 10.1.23.2?????? 2.2.2.2??????????? 141? 32??? 80000002?????? 0
?Sum-Net 10.1.34.0?????? 3.3.3.3??????????? 151? 28??? 80000001?????? 1
?Sum-Net? 10.1.12.0?????? 2.2.2.2??????????? 160? 28??? 80000006?????? 1
?
???????????????????????? Area: 0.0.0.2
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?Router??? 4.4.4.4???????? 4.4.4.4??????????? 106? 36??? 80000004????? 99
?Router??? 3.3.3.3???????? 3.3.3.3??????????? 110? 36??? 80000003?????? 1
?Network?? 10.1.34.4?????? 4.4.4.4??????????? 111? 32??? 80000001?????? 0
?Sum-Net 10.1.23.0?????? 3.3.3.3??????????? 151? 28??? 80000001?????? 1
?Sum-Net? 10.1.12.0?????? 3.3.3.3??????????? 144? 28??? 80000001?????? 2
?NSSA??? 0.0.0.0???????? 3.3.3.3??????????? 145? 36??? 80000001?????? 1
?NSSA??? 44.44.44.0????? 4.4.4.4??????????? 158? 36??? 80000001?????? 1
?
???????????????? AS External Database
?Type????? LinkState ID??? AdvRouter????????? Age? Len?? Sequence?? Metric
?External? 44.44.44.0????? 3.3.3.3??????????? 106? 36??? 80000001?????? 1
我們看到R3的LSDB中,area2內有R4產生的7類LSA。同時R3自己做了7轉5的動作,將7類LSA轉換成了5類LSA,然后將這條44.44.44.0/24的5類LSA泛洪到骨干區域area0中。
所以在R2上,路由的類型就為O_ASE,這是因為描述44.44.44.0/24外部路由的LSA現在是5類LSA:
[R2] display ip routing-table
Destination/Mask??? Proto???? Pre? Cost??? Flags?? NextHop???????? Interface
?10.1.34.0/24?????? OSPF???? 10?? 2??????? D???? 10.1.23.3?????? GigabitEthernet0/0/1
?44.44.44.0/24????? O_ASE?? 150? 1??????? D???? 10.1.23.3??????? GigabitEthernet0/0/1
……
現在我們再去R4上看一下:
[R4] display ip routing-table?
Destination/Mask??? Proto? Pre? Cost???? Flags NextHop???????? Interface
??????? 0.0.0.0/0?? O_NSSA 150? 1?????????? D? 10.1.34.3?????? GigabitEthernet0/0/0
????? 10.1.12.0/24? OSPF?? 10?? 101???????? D? 10.1.34.3?????? GigabitEthernet0/0/0
????? 10.1.23.0/24? OSPF?? 10?? 100???????? D? 10.1.34.3?????? GigabitEthernet0/0/0
R4的路由表中,有從骨干區域area0傳遞過來的LSA3計算出來的路由:10.1.12.0/24及10.1.23.0/24。同時也有NSSA的ABR(R3)自動下發的7類LSA的默認路由0.0.0.0/0。
那么,既然R4有了ABR下發的默認路由,實際上是能夠到達R1、R2底下的網段的,其實也就不需要其他區域的路由了,因此可以在ABR(R3)上進一步做配置,過濾掉3類LSA,進一步減少NSSA內的LSA數量,R3的配置變更如下:
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 2
[R3-ospf-1] nssa no-summary
[R3-ospf-1-area-0.0.0.2] network 10.1.34.3 0.0.0.0
[R3-ospf-1-area-0.0.0.2] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0?
如此一來,R4的路由表:
[R4] display ip routing-table?
Destination/Mask??? Proto? Pre? Cost???? Flags?? NextHop?????????? Interface
???? 0.0.0.0/0?? O_NSSA? 150?? 1??????? D???? 10.1.34.3?????? GigabitEthernet0/0/0
就只有一條R3下發的7類默認路由了,當然這時候R3訪問全網是能夠通的。
四、OSPF的配置
1、基礎配置
創建OSPF進程,并指定OSPF進程號及RouterID
[Router] ospf [ process-id | router-id router-id ]
其中process-id為進程號,關于進程號的詳細描述,請見下文。另外Router-ID關鍵字指定的是本臺路由器ospf的Router-ID,建議在創建OSPF進程時,采用該方法手工配置Router-ID。
?
在area0中宣告指定接口
[Router-ospf] area area-id
[Router-ospf-area] network ip-address wildcard-mask?
上面的network命令用于在特定接口上激活OSPF。
OSPF進程號(Processor ID):
進程號取值范圍1-65535,只標識ospf在本路由器內的一個進程,這個進程號只是本地有效。在同一臺路由器上可以運行多個不同的OSPF進程,它們之間互不影響,彼此獨立。不同OSPF 進程之間的路由交互相當于不同路由協議之間的路由交互。
進程號是本地有效,若不同的路由器之間OSPF對接,兩臺路由器的OSPF進程號可以不同,這是不會有任何問題的,但是為了保證網絡配置的規范性和標準化,建議還是采用相同的進程號。
通配符掩碼wildcard-mask:
通配符是一個用于決定哪些IP地址位該精確匹配(0代表精確匹配)哪些地址位被忽略的32位數值,通配符掩碼通常用于處理訪問控制列表(ACL)、OSPF和EIGRP等路由協議的網絡通告。下面看一下網絡掩碼netmask和通配符掩碼wildcard-mask的區別:
?
接下去看幾個例子:
?
上面的例子中,我們在network命令后關聯的IP是172.16.1.0,通配符掩碼是0.0.0.255,那么將這兩個數都轉成二進制,其中通配符掩碼位為0的位,必須嚴格匹配,為1的位則無所謂。那么我們就看路由器本地的接口IP,去做對應,如果能匹配上,該接口就激活OSPF,否則就不激活。
?
同樣的拓撲,如果我們將通配符掩碼換成0.0.255.255,則最后兩個八位組無所謂,最終路由器的三個接口都激活了OSPF。
2、示例(單區域)
?
網絡拓撲中包含三臺路由器及兩臺PC;
為了能夠更直觀的觀察到實現現象,每臺路由器使用x.x.x.x的地址作為OSPF的RouterID,其中x為設備編號,例如R1的RouterID為1.1.1.1,以設備的接口編號及IP編址如圖所示。
R1的配置如下:
#完成接口IP的配置
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.12.1 24
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
#創建OSPF進程1,并且設置router-ID為1.1.1.1;在R1的GE0/0/0及GE0/0/1口上激活OSPF:
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
?
R2的配置如下:
#完成接口IP的配置
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.12.2 24
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ip address 192.168.23.2 24
#創建OSPF進程1,并且設置router-ID為2.2.2.2;在R1的GE0/0/0及GE0/0/1口上激活OSPF:
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 192.168.23.0 0.0.0.255
?
R3的配置如下:
#完成接口IP的配置
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 192.168.23.3 24
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ip address 192.168.2.254 24
#創建OSPF進程1,并且設置router-ID為3.3.3.3;在R3的GE0/0/0及GE0/0/1口上激活OSPF
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0] network 192.168.23.0 0.0.0.255
完成配置后我們來做一下查看及驗證,首先看一下OSPF的鄰居關系,這是OSPF路由收斂的基礎,如果鄰居關系的狀態不正確,那么路由肯定是無法正常獲悉的,我們在R1上先做個查看:
[R1] display ospf peer?
?OSPF Process 1 with Router ID 1.1.1.1
?Neighbors?
#以下是R1的G0/0/0口的OSPF鄰居
?Area 0.0.0.0 interface 192.168.12.1(GigabitEthernet0/0/0)'s neighbors
?Router ID: 2.2.2.2????????? Address: 192.168.12.2????
?? State: Full? Mode:Nbr is? Master? Priority: 1
?? DR: 192.168.12.2? BDR: 192.168.12.1? MTU: 0????
?? Dead timer due in 34? sec?
?? Retrans timer interval: 5?
?? Neighbor is up for 01:53:16?????
?? Authentication Sequence: [ 0 ]
使用display ospf peer命令能查看OSPF鄰居關系,上面的輸出就是R1的OSPF鄰居關系,我們看到R1發現了一個OSPF鄰居,這個OSPF鄰居是連接在R1的GE0/0/0口上,且其RouterID為2.2.2.2,接口IP為192.168.12.2。最重要的是狀態為Full,表示R1與R2的OSPF鄰居關系已經為全毗鄰狀態。
同理在R2上應該能看到兩個OSPF鄰居,而在R3上能看到一個OSPF鄰居。
接下去看看路由表。
[R1] display ip routing-table?
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
???????? Destinations : 12?????? Routes : 12???????
Destination/Mask??? ProtoPre? CostFlags NextHop??????????? Interface
192.168.1.0/24? Direct 0??? 0?? D?? 192.168.1.254?? GigabitEthernet0/0/1
192.168.1.254/32? Direct? 0??? 0??? D?? 127.0.0.1?????? GigabitEthernet0/0/1
192.168.1.255/32? Direct? 0??? 0??? D?? 127.0.0.1?????? GigabitEthernet0/0/1
192.168.2.0/24? OSPF10?? 3 D?? 192.168.12.2??? GigabitEthernet0/0/0
192.168.12.0/24? Direct? 0??? 0??? D?? 192.168.12.1??? GigabitEthernet0/0/0
192.168.12.1/32? Direct? 0??? 0??? D?? 127.0.0.1?????? GigabitEthernet0/0/0
192.168.12.255/32? Direct? 0??? 0??? D?? 127.0.0.1?????? GigabitEthernet0/0/0
192.168.23.0/24? OSPF 10?? 2??? D?? 192.168.12.2??? GigabitEthernet0/0/0
255.255.255.255/32? Direct? 0??? 0??? D?? 127.0.0.1?????? InLoopBack0
在上述輸出中,我們看到R1已經學習到兩條OSPF路由,分別是192.168.2.0/24及192.168.23.0/24;同理在R2就R3上也能看到相應的OSPF路由。現在PC1及PC2就能夠互相通信了。
?
3、示例(多區域)
?
網絡中包含三臺路由器及兩臺PC;
為了能夠更直觀的觀察到實現現象,每臺路由器使用x.x.x.x的地址作為OSPF的RouterID,其中x為設備編號,例如R1的RouterID為1.1.1.1;OSPF區域的規劃如圖所示;
?
R1的配置如下:
#完成接口IP的配置
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.12.1 24
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
#在R1的GE0/0/0及GE0/0/1口上激活OSPF
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
?
R2的配置如下:
#完成接口IP的配置
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.12.2 24
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ip address 192.168.23.2 24
#在R2的GE0/0/0及GE0/0/1口上激活OSPF,需留意,R2是ABR,因此要注意激活的OSPF接口所在的區域。
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 192.168.23.0 0.0.0.255
?
R3的配置如下:
#完成接口IP的配置
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 192.168.23.3 24
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ip address 192.168.2.254 24
#在R3的GE0/0/0及GE0/0/1口上激活OSPF
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0] network 192.168.23.0 0.0.0.255
完成配置后,PC1與PC2即可互相ping通。
4、查看及驗證
查看OSPF協議相關運行參數
display ospf brief
查看OSPF鄰居表
display ospf peer??
查看LSDB表?
display ospf lsdb?
查看OSPF路由
display ospf routing
?
轉載于:https://blog.51cto.com/hanjh8/1582018
總結
以上是生活随笔為你收集整理的OSPF协议介绍及配置 (下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cisco无线网络实施方案
- 下一篇: 【Oracle RAC故障分析与处理】