說到缺省路由,不少人認爲經過手工靜態配置的目的網段和掩碼都是0的路由就是缺省路由。其實否則,除了上述缺省路由以外,不少狀況下經過動態路由協議也能夠生成缺省路由。缺省路由以其簡單易用的特色在網絡中有大量的應用,特別是應用在中小型企業網絡的出口路由器上。應用缺省路由能夠大大減少路由表項的規模,減少維護壓力。然而缺省路由又是網絡規劃的難點,特別是當使用動態路由協產生缺省路由的時候, 一不當心就會產生次優路由或者環路,業務上表現爲延時大或者轉發不通的現象。因此不少網絡管理員對缺省路由總有一種想用又不敢放手去用的心理狀態。這裏編者詳細總結一下使用缺省路由的各類注意事項,解答讀者的心裏困擾。node
什麼是缺省路由數據庫
舉個最多見的例子,咱們在PC機上配置的默認網關就屬於一種缺省路由, 若是報文的目的地址不能與路由表的任何目的地址相匹配,那麼該報文將選取缺省路由轉發。通常狀況下,對於經常使用的PC機,報文轉發的時候直接轉發至默認網關所指定的IP地址。網絡
缺省路由是一種特殊的路由,在路由表中缺省路由以目的網絡爲0.0.0.0、子網掩碼爲0.0.0.0的形式出現。例如ip route static 0.0.0.0 16 10.1.1.1這條路由就不屬於缺省路由,由於他的網絡掩碼是16,而缺省路由要求目的網段和掩碼都必須是0.0.0.0。併發
缺省路由能夠經過手工方式靜態配置,也能夠經過動態路由協議生成(如OSPF、ISIS等),因此確切的說缺省路由不屬於靜態路由。以下面的路由表項即分別爲靜態配置的缺省路由和經過OSPF協議動態生成的缺省路由。oop
<RTA>display ip routing-table學習
Route Flags: R – relay, D – download to fib測試
——————————————————————————設計
Routing Tables: Public3d
Destinations : 1 Routes : 2router
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 RD 10.1.1.2 GigabitEthernet2/2/21
<RTB>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 18 Routes : 21
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 192.168.2.1 GigabitEthernet0/0/0
使用缺省路由有什麼好處
使用缺省路由能夠大大減少路由表項的規模,減小維護壓力,下降對設備的內存及CPU的消耗。例如在圖1 所示的網絡中,末梢路由器到其餘的路由器只有一條鏈路。這種場景下末梢路由器的路由決策就會變的很是簡單,每一個末梢路由器要想到達其餘的網段,都必須惟一選擇中心路由器做爲下一跳。此時對於末梢路由器來講就不須要明細路由了,一條到達中心路由器的缺省路由就足夠了。
圖1 缺省路由在末梢路由器上應用能夠大大減少路由規模
使用缺省路由帶來的問題
缺省路由的使用有不少的好處,可是同時也帶來了一些問題。一個主要的緣由就是缺省路由其實是一種匯聚路由的極端形式,於是缺省路由也跟匯聚路由同樣形成了路由細節的損失。這裏舉一個極端的例子,例如圖2 所示的環形網絡中,R1上有兩條等價的缺省路由分別指向R2和R8,當R1須要給R7發送數據包的時候,R1其實不知道通過R8走纔是最佳的路徑,因此數據包有可能發往R2而後繞道一圈而後纔到達R7,這樣就繞了很遠一段沒必要要的路徑,業務上就會表現爲有很大的延時等現象。固然,多數網絡不會設計的這麼極端,可是這說明缺省路由忽略了路由細節後帶來的問題,不少缺省路由致使的次優路由問題都是相似的原理。
圖2 缺省路由忽略了路由細節後致使不理想的選路問題
還常常有一些路由環路問題是因爲不當的缺省路由設計形成的。例如圖3 所示的靜態缺省路由的配置,就屬於缺省路由互相指向,造成環路。造成路由環路之後會對業務帶來極大的影響,增長維護負擔。
圖3 靜態配置缺省路由造成環路
正確使用缺省路由可以帶來不少好處,可是缺省路由的使用又是路由規劃設計的難點,這也是爲何路由協議都對缺省路由刮目相看,區別對待的緣由。通常應避免大規模部署靜態默認路由,對於動態路由協議生成的缺省路由也須要特別注意配合各類路由策略避免環路及次優路由的產生。在企業網絡中應用最多的路由協議是OSPF協議和BGP協議,這兩種動態路由協議都可以生成缺省路由,下面的內容裏面詳細介紹一下這兩種路由生成缺省路由的使用注意事項及對應的解決方法。
OSPF缺省路由
OSPF缺省路由有哪些類型
OSPF缺省路由能夠分爲外部缺省路由和內部缺省路由。
外部缺省路由:
外部缺省路由由自治系統邊界路由器(ASBR)發佈的外部缺省ASE LSA(Type5),或者外部缺省NSSA LSA(Type7)計算出來,用來指導自治系統(AS)內路由器進行自治系統外報文的轉發。
內部缺省路由:
內部缺省路由由區域邊界路由器(ABR)發佈的缺省Summary LSA(Type3)計算出來,用來指導區域內路由器進行區域之間報文的轉發。
OSPF缺省路由的發佈原則
OSPF缺省路由的發佈原則概述
這裏首先提問一個問題,如圖4 所示,若是在RTB上靜態配置一條缺省路由,而後在OSPF進程下經過import-route static引入靜態路由,這樣RTA能學習到OSPF缺省路由嗎?
圖4 經過import-route命令不能引入缺省路由
固然不能,若是在路由協議中可以這樣引入缺省路由,很容易造成互指,形成環路。這也是爲何不少動態路由協議對缺省路由區別對待的緣由。
缺省狀況下,普通OSPF區域內的OSPF路由器是不會產生缺省路由的。當網絡中缺省路由是經過其餘路由協議產生時,爲了可以將缺省路由通告到整個OSPF域中,必須在ASBR上手動經過default-route-advertise命令進行配置。
圖5 OSPF缺省路由信息
如圖5 所示,配置完該命令後將會產生一個鏈路狀態ID爲0.0.0.0,網絡掩碼爲0.0.0.0的ASE LSA(5類),而且通告到整個OSPF域中,但前提是該ASBR存在激活的非OSPF缺省路由,不然不會通告缺省路由。
若是在該命令上加上關鍵字always的話,則不管ASBR是否存在激活的非OSPF缺省路由都將在整個OSPF域中通告缺省路由,這將強制缺省路由老是出如今路由表中,因此慎用關鍵字always。這就是強制下發和非強制下發的概念。
OSPF缺省路由的發佈遵循以下原則:
原則一:OSPF設備只有具備對外的出口時,纔可以發佈缺省路由LSA。
對於區域邊界路由器(ABR),一旦失去跟骨幹區域的鏈接(骨幹區域沒有FULL鄰居),那麼就要中止發佈缺省路由。這主要用於解決當區域存在多個出口的ABR時,此時能夠經過別的ABR出口繼續轉發報文。
對於自治系統邊界路由器(ASBR),一旦失去對外的鏈接(例如依賴的外部路由消失),那麼就要中止發佈缺省路由。這主要用於解決當OSPF路由域存在多個出口的ASBR時,能夠經過別的ASBR出口繼續轉發報文。
圖6 ABR失去跟骨幹區域的連接後就中止發佈缺省路由
如圖6 所示的網絡拓撲中,Area1中存在兩個出口ABR設備,假設配置Area1區域爲stub區域,那麼兩個ABR都會給R4下發缺省路由,此時R4有兩條上行的缺省路由。當ABR-2和R3的OSPF鄰居down掉,而ABR-2的接口A仍然處於up狀態的時候,若是ABR-2繼續給R4發佈缺省路由,那麼就會致使R4的部分流量繼續發給ARB-2,這部分流量到ABR-2以後將會被丟棄,進而會致使業務中斷。因此在這種多個出口ABR場景下,一旦ABR失去了跟骨幹區域的鏈接(骨幹區域沒有FULL的OSPF鄰居),那麼就要中止發佈缺省路由。這樣能保證區域內的設備能夠經過別的ABR繼續轉發報文。對於多出口的ASBR也是相似的原理,這裏就再也不贅述了。
原則二:若是OSPF設備已經發布了缺省路由LSA,那麼就不該該再學習其它路由器發佈的相同類型缺省路由。
即路由計算時再也不計算其它路由器發佈的相同類型的缺省路由LSA,但數據庫中存有對應LSA。緣由主要有如下兩點:
本路由器自身已經具備對外的出口,因此不須要學習其它路由器發佈的缺省路由。
若是學習其它路由器發佈的缺省路由,就會造成缺省路由的下一跳相互指向,形成路由環路。
對於經過default-route-advertise命令發佈的缺省路由,華爲設備處理上有一些特殊,能夠經過命令控制是否計算其餘路由器發佈的相同類型的缺省路由,具體以下:
若是OSPF進程下配置的是default-route-advertise,即沒有配置permit-calculate-other參數,也沒有配置always參數。那麼OSPF下發缺省路由遵循以下原則:
本機路由表中必須有激活的非OSPF缺省路由時才生成缺省路由的LSA,而且此時再也不計算本進程來自其餘設備的缺省路由;若是本機不存在激活的非OSPF缺省路由時(這時候天然也不會發布OSPF缺省路由的LSA),設備仍然計算來自於其餘設備的缺省路由。
若是OSPF進程下配置的是default-route-advertise always,那麼OSPF下發缺省路由遵循以下原則:
不管本機是否存在激活的非OSPF缺省路由,都會產生併發佈一個描述缺省路由的LSA,而且設備再也不計算本進程來自其餘設備的缺省路由。
若是OSPF進程下配置的是default-route-advertise permit-calculate-other,那麼OSPF下發缺省路由遵循以下原則:
本機必須存在激活的非OSPF缺省路由時纔會產生併發佈一個缺省路由的ASE LSA,且設備仍然計算來自於其餘設備的缺省路由。
原則三:外部缺省路由的發佈若是要依賴於其它路由,那麼被依賴的路由不能是本進程OSPF學習到的路由。由於外部缺省路由的做用是用於指導報文的域外轉發,而本OSPF路由域的路由的下一跳都指向了域內,不能知足指導報文域外轉發的要求。
特殊區域的缺省路由的發佈原則
因爲OSPF協議劃分了多種不一樣的區域類型,不一樣的區域缺省路由的產生規則有所不一樣,這裏詳細說明一下。咱們經過幾個實驗來詳細講解一下OSPF幾個特殊區域發佈缺省路由的原則,實驗環境以下:
圖7 OSPF特殊區域網絡拓撲
組網如圖7 所示:
全部設備都配置LoopBack0,地址如圖7 所示,該地址不在OSPF內發佈,只做爲OSPFRouter ID使用;
R4上配置LoopBack1接口地址做爲測試網段,在R4上將這個直連路由import進OSPF進程,經過路由策略控制只引入這一條直連路由。
R1的關鍵配置以下:
#
ospf 1 router-id 10.1.1.1
area 0.0.0.1
network 192.168.12.0 0.0.0.255
#
R2的關鍵配置以下:
#
ospf 1 router-id 10.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.1
network 192.168.12.0 0.0.0.255
#
R3的關鍵配置以下:
#
ospf 1 router-id 10.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.2
network 192.168.34.0 0.0.0.255
#
R4的關鍵配置以下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
#
route-policy RP permit node 10
if-match acl 2000
#
不劃分區域的時候,以R1爲例,路由表及LSDB以下:
<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.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.44.44.44/32 O_ASE 150 1 D 192.168.12.2 GigabitEthernet0/0/0
……
能夠看到,此時R1上沒有缺省路由,而且有一條外部路由10.44.44.44/32。
<R1>display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 1428 36 80000004 1
Router 10.1.1.1 10.1.1.1 1436 36 80000004 1
Network 192.168.12.2 10.2.2.2 1428 32 80000002 0
Sum-Net 192.168.23.0 10.2.2.2 1377 28 80000001 1
Sum-Net 192.168.34.0 10.2.2.2 1338 28 80000001 2
Sum-Asbr 10.4.4.4 10.2.2.2 1334 28 80000001 2
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 10.44.44.44 10.4.4.4 1467 36 80000001 1
能夠看到,此時R1的LSDB裏面有一、二、三、四、5類LSA,沒有缺省路由的LSA。
下面根據上述實驗詳細講解一下不一樣特殊區域的缺省路由發佈原則。
1、STUB區域
因爲Stub區域不容許自治系統外部的路由(Type5 LSA)在區域內傳播,因此該區域內的路由器除了ABR外沒有自治系統外部路由,若是它們想到自治系統外部時應該怎麼辦?在STUB區域裏的路由器將本區域內ABR做爲出口,ABR會產生缺省路由0.0.0.0通告給整個STUB區域內的路由器,這樣的話到達自治系統外部的路由能夠經過ABR到達。
把Area1配置了STUB區域以後,ABR會自動產生一條Link ID爲0.0.0.0,網絡掩碼爲0.0.0.0的Summary LSA(3類),而且通告到整個STUB區域內。
R1的配置修改成以下:
#
ospf 1 router-id 10.1.1.1
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub
#
R2的配置修改以下:
#
ospf 1 router-id 10.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub
#
實驗效果:
<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
0.0.0.0/0 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0
10.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
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
192.168.34.0/24 OSPF 10 3 D 192.168.12.2 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
能夠看到,此時R1上外部路由消失了,取而代之的是一條ABR(R2)自動下發的缺省路由,是Type3 LSA描述的。
<R1>display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 1118 36 80000004 1
Router 10.1.1.1 10.1.1.1 1114 36 80000006 1
Network 192.168.12.1 10.1.1.1 1114 32 80000002 0
Sum-Net 0.0.0.0 10.2.2.2 1124 28 80000001 1
Sum-Net 192.168.23.0 10.2.2.2 1124 28 80000001 1
Sum-Net 192.168.34.0 10.2.2.2 1124 28 80000001 2
能夠看到,此時Type5 LSA(External)、Type4 LSA(Sum-Asbr)已經消失,取而代之的是一條ABR(R2)自動下發的缺省路由Type3 LSA
2、徹底STUB區域
Totally Stub區域既不容許自治系統外部的路由(Type5 LSA)在區域內傳播,也不容許區域間路由(Type3 LSA)在區域內傳播。因此在Totally Stub區域裏的路由器要想到別的區域或自治系統外部時應該怎麼辦呢?一樣的,在Totally Stub區域裏的路由器也將本區域內ABR做爲出口,ABR會自動產生缺省路由0.0.0.0通告給整個Totally Stub區域內的路由器,這樣的話到達本區域外部的路由都經過ABR到達就能夠了。
把Area1配置了Totally Stub區域以後,ABR自動會產生一條Link ID爲0.0.0.0,網絡掩碼爲0.0.0.0的Summary LSA(Type3 LSA),而且通告到整個Totally Stub區域內。
如今將Area1配置爲徹底STUB區域。
R1的配置修改以下:
#
ospf 1 router-id 10.1.1.1
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub
#
R2的配置修改以下:
#
ospf 1 router-id 10.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub no-summary
#
實驗效果:
<R1>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0
10.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
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
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
能夠看到,此時R1上外部路由和區域間路由消失了,取而代之的是一條ABR(R2)自動下發的缺省路由,是Type3 LSA描述的。
<R1>display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 42 36 80000007 1
Router 10.1.1.1 10.1.1.1 38 36 8000000D 1
Network 192.168.12.1 10.1.1.1 38 32 80000002 0
Sum-Net 0.0.0.0 10.2.2.2 43 28 80000004 1
能夠看到,此時Type5 LSA(External)、Type4 LSA(Sum-Asbr)、以及描述區域間路由的Type3 LSA都已經消失,取而代之的是一條ABR(R2)自動下發的缺省路由Type3 LSA
3、NSSA區域
NSSA區域容許引入經過本區域的ASBR到達的外部路由,但不容許其餘區域的外部路由ASE LSA(Type5 LSA)在區域內傳播。ABR自動產生一條缺省的NSSA LSA(Type7 LSA),通告到整個NSSA區域內。這樣,除了部分路由經過NSSA的ASBR到達,其它路由均可以經過NSSA的ABR到達。在ASBR上手動經過命令進行配置,使ASBR產生一條缺省的NSSA LSA(Type7 LSA),通告到整個NSSA區域內。這樣,外部路由也能夠經過本區域NSSA的ASBR到達。Type7 LSA缺省路由不會在ABR上轉換成Type5 LSA缺省路由泛洪到整個OSPF域。
如今將Area2區配置成NSSA區域。
R3的配置修改以下:
#
ospf 1 router-id 10.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa
#
R4的配置修改以下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa
#
route-policy RP permit node 10
if-match acl 2000
#
實驗效果:
[R4]display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_NSSA 150 1 D 192.168.34.1 GigabitEthernet0/0/0
10.4.4.4/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.44.44.44/32 Direct 0 0 D 127.0.0.1 LoopBack1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 OSPF 10 3 D 192.168.34.1 GigabitEthernet0/0/0
192.168.23.0/24 OSPF 10 2 D 192.168.34.1 GigabitEthernet0/0/0
192.168.34.0/24 Direct 0 0 D 192.168.34.2 GigabitEthernet0/0/0
192.168.34.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.34.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
能夠看到,R4上有一條缺省路由而且協議類型爲O_NSSA,表示是由Type7 LSA描述的,這條缺省路由是由ABR(R3)自動產生的。
<R4>display ospf lsdb
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 1014 36 80000005 1
Router 10.4.4.4 10.4.4.4 1011 36 80000005 1
Network 192.168.34.2 10.4.4.4 1012 32 80000002 0
Sum-Net 192.168.23.0 10.3.3.3 1074 28 80000001 1
Sum-Net 192.168.12.0 10.3.3.3 1074 28 80000001 2
NSSA 10.44.44.44 10.4.4.4 1053 36 80000001 1
NSSA 0.0.0.0 10.3.3.3 1074 36 80000001 1
能夠看到,R4的LSDB裏面存在一條由R3產生的Type7 LSA,描述了一條缺省路由。
對於NSSA區域的ASBR(R4),手動經過命令進行配置,可使ASBR也產生一條缺省的NSSA LSA(Type7 LSA)。注意在ASBR上只有當路由表中存在缺省路由0.0.0.0/0,纔會產生Type7 LSA缺省路由。
R4的配置修改以下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa default-route-advertise
#
route-policy RP permit node 10
if-match acl 2000
#
ip route-static 0.0.0.0 0.0.0.0 NULL0
//必須路由表中存在缺省路由0.0.0.0/0,纔會產生Type7 LSA缺省路由
#
實驗效果:
<R4>display ospf lsdb
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 1575 36 80000005 1
Router 10.4.4.4 10.4.4.4 1572 36 80000005 1
Network 192.168.34.2 10.4.4.4 1573 32 80000002 0
Sum-Net 192.168.23.0 10.3.3.3 1634 28 80000001 1
Sum-Net 192.168.12.0 10.3.3.3 1634 28 80000001 2
NSSA 0.0.0.0 10.4.4.4 266 36 80000001 1
NSSA 10.44.44.44 10.4.4.4 1613 36 80000001 1
NSSA 0.0.0.0 10.3.3.3 1634 36 80000001 1
能夠看到,此時R4的LSDB裏面存在兩條描述缺省路由的Type7 LSA,一條是ABR(R3)自動產生的,另一條是NSSA區域的ASBR(R4)手動配置nssa default-route-advertise命令之後產生的。
咱們再來看一下此時R2的路由表項及LSDB信息:
<R2>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.2.2.2/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.44.44.44/32 O_ASE 150 1 D 192.168.23.2 GigabitEthernet0/0/1
……
<R2>display ospf lsdb
OSPF Process 1 with Router ID 10.2.2.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 102 36 8000000A 1
Router 10.2.2.2 10.2.2.2 967 36 80000009 1
Network 192.168.23.2 10.3.3.3 961 32 80000007 0
Sum-Net 192.168.34.0 10.3.3.3 102 28 80000007 1
Sum-Net 192.168.12.0 10.2.2.2 657 28 80000007 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 650 36 80000008 1
Router 10.1.1.1 10.1.1.1 648 36 8000000E 1
Network 192.168.12.1 10.1.1.1 648 32 80000003 0
Sum-Net 0.0.0.0 10.2.2.2 651 28 80000005 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 10.44.44.44 10.4.4.4 2895 36 80000005 1
External 10.44.44.44 10.3.3.3 43 36 80000002 1
能夠看到10.44.44.44/32這條路由在Area0區域被標記爲O_ASE路由,表示這條路由在NSSA區域的ABR(R3)進行了Type7 LSA轉換成Type5 LSA;可是R2上並無學習到O_ASE缺省路由,也沒有描述缺省路由的LSA,因此Type7 LSA缺省路由不會在ABR上轉換成Type5 LSA缺省路由泛洪到整個OSPF域,只會在NSSA區域內部泛洪。
4、徹底NSSA區域
Totally NSSA區域既不容許其餘區域的外部路由ASE LSA(Type5 LSA)在區域內傳播,也不容許區域間路由(Type3 LSA)在區域內傳播。區域內的路由器必須經過ABR學到其餘區域的路由。實現方法是配置Totally NSSA區域後,ABR會自動產生缺省的Type3 LSA和Type7 LSA通告到整個Totally NSSA區域內。這樣,自治系統外部路由和區域間路由均可以經過ABR到達。
如今將Area2區域配置成徹底NSSA區域。
R3的配置修改以下:
#
ospf 1 router-id 10.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa no-summary
#
R4的配置修改以下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa
#
route-policy RP permit node 10
if-match acl 2000
#
實驗效果:
<R4>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 192.168.34.1 GigabitEthernet0/0/0
……
<R4>display ospf lsdb
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 223 36 80000007 1
Router 10.4.4.4 10.4.4.4 220 36 8000000B 1
Network 192.168.34.2 10.4.4.4 220 32 80000002 0
Sum-Net 0.0.0.0 10.3.3.3 232 28 80000001 1
NSSA 10.44.44.44 10.4.4.4 1165 36 80000002 1
NSSA 0.0.0.0 10.3.3.3 224 36 80000003 1
能夠看出,R4上存在一條由Type3 LSA描述的缺省路由,可是R4的LSDB裏面存在兩條描述缺省路由的LSA,都是ABR(R3)產生的,一條是Type3 LSA,一條是Type7 LSA。