說到缺省路由,很多人認為通過手工靜態配置的目的網段和掩碼都是0的路由就是缺省路由。其實不然,除了上述缺省路由之外,很多情況下通過動態路由協議也可以生成缺省路由。缺省路由以其簡單易用的特點在網絡中有大量的應用,特別是應用在中小型企業網絡的出口路由器上。應用缺省路由可以大大減小路由表項的規模,減小維護壓力。然而缺省路由又是網絡規划的難點,特別是當使用動態路由協產生缺省路由的時候, 一不小心就會產生次優路由或者環路,業務上表現為延時大或者轉發不通的現象。所以很多網絡管理員對缺省路由總有一種想用又不敢放手去用的心理狀態。這里編者詳細總結一下使用缺省路由的各種注意事項,解答讀者的內心困擾。
初識缺省路由
什么是缺省路由
舉個最常見的例子,我們在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協議動態生成的缺省路由。
<RTA>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 1 Routes : 2
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里面有1、2、3、4、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。