分类: ~~~ IGP ~~~ |
CISCO路由器支持多种区域类型(规则、存根、完全存根以及NSSA区域),区域类型之间的不同表现在区域允许的的LSA类型不同。
在规则区域中,允许所有类型的LSA。其好处就是所有的路由器都有所有的路由信息,因此具有到达目的地的最佳路径。缺点就是,任何区域外的链路失效将引起局部的SPF计算。
在存根区域中,不允许外部的LSA。因此,ABR不产生任何更新。外部LSA用于描述OSPF区域外的目的地。例如,从其他路由协议接收到的路由,比如RIP,以及重分布到OSPF中的路由将被认为是外部的,并将在一个外部LSA中被通告。
但存根区域可以防止区域外部对区域的影响,它们并不阻止区域内对区域的影响。因为仍然允许汇总LSA,所以,其他区域将仍然影响到存根区域。
完全存根区域内存根区域类似,将阻止外部LSA。但是,同存根区域不同的是,完全存根区域不允许汇总LSA。这样其他区域将不影响完全存根区域。
NSSA区域同存根区域类似,但是,它可以将外部路由导入到区域中。区域间的路由为类型7LSA,并被ABR转换为类型5LSA。例如,如果你需要阻止外部LSA进入该区域,但仍然需要向区域外送外部LSA(例如,如果区域中的某个路由器为ASBR),就需要使用NSSA区域。
拓扑图如前一篇文章“区域间和外部路由汇总”
//router a
int e0
int s0
router ospf 64
//router b
int e1/0
int e0/0
int s0
router ospf 64
//router c
int e1/0
int e0/0
int s0
router os 64
//route d
int e0
int s0
router ospf 64
router rip
//router e
int lo0
int lo1
int lo2
int lo3
int lo4
int lo5
int e
router rip
以上为基本配置
//监视和测试配置
如果为规则区域,则:
a# show ip ro
O E2 130.1.0.0 [110/10] via 152.1.2.2 serial 0
O IA 152.1.1.0/24 [110/84] via 152.1.2.2 serial 0
O IA 152.1.3.0/30 [110/84] via 152.1.2.2 serial 0
C 152.1.2.0/30 [110/84] via 152.1.2.2 serial 0
C 192.1.1.0/24 is directly connected ethernet 0
routera# debug ip ospf spf
OSPF detect change in LSA type 5,LSID 130.1.7.255 from 152.1.3.1 area 1
OSPF:SCHEDULE PARTIAL spf TYPE 5 EXTERNAL lsa 130.1.7.255 ADV RTR 152.1.3.1
OSPF:service partial SPF 0/1 /0
OSPF:start partial processing type 5 external LSA 130.1.7.255,mask 255.255.248.0,adv 152.1.3.1,age 3600,seq 0x80000000,metric 16777215,metric-type 1
OSPF:delete LSA id 130.1.7.255. type 5,adv rtr 152.1.3.1 from delete list
将区域1配置为存根区域。存根区域中的任何路由嚣必须配置为该区域的存根。
a# router ospf 64
b# router ospf 64
配置完成后,显示一下A上的路由表。A中不再有到网络130.1.0.0的OSPF外部路由,相反,添加了一个缺省路由。但是,仍然存在两个内部部由,因为存根区域并不阻止内部区域更新。
a# show ip ro
O IA 152.1.1.0/24 [110/84] via 152.1.2.2 serial 0
O IA 152.1.3.0/30 [110/84] via 152.1.2.2 serial 0
C 152.1.2.0/30 [110/84] via 152.1.2.2 serial 0
C 192.1.1.0/24 is directly connected ethernet 0
O*IA 0.0.0.0/0 [110/65] via 152.1.2.2 serial 0
使用debug ip ospf spf启动路由器A上的OSPF SPF调试。现在在路由器D上,关闭连接到路由器E上的以太网接口。下面是路由器A上调试命令的输出,注意,路由器A接收任意LSA类型5的数据包,并没有触发部分SPF
a# debug ip ospf spf
这种调试在A上仍然是启用的,关闭路由器D上的串行接口。下面是该调试命令的输出,注意,A接收一个LSA类型3(汇总LSA)的数据包,并执行一个部分SPF。请记住,在存根区域中,区域间流量仍然存在,这样来自其他区域的影响仍然能够作用到本地区域。
OSPF: detect change in lsa type 3,lsid 152.1.3.0 from 152.1.1.129 area 1
OSPF: schedule partial SPF type 3 id 152.1.3.0 adv rtr 152.1.1.129
OSPF: service partial spf 1/0/0
OSPF: start partial processing summary lsa 152.1.3.0 mask 255.255.255.252 adv 152.1.1.129 age 3600 seq 0x80000003 (area 1)
OSPF: delete lsa id 152.1.3.0 type 3 adv rtr 152.1.1.129 from delete list
记住重要一点,区域中的所有路由器必须是一致的,也就是说,如果一个配置为存根,则必须都配置为存根。也就是通过可选字段中的E位决定的。如果不匹配,路由器将无法形成邻接关系。
使用下列命令将路由器A的区域配置为规则区域
A# router ospf 64
现在使用命令show ip ospf neighbors显示一下路由器A上的OSPF邻居表。下面是该命令的输出,注意,路由器B的邻接关系现在是关闭的。原因上,路由器B上的区域1仍然配置为存根区域,所以,E位不匹配。
a# show ip ospf nei
152.1.1.129 1 DOWN/- 152.1.2.2 SERIAL 0
可以通过路由器A上的调试验证这一点。使用命令debug ip ospf adj启用路由器A上的OSPF 邻接调试。下面是该调试的输出,注意,存根区域的可选位不匹配
a# debug ip ospf adj
OSPF: hello from 152.1.2.2 with mismatched stub/transmit area option bit
最后呈个例子来说明一下如何配置区域以阻止外部LSA扩散。为了阻止其他区域的汇总LSA影响到本地区域,该区域必须配置为完全存根区域。可以在OSPF进程下现添加以下命令。
a# router ospf 64
b# router os 64
显示一下A上的路由表。注意,A中不再有任何的OSPF外部或区域间路由,相反,它只有一个缺省路由指向区域外。
A# SHOW IP RO
O*IA 0.0.0.0 [110/65] VIA 152.1.2.2 serial 0
使用debug ip ospf spf 启用路由器A上的OSPF SPF调试。现在路由器D上,关闭连接到路由器B上的串行接口,下面是路由器A上调试命令的输出,注意,路由器A接收任意LSA类型3的数据包,并且不触发部分SPF。
a# debug ip ospf spf
因为区域3的路由器D是一个ASBR,所以我们无法将区域2配置为存根区域。如果你尝试将区域2配置为存根区域,将收到下列错误。因为路由器D是区域2的ASBR,所以根据定义可知,它不能够在存根区域中。
d# router os 64
OSPF: stub command is invaild when it is ASBR
要克服这个限制,OSPF使用一种称为NSSA区域的特殊区域类型。NSSA区域同OSPF存根区域类似,但它具有将AS外部路由导入NSSA区域的能力。要将区域2配置为NSSA存根区域类型,可以使用下列命令。
d# router os 64
c# router os 64
显示路由器C上的路由表,下面是该命令的输出。注意,网络130.1.0.0作为N2-OSPF外部类型2路由被学习到。
c# show ip ro
O N2 130.1.0.0 [110/10] VIA 152.1.3.1 SERIAL 0
N2:nssa external type 2
N1:nssa external type 1
补充:广播式和点到点式 hello 10 40
debug ip ospf packets
OSPF: rcv. v:2 t:1 l:48 rid:193.1.1.2 aid:0.0.0.0 chk 3437 aut:0
v:OSPF版本
t: OSPF报文类型
l: 报文字节长度
rid:router id
aid area id
chk ospf crc
aut: ospf 认证类型 0 不认证 1 简单口令 2 MD5
auk: OSPF认证密钥
keyid MD5认证密钥
seq:序列号
前一篇:区域间和外部路由汇总
后一篇:EIGRP度量值