一、背景介绍
假设有一个大型企业,各省市都有分公司,总路由与运营网络之间跑bgp,总路由与各省路由器在area 0,每个省的不同地市处在不同的area, 其网络拓扑如下所示,:
以area 1中的R5为例,当配置完ospf之后,R5上除了本区域的1,2类lsa外,还会通过3类lsa学习到area 2的路由,然后还会通过4,5类lsa学习到外部网络的路由及asbr条目,这样R5的路由表就会变得异常庞大,而路由表是存放在路由器的内存中,大量的lsa除了会造成带宽浪费,也会造成本地设备性能下降,基于此,要进行路由条目的优化
二、stub和totally stub区域
1.stub区域
仍是以area 1上的R5为例,仔细观察会发现R5无论是访问外部网络或者是访问其他地市的网络都会通过R3或者R4这两个汇聚层的路由器,作为接入层路由器的R5本身设备性能肯定不如汇聚层设备,另外R5只需要将访问外网的默认路由指向R3,R4即可,没必要保存外网的路由条目,基于此,将area 1配置成stub区域,就能使abr过滤掉4,5类lsa,并由abr向area 1下发一条3类lsa的默认路由,达到简化路由条目的目的
2.totally stub区域
尽管通过stub区域已经过滤掉了4,5类lsa,但不同地市之间的路由(area 1,area 2)还是能相互学习到,为了进一步精简R5的路由条目,让他不用学到其他area的路由信息,此时就可以采用totally stub区域,其作用是让abr除了4,5类lsa外进一步将3类lsa也过滤掉,这样abr只对本区域下发一条默认路由(3类lsa),不同area之间不会相互学习,以此达到精简条目的目的
3.小结
- stub区域的abr过滤掉4,5类lsa,并下发一条3类lsa的默认路由,即5类转3类lsa
- totally stub区域是在stub区域的基础上让abr进一步过滤掉area之间的3类lsa,只保留一条3类lsa的默认路由
- stub区域或者totally stub区域都不允许进行路由再发布
三、nssa区域和totally nssa区域
1.nssa区域
仍以上图为例,但在有的时候,不管是出于什么需求,就是需要area 1发布路由,同时又想实现向stub一样精简路由条目的目的,此时就需要将area 1设置为nssa区域。nssa全称not-so-stub area,它的具备了stub区域的功能让abr过滤掉4,5类lsa外还允许该区域进行路由重发布,发布的路由以7类lsa的方式在nssa区域中泛洪,而7类lsa是不能够在nssa以外区域泛洪,为了让其他区域学习到这条外部路由,nssa区域的abr会将7类lsa转变成5类lsa注入到area 0中,此时就可以在所有as域内泛洪
2.totally nssa区域
类似于totally stub,totally nssa也是在nssa基础上让arb过滤掉其他区域的3类lsa,此处不再赘述
3.小结
- nssa区域的abr过滤掉4,5类lsa,并下发一条7类lsa的默认路由,即5类转7类lsa,且7类lsa不允许在除nssa外的其他区域泛洪
- totally stub区域是在stub区域的基础上让abr进一步过滤掉area之间的3类lsa,除了默认路由的7类lsa外,如果是菊厂的设备,他还会下发一条默认路由的3类lsa
- nssa区域或者totally nssa区域都允许进行路由再发布
四、stub和totally stub实验
1.stub区域
为模拟末节网络,拓扑及信息如下图所示:
假设R1的lo0接口为外部路由,完成基础配置后能看看此时R3上同时有1,2,3,4,5类lsa
<R3>display ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1054 36 80000005 1
Router 3.3.3.3 3.3.3.3 1045 48 80000006 1
Network 23.0.0.3 3.3.3.3 1045 32 80000003 0
Sum-Net 12.0.0.0 2.2.2.2 1116 28 80000002 1
Sum-Asbr 1.1.1.1 2.2.2.2 256 28 80000001 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 12.0.0.0 1.1.1.1 257 36 80000001 1
External 1.1.1.0 1.1.1.1 257 36 80000001 1
要将一个区域配置为stub时,需要在这个内所有的路由器上进行配置
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]stub
[R3]ospf 1
[R3-ospf-1]area 1
[R3-ospf-1-area-0.0.0.1]stub
配置后再到R3上看lsdb会发现4,5类lsa已经由abr(R2)进行了阻挡,同时R2下发了一条3类的默认路由
<R3>display ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 8 36 80000004 1
Router 3.3.3.3 3.3.3.3 7 48 80000005 1
Network 23.0.0.3 3.3.3.3 7 32 80000001 0
Sum-Net 0.0.0.0 2.2.2.2 54 28 80000001 1
Sum-Net 12.0.0.0 2.2.2.2 54 28 80000001 1
2.totally stub区域
配置成为totally stub时,只需要在abr的stub 命令后面加上no-summary选项,area内其他路由器只需要设置为stub区域,原因是只有abr能过滤lsa信息
[R2-ospf-1-area-0.0.0.1]stub no-summary
此时再看R3上的lsdb会发现只剩下一条默认路由的3类lsa,area 0中12.0.0.0/24的3类lsa也被abr阻挡掉了
<R3>display ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 14 36 80000009 1
Router 3.3.3.3 3.3.3.3 11 48 8000000E 1
Network 23.0.0.3 3.3.3.3 11 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 15 28 80000006 1
五、nssa和totally nssa实验
1.nssa区域
拓扑及信息如下图所示:
其中R1与R4的lo0端口模拟外部网络,先将R4的lo0端口用import-route direct引入,此时查看R1的lsdb,能看到1,2,3,4,5类lsa都存在
<R1>display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 831 36 80000007 1
Router 1.1.1.1 1.1.1.1 832 36 80000007 1
Network 12.0.0.2 2.2.2.2 831 32 80000004 0
Sum-Net 23.0.0.0 2.2.2.2 872 28 80000003 1
Sum-Net 34.0.0.0 2.2.2.2 872 28 80000003 2
Sum-Asbr 4.4.4.4 2.2.2.2 872 28 80000003 2
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 4.4.4.0 4.4.4.4 941 36 80000003 1
External 34.0.0.0 4.4.4.4 941 36 80000003 1
此时,将area 1配置为nssa区域
[R1]ospf 1
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]nssa
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]nssa
再去R1上查看lsdb,会发现abr(R2)已经过滤掉了4,5类lsa,并向area 1中下发了一条7类lsa的默认路由
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 70 36 80000004 1
Router 1.1.1.1 1.1.1.1 69 36 80000004 1
Network 12.0.0.1 1.1.1.1 70 32 80000002 0
Sum-Net 23.0.0.0 2.2.2.2 80 28 80000001 1
Sum-Net 34.0.0.0 2.2.2.2 80 28 80000001 2
NSSA 0.0.0.0 2.2.2.2 80 36 80000001 1
<R1>display ospf routing
OSPF Process 1 with Router ID 1.1.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
12.0.0.0/24 1 Transit 12.0.0.1 1.1.1.1 0.0.0.1
23.0.0.0/24 2 Inter-area 12.0.0.2 2.2.2.2 0.0.0.1
34.0.0.0/24 3 Inter-area 12.0.0.2 2.2.2.2 0.0.0.1
Routing for NSSAs
Destination Cost Type Tag NextHop AdvRouter
0.0.0.0/0 1 Type2 1 12.0.0.2 2.2.2.2
Total Nets: 4
Intra Area: 1 Inter Area: 2 ASE: 0 NSSA: 1
但在abr(R2)的area 0上,并不能找到7类lsa,说明7类lsa不能离开nssa区域
<R2>display ospf lsdb
OSPF Process 1 with Router ID 2.2.2.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 489 36 8000000A 1
Router 3.3.3.3 3.3.3.3 657 36 80000009 1
Network 23.0.0.3 3.3.3.3 657 32 80000006 0
Sum-Net 34.0.0.0 3.3.3.3 683 28 80000005 1
Sum-Net 12.0.0.0 2.2.2.2 489 28 80000007 1
Sum-Asbr 4.4.4.4 3.3.3.3 604 28 80000004 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 479 36 80000004 1
Router 1.1.1.1 1.1.1.1 480 36 80000004 1
Network 12.0.0.1 1.1.1.1 481 32 80000002 0
Sum-Net 23.0.0.0 2.2.2.2 489 28 80000001 1
Sum-Net 34.0.0.0 2.2.2.2 489 28 80000001 2
NSSA 0.0.0.0 2.2.2.2 489 36 80000001 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 4.4.4.0 4.4.4.4 606 36 80000004 1
External 34.0.0.0 4.4.4.4 606 36 80000004 1
再将R1上的lo0接口引入,此时再查看R1的lsdb,会发现多了2条nssa记录,其作用分别是:对内将外部的1.1.1.0/24的网段进行宣告,对外将内部的12.0.0.0/24网段进行宣告
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1012 36 80000004 1
Router 1.1.1.1 1.1.1.1 11 36 80000005 1
Network 12.0.0.1 1.1.1.1 1012 32 80000002 0
Sum-Net 23.0.0.0 2.2.2.2 1022 28 80000001 1
Sum-Net 34.0.0.0 2.2.2.2 1022 28 80000001 2
NSSA 12.0.0.0 1.1.1.1 11 36 80000001 1
NSSA 1.1.1.0 1.1.1.1 11 36 80000001 1
NSSA 0.0.0.0 2.2.2.2 1022 36 80000001 1
但之前说过,7类lsa只能在nssa区域中泛洪,他是如何发送给其他区域,此时再看abr(R2)的lsdb,会发现area 1中宣告1.1.1.0/24网段的7类lsa在abr上变成了一个5类lsa,以此在整个as中泛洪
<R2>display ospf lsdb
OSPF Process 1 with Router ID 2.2.2.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1070 36 8000000A 1
Router 3.3.3.3 3.3.3.3 1238 36 80000009 1
Network 23.0.0.3 3.3.3.3 1238 32 80000006 0
Sum-Net 34.0.0.0 3.3.3.3 1264 28 80000005 1
Sum-Net 12.0.0.0 2.2.2.2 1070 28 80000007 1
Sum-Asbr 4.4.4.4 3.3.3.3 1185 28 80000004 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1060 36 80000004 1
Router 1.1.1.1 1.1.1.1 61 36 80000005 1
Network 12.0.0.1 1.1.1.1 1062 32 80000002 0
Sum-Net 23.0.0.0 2.2.2.2 1070 28 80000001 1
Sum-Net 34.0.0.0 2.2.2.2 1070 28 80000001 2
NSSA 0.0.0.0 2.2.2.2 1070 36 80000001 1
NSSA 12.0.0.0 1.1.1.1 61 36 80000001 1
NSSA 1.1.1.0 1.1.1.1 61 36 80000001 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 1.1.1.0 2.2.2.2 60 36 80000001 1
External 4.4.4.0 4.4.4.4 1187 36 80000004 1
External 34.0.0.0 4.4.4.4 1187 36 80000004 1
2.totally nssa区域
类似于stub,也在area 1的abr上添加no-summary选项,该area内其他路由器设置为nssa区域
[R2-ospf-1-area-0.0.0.1]nssa no-summary
此时再查看R1的lsdb会发现,除了原有7类lsa的默认路由外,虽然其他area的3类lsa被abr过滤掉了,但abr此时还会向area 1下发一个默认路由的3类lsa,只有菊厂设备有这种特性
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 13 36 80000007 1
Router 1.1.1.1 1.1.1.1 4 36 8000000B 1
Network 12.0.0.1 1.1.1.1 4 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 24 28 80000001 1
NSSA 12.0.0.0 1.1.1.1 169 36 80000002 1
NSSA 1.1.1.0 1.1.1.1 169 36 80000002 1
NSSA 0.0.0.0 2.2.2.2 14 36 80000003 1
六、总结与6类lsa
总结一下ospf中6种不同的lsa及其泛洪范围,可以总结为下表:
其中totally stub和totally nssa因为要下发一条3类lsa的默认路由,所以no是带星号
area/lsa类型 | 1&2 | 3 | 4 | 5 | 7 |
---|---|---|---|---|---|
area 0 | yes | yes | yes | yes | no |
area N | yes | yes | yes | yes | no |
stub area | yes | yes | no | no | no |
totally stub | yes | no★ | no | no | no |
nssa area | yes | yes | no | no | yes |
totally nssa | yes | no★ | no | no | yes |
最后,说一下6类lsa,其全称group-membership-lsa,是在mospf中用于表示组播成员的,现在已基本被淘汰,不再做介绍
来源:51CTO
作者:qiao645
链接:https://blog.51cto.com/arkling/2469888