文章目錄
前言
在上一篇文章:OSPF(六)OSPF特殊區域之Stub和Totally Stub區域詳解及配置中,我們詳細講解了Stub區域的作用,以及配置,Stub區域消除了四類、五類LSA,Totally Stub區域更是將三類LSA也一併消除,只留下一條缺省的三類LSA。
本文主要介紹OSPF中的另外一種特殊區域:NSSA以及Totally NSSA區域。
Stub和Totally Stub區域存在的問題
如下圖,當RTD和RTA同時連接到某一外部網絡,RTA引入外部路由到OSPF域,RTD所在的Area 1爲減小LSDB規模被設置爲Stub或Totally Stub區域。這時,由於被配置了Stub或Totally Stub區域,RTD所有的數據都將從RTB走。
RTD訪問外部網絡的路徑是“RTD->RTB->RTA->外部網絡”,顯然相對於RTD直接訪問外部網絡而言,這是一條次優路徑。
OSPF規定Stub區域是不能引入外部路由的,這樣可以避免大量外部路由對Stub區域設備資源的消耗。
對於既需要引入外部路由又要避免外部路由帶來的資源消耗的場景,Stub和Totally Stub區域就不能滿足需求了。
所以爲了解決這一問題,我們就有了一個新的特殊區域:NSSA和Totally NSSA區域。
NSSA和Totally NSSA區域
NSSA
OSPF NSSA區域(Not-So-Stubby Area)是在原始OSPF協議標準中新增的一類特殊區域類型。
NSSA區域和Stub區域有許多相似的地方。兩者的差別在於,NSSA區域能夠將自治域外部路由引入並傳播到整個OSPF自治域中,同時又不會學習來自OSPF網絡其它區域的外部路由。
lNSSA LSA(七類LSA):
七類LSA是爲了支持NSSA區域而新增的一種LSA類型,用於描述NSSA區域引入的外部路由信息。
七類LSA由NSSA區域的ASBR產生,其擴散範圍僅限於ASBR所在的NSSA區域。
缺省路由也可以通過七類LSA來產生,用於指導流量流向其它自治域。
七類LSA轉換爲五類LSA:
NSSA區域的ABR收到七類LSA時,會有選擇地將其轉換爲五類LSA,以便將外部路由信息通告到OSPF網絡的其它區域。
NSSA區域有多個ABR時,進行7類LSA與5類LSA轉換的是Router ID最大的ABR。
配置
將Area 1區域設置成NSSA區域,只要將RTB、RTD路由器做配置即可。
命令如下:
RTB:
[RTB]ospf
[RTB-ospf-1]area 1
[RTB-ospf-1-area-0.0.0.1]nssa
RTD:
[RTD]ospf
[RTD-ospf-1]area 1
[RTD-ospf-1-area-0.0.0.1]nssa
查看RTD的LSDB:
發現RTD路由器只包含一類、二類、三類LSA,以及七類LSA:NSSA 192.168.6.0 192.168.4.4 78 36 80000001 1
NSSA 192.168.7.0 192.168.4.4 80 36 80000001 1
NSSA 0.0.0.0 192.168.2.2 259 36 80000001 1
[RTD]dis ospf lsdb
OSPF Process 1 with Router ID 192.168.4.4
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 192.168.4.4 192.168.4.4 70 48 80000008 1
Router 192.168.2.2 192.168.2.2 207 36 80000005 1
Network 192.168.4.4 192.168.4.4 204 32 80000002 0
Sum-Net 192.168.5.0 192.168.2.2 259 28 80000001 3
Sum-Net 192.168.3.0 192.168.2.2 259 28 80000001 2
Sum-Net 192.168.2.0 192.168.2.2 259 28 80000001 1
Sum-Net 192.168.1.0 192.168.2.2 259 28 80000001 2
NSSA 192.168.6.0 192.168.4.4 78 36 80000001 1
NSSA 192.168.7.0 192.168.4.4 80 36 80000001 1
NSSA 0.0.0.0 192.168.2.2 259 36 80000001 1
查看OSPF路由表:
[RTD]dis ospf routing
OSPF Process 1 with Router ID 192.168.4.4
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
192.168.4.0/24 1 Transit 192.168.4.4 192.168.4.4 0.0.0.1
192.168.7.0/24 1 Stub 192.168.7.4 192.168.4.4 0.0.0.1
192.168.1.0/24 3 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
192.168.2.0/24 2 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
192.168.3.0/24 3 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
192.168.5.0/24 4 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
Routing for NSSAs
Destination Cost Type Tag NextHop AdvRouter
0.0.0.0/0 1 Type2 1 192.168.4.2 192.168.2.2
Total Nets: 7
Intra Area: 2 Inter Area: 4 ASE: 0 NSSA: 1
我們還可通過tracert
命令驗證數據路徑,發現現在RTD訪問外部網絡從最優路徑通過(RTD->RTF)
[RTD]tracert 192.168.6.1
traceroute to 192.168.6.1(192.168.6.1), max hops: 30 ,packet length: 40,press
CTRL_C to break
1 192.168.7.6 20 ms 20 ms 20 ms
2 192.168.6.1 10 ms 10 ms 20 ms
Totally NSSA
Totally NSSA與MSSA的區別:
- Totally NSSA不允許三類LSA在本區域內泛洪。(與Stub和Totally Stub的區別相同)
配置
在NSSA區域中的ARB(也就是圖中RTB),追加上no-summary
參數即可。
RTB:
[RTB]ospf
[RTB-ospf-1]area 1
[RTB-ospf-1-area-0.0.0.1]nssa no summary
查看RTD的LSDB:
發現三類LSA彙總成一條缺省LSASum-Net 0.0.0.0 192.168.2.2 49 28 80000001 1
[RTD]dis ospf lsdb
OSPF Process 1 with Router ID 192.168.4.4
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 192.168.4.4 192.168.4.4 5 48 80000014 1
Router 192.168.2.2 192.168.2.2 12 36 80000008 1
Sum-Net 0.0.0.0 192.168.2.2 49 28 80000001 1
NSSA 192.168.6.0 192.168.4.4 78 36 80000001 1
NSSA 192.168.7.0 192.168.4.4 80 36 80000001 1
NSSA 0.0.0.0 192.168.2.2 259 36 80000001 1
整體實驗配置過程及命令
步驟一:搭建拓撲
搭建拓撲,並分配好網段,建議標記下來,以免出錯。
步驟二:配置路由器接口IP地址
根據分配好的網段,配置路由器所有接口的IP地址。以及PC的IP地址。
舉個栗子:
[RTD]
[RTD]interface GigabitEthernet 0/0/0
[RTD-GigabitEthernet0/0/0]ip address 192.168.4.4 24
步驟三:OSPF區域以及鄰居配置
注意:這裏我們分了三個區域:Area 0、Area 1、Area 2。需要在不同的區域下宣告鄰居。
宣告鄰居命令:network [相鄰網段] [反子網掩碼]
舉個栗子:
RTA:
[RTA]ospf
[RTA]ospf 1
[RTA-ospf-1]area 0
[RTA-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[RTA-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[RTA-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
RTB:
[RTB]ospf
[RTB-ospf-1]areo 0
[RTB-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[RTB-ospf-1-area-0.0.0.0]area 1
[RTB-ospf-1-area-0.0.0.1]network 192.168.4.0 0.0.0.255
步驟三:檢測OSPF
配置好了OSPF之後,可以先不着急繼續往下配置,我們可以先檢測一下OSPF是否配置正確。
檢測命令:
- 可以用RTD
ping
RTE查看能否通信 - 查看路由表:
display ip routing-table
- 查看OSPF路由表:
display ospf routing
步驟四:引入外部路由
步驟1
將外部路由用RIP協議進行配置。
RTF:
[RTF]rip
[RTF-rip-1]version 2 //版本2
[RTF-rip-1]network 192.168.6.0
[RTF-rip-1]network 192.168.1.0
[RTF-rip-1]network 192.168.7.0
步驟2
重要!!!
路由引入之前需要在RTF上將192.168.1.0/24、192.168.7.0/24網段用OSPF協議宣告鄰居。
同時將RTA上將192.168.1.0/24網段用RIP宣告。RTD上將192.168.7.0/24網段用RIP宣告。
RTF:
注意OSPF區域的變化
[RTF]ospf
[RTF-ospf-1]a 0
[RTF-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[RTF-ospf-1]a 1
[RTF-ospf-1-area-0.0.0.1]network 192.168.7.0 0.0.0.255
RTA:
[RTA]rip
[RTA-rip-1]v 2
[RTA-rip-1]network 192.168.1.0
RTD:
[RTD]rip
[RTD-rip-1]v 2
[RTD-rip-1]network 192.168.7.0
步驟3
外部路由引入。(詳細解釋可查看文章:OSPF(五)OSPF外部路由
RTA、RTD:
[RTA]ospf
[RTA-ospf-1]import-route rip
RTF:
[RTF]rip
[RTF-rip-1]
[RTF-rip-1]import-route ospf
步驟五:檢測外部路由是否引入成功
檢測命令:
- 可以用RTD
ping
RTE查看能否通信 - 查看路由表:
display ip routing-table
- 查看OSPF路由表:
display ospf routing
步驟六:配置NSSA、Totally NSSA
這部分實驗可對照上文,這裏不再贅述。