OSPF规则、存根、完全存根以及NSSA区域
规则、存根、完全存根以及NSSA区域CISCO路由器区域类型:规则、存根、完全存根以及NSSA区域
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
ip addr 192.1.1.2 255.255.255.0
int s0
ip addr 152.1.2.1 255.255.255.252
router ospf 64
netw 152.1.2.0 0.0.0.255 area 1
//router b
int e1/0
ip addr 152.1.1.129 255.255.255.192
int e0/0
ip addr152.1.1.1 255.255.255.128
int s0
ip addr 152.1.2.2 255.255.255.252
router ospf 64
area 0 range 152.1.1.0 255.255.255.0//把area 0的路由汇总后发布出去
netw 152.1.1.0 0.0.0.255 area 0
netw 152.1.2.0 0.0.0.255 area 1
//router c
int e1/0
ip addr 152.1.1.193 255.255.255.192
int e0/0
ip addr 152.1.1.2 255.255.255.128
int s0
ip addr 152.1.3.2 255.255.255.252
router os 64
area 0 range 152.1.1.0 255.255.255.0//区域路由汇总
netw 152.1.1.0 0.0.0.255 area 0
netw 152.1.3.0 0.0.0.255 area 2
//route d
int e0
ip addr 130.1.4.1 255.255.255.0
int s0
ip addr 152.1.3.1 255.255.255.252
router ospf 64
summary-address 130.1.0.0 255.255.248.0
redistribute rip metric 10 subnets
netw 152.1.3.0 0.0.0.255 area 2
router rip
netw 130.1.0.0
//router e
int lo0
ip addr 130.1.1.1 255.255.255.0
int lo1
ip addr 130.1.2.1 255.255.255.0
int lo2
ip addr 130.1.3.1 255.255.255.0
int lo3
ip addr 130.1.5.1 255.255.255.0
int lo4
ip addr 130.1.6.1 255.255.255.0
int lo5
ip addr 130.1.7.1 255.255.255.0
int e
ip addr 130.1.4.2 255.255.255.0
router rip
netw 130.1.0.0
以上为基本配置
//监视和测试配置
如果为规则区域,则:
a# show ip ro
O E2 130.1.0.0 via 152.1.2.2 serial 0
O IA 152.1.1.0/24 via 152.1.2.2 serial 0
O IA 152.1.3.0/30 via 152.1.2.2 serial 0
C 152.1.2.0/30 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.255ADV 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
OSPFhttp://forum.royaltelecom.cn/editor/images/smilies/default/22.gifelete LSA id 130.1.7.255. type 5,adv rtr 152.1.3.1 from delete list
将区域1配置为存根区域。存根区域中的任何路由嚣必须配置为该区域的存根。
a# router ospf 64
area 1 stub
b# router ospf 64
area 1 stub
配置完成后,显示一下A上的路由表。A中不再有到网络130.1.0.0的OSPF外部路由,相反,添加了一个缺省路由。但是,仍然存在两个内部部由,因为存根区域并不阻止内部区域更新。
a# show ip ro
O IA 152.1.1.0/24 via 152.1.2.2 serial 0
O IA 152.1.3.0/30 via 152.1.2.2 serial 0
C 152.1.2.0/30 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 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
no area 1 stub
现在使用命令show ip ospf neighbors显示一下路由器A上的OSPF邻居表。下面是该命令的输出,注意,路由器B的邻接关系现在是关闭的。原因上,路由器B上的区域1仍然配置为存根区域,所以,E位不匹配。
a#show ip ospf nei
152.1.1.1291DOWN/- 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
area 1 stub no-summary
b# router os 64
area 1 stub no-summary
显示一下A上的路由表。注意,A中不再有任何的OSPF外部或区域间路由,相反,它只有一个缺省路由指向区域外。
A# SHOW IP RO
O*IA0.0.0.0 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
area 2 stub
OSPF: stub command is invaild when it is ASBR
要克服这个限制,OSPF使用一种称为NSSA区域的特殊区域类型。NSSA区域同OSPF存根区域类似,但它具有将AS外部路由导入NSSA区域的能力。要将区域2配置为NSSA存根区域类型,可以使用下列命令。
d# router os 64
area 2 nssa
c# router os 64
area 2 nssa
显示路由器C上的路由表,下面是该命令的输出。注意,网络130.1.0.0作为N2-OSPF外部类型2路由被学习到。
c# show ip ro
O N2130.1.0.0 VIA 152.1.3.1 SERIAL 0
N2:nssa external type 2
N1:nssa external type 1
补充:广播式和点到点式hello 10 40
非广播式和点到多点式helo 30 120
debug ip ospf packets
OSPF: rcv. v:2 t:1 l:48 rid:193.1.1.2aid:0.0.0.0chk 3437aut:0
auk: from serial 0
vhttp://forum.royaltelecom.cn/editor/images/smilies/default/0.gifSPF版本
t:OSPF报文类型
1--hello
2--数据描述 DD
3--链路状态请求LSA
4--链路状态更新LSU
5--链路状态应答LSA
l: 报文字节长度
rid:router id
aid area id
chk ospf crc
aut: ospf 认证类型0 不认证1 简单口令2 MD5
auk:OSPF认证密钥
keyidMD5认证密钥
seq:序列号 感谢楼主分享 谢谢```! 谢谢分享!顶起!
页:
[1]