題注:
用華為eNSP做OSPF多區域實驗時,發現NSSA區域存在ABR自動導入Type 7default route的問題。記錄下來供探讨學習。
eNSP,所有路由器使用Route模拟。根據華為官方介紹,該模拟器基于ARG3作業系統版本。是以實際行為與真實路由器一緻。
<a href="http://s1.51cto.com/wyfs02/M00/7E/F5/wKiom1cN7aDzJtUkAAB4v28RbzI082.png" target="_blank"></a>
R1、R2、R6、R7構成1個NSSA區域1。其中R7有一條到外網的預設路由(實驗中指向Null0)。
R1:
interface Ethernet0/0/0
ipaddress 16.0.0.1 255.255.255.0
interface Serial0/0/1
link-protocol ppp
ipaddress 12.0.0.1 255.255.255.0
interface LoopBack0
ipaddress 1.1.1.1 255.255.255.255
R2:
interface Serial0/0/0
ipaddress 23.0.0.2 255.255.255.0
ip address 12.0.0.2 255.255.255.0
ipaddress 2.2.2.2 255.255.255.255
R6:
ipaddress 16.0.0.6 255.255.255.0
interface Ethernet0/0/1
ipaddress 67.0.0.6 255.255.255.0
ipaddress 6.6.6.6 255.255.255.255
R7:
ipaddress 67.0.0.7 255.255.255.0
ipaddress 7.7.7.7 255.255.255.255
ospf 100 router-id 1.1.1.1
area0.0.0.1
network 12.0.0.1 0.0.0.0
network 1.1.1.1 0.0.0.0
network 16.0.0.1 0.0.0.0
nssa default-route-advertise
ospf 100 router-id 2.2.2.2
area0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.0.0.2 0.0.0.0
network 12.0.0.2 0.0.0.0
nssa
ospf 100 router-id 6.6.6.6
network 6.6.6.6 0.0.0.0
network 67.0.0.6 0.0.0.0
network 16.0.0.6 0.0.0.0
ospf 100 router-id 7.7.7.7
import-route static type 1
network 7.7.7.7 0.0.0.0
network 67.0.0.7 0.0.0.0
ip route-static0.0.0.0 0.0.0.0 NULL0
(一) ABR的情況
檢視R2(ABR)的路由表:
<R2>display ip routing-table 0.0.0.0
<R2>
注意到ABR本身是沒有預設路由的,但是,檢查ABR的LSDB時:
<R2>disp ospf lsdb nssa 0.0.0.0
OSPF Process 100 with Router ID 2.2.2.2
Area: 0.0.0.0
Link State Database
Area: 0.0.0.1
Type :NSSA
Ls id :0.0.0.0
Adv rtr :2.2.2.2
Ls age :1728
Len :36
Options :None
seq# :80000027
chksum :0x782a
Net mask :0.0.0.0
TOS 0 Metric :1
E type :2
Forwarding Address :0.0.0.0
Tag :1
Priority :Low
檢查R2的鄰居R1,确實有一條來自R2的預設路由:
<R1>display ip routing-table 0.0.0.0
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_NSSA 150 1 D 12.0.0.2 Serial0/0/1
這說明ABR自動生成了一條預設路由NSSA LSA。
(二) ASBR的情況
首先檢查R7(ASBR)的路由表:
<R7>display ip routing-table 0.0.0.0
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 D 0.0.0.0 NULL0
R7本身是有0.0.0.0/0的路由的,但和鄰居交換DBD時卻不進行通告:
R7往R6發送的DBD,隻包含7.7.7.7的Router LSA(Type 1),沒有包含0.0.0.0的NSSA LSA(Type 7):
實際上,R7自己也沒有:
<R7>display ospf lsdb nssa 0.0.0.0
OSPF Process 100 with Router ID 7.7.7.7
Type :NSSA
Lsid :0.0.0.0
Advrtr :2.2.2.2
Lsage :1582
Len :36
Options :None
seq# :80000024
chksum :0x7e27
Netmask :0.0.0.0
TOS0 Metric :1
Etype :2
Forwarding Address :0.0.0.0
Tag :1
Priority :Low
R7的LSDB内,Area1内0.0.0.0/0的NSSA LSA隻有一個,且Adv rtr是2.2.2.2。
這說明ASBR沒有把自己的靜态預設路由import到OSPF NSSA區域内。
根據RFC 3101的注釋:However,a Type-7 defaultLSA originated by an NSSA internal AS boundary router maybe translated into a Type-5 LSA。根據上述描述,R2可以(也可以不)轉換R7的Type-7 defaultLSA到骨幹。如果華為認為環路等因素的考慮,采取不轉換的方式,這個可以了解。但R7生成不了Type-7 LSA default LSA這就有點匪夷所思了。
如果在NSSA區域内ASBR不能生成Type7default LSA的話,即NSSA不能連接配接到Internet,這對于網絡設計而言,尤其是網絡合并的方案設計而言确實有點不便,目前能想到的解決方法,一是改變區域NSSA屬性,使全網重新恢複為transit area;二是僅使用ABR作ASBR,然後向以Type 5 LSA的方式向area 0釋出(NSSA自動生成)。
上述描述若有錯誤,敬請指正。
本文轉自 gole_huang 51CTO部落格,原文連結:http://blog.51cto.com/golehuang/1763428