Technorati 标签: CCIE, CCNP, OSPF, LSA, 案例

该文档主要针对ospf比较核心的几类LSA做实验进行验证一下来帮助记忆。是OSPF的一个进阶的补充材料。

对于OSPF来说,常用的几类LSA意义比较重大。

先来看看各种LSA的定义吧:

clip_p_w_picpath002

第一类LSA(路由器LSA): 每台路由器都会产生一条一类的LSA,并且一类的LSA只会在区域内传递。

第二类LSA(网络LSA): 只在DR/BDR选举的多路访问网络中产生,点到点或者帧中继没有DR/BDR选举,所以不会产生二类的LSA.

第三类LSA:(网络汇总) 将区域内的LSA汇总和简化,并发往另一个区域,由ABR发送。

第四类LSA:(ASBR汇总LSA):外部路由重分布进来以后由于LSARouter-ID还是ASBR这个时候就需要由ABR告知非ASBR区域的路由器一条LSA,谁是ASBRrouter-idABR发。

第五类LSA:(AS外部LSA):从外部路由重分布进OSPF携带了ASBRRouter-ID,会再所有的OSPF区域内进行传递任何路由器都不能更改他得router-id,ASBR始发。

第七类LSA:(NSSA外部LSA):NSSA区域允许所有ASBR存在,在把外部路由重分发进NSSA区域后,将产生第七类LSA,7类只会在NSSA区域中传递,当药传递到其他的区域时,ABR会将7LSA转换成5类的LSA.

OSPF末节区域:

○末节区域stub area不会传递5LSA

完全末节区域totally stub area不会传递3类和5只通过一条默认路由。

NSSA同末节区域但可以存在ASBR.

Totally NSSA: 同完全末节区域但是可以存在ASBR.

这里会接着上次的文档继续写。上次实际上已经解释了关于OSPF LSA 1-5类。详细请参考:

http://361531.blog.51cto.com/351531/687142

今天要引入的是5类lsa和7类lsa的问题。

如果要解释7类,就必须先说明一种网络类型:NSSA--Not so stub area.

和stub area比较起来,NSSA还不是那种比较彻底的末节区域。stub area就是末节区域,作为连接骨干区域的末节区域,没有任何延伸了。NSSA是在stub的基础上面进行了优化,使得子区域可以当做ospf的区域末节,但是对外的话还是可以接其他类型的网络。所以比较经典的NSSA一般是在末节的ASBR上面还需要重分发外部路由。

见下图:

clip_p_w_picpath004

area 10 作为NSSA区域,R4是ASBR,会重分发外部路由进来。

然后最终在在R1上面形成OE2的路由。那么R1上面收到的是什么类型的LSA呢?

还有是如何传递过来的呢?

问题:

Area 10变为NSSA区域,然后将EIGRP路由重分布到OSPF,观察172.16.0.0的路由是否属于7类的LSA,再去观察当172.16.0.0传递到area 0区域以后,是否会变成5类的LSA?

带着这些问题,先坐实验来验证,然后最后再做总结.

area 10是NSSA区域。

首先我们来说一下NSSA区域的特性。

因为stub区域不允许ASBR存在所以产生了NSSA--Not so stub area.还不是那么末节的区域。

NSSA区域里面,允许ASBR存在,并且可以重分布外部路由进来。

R4会将EIGRP路由重分布到Area 10里面,并且由ASBR R4在本区域内(area10)扩散type-7LSA.R2这个ABR收到了这个通告,就会将7类的LSA转换成5类的LSA,最后在非NSSA区域内进行扩散。

环境搭建好以后,现在来看看结果:

在R4上面:

clip_p_w_picpath006

在R3上面:

clip_p_w_picpath008

在R2上面:

在R2上面,172.16.0.0的路由也是N2的类型。

然后在ospf lsdb中,type-7和type-5都有,但是要注意一下,type-7是由ASBR的R4宣告的。而type-5是20.20.20.20 R2这个ABR宣告出去的。也就是说,ABR收到了type-7的lsa,然后将其转换成type-5的lsa向非asbr区域进行宣告。因为7类的NSSA lsa只能在nssa区域进行宣告。

clip_p_w_picpath010

最后在R1上面查看关于172.16.0.0的情况:

clip_p_w_picpath012

最后总结一下:

clip_p_w_picpath014

还有两个概念一个是default-information-originate,还有一个no-summary.

依旧还是现在的拓扑图:

clip_p_w_picpath016

这里如果R2这个ABR还有一个接口,接到Internet上去。想让Area 10里面的每台路由器都产生一个默认路由指向R2,如果明细路由在路由表中不能匹配的话,那么就认为是internet的业务,直接走默认路由甩到R2上面去,然后通过R2直接做internet出口。

那么在R2上面的配置需要加上default-oraginal information.

clip_p_w_picpath018

这里在R2的ospf进程下面,输入area 10 nssa default-information-originate以后,意思是area 10是nssa区域,然后R2会向area 10的每台路由器通告一个默认路由。

现在我们来看看在R3上面的路由:

clip_p_w_picpath020

在R3上面生成了一条ON2的默认路由,由R2通告过来的,R2作为默认的下一跳的一个默认路由。

R4也一样,不过IGP的下一跳和BGP不一样,是基于路由器来说的。所以R4的下一跳是R3.

clip_p_w_picpath022

这就是产生默认路由的default-information-originate.

当然你可以在R2上的ospf进程中直接配置default-information-originate,让所有的区域都可以通告一条默认路由指向R2.

下面是关于no-summary的用法。

clip_p_w_picpath004[1]

实际上,在R3/R4上面,路由器上面ospf的lsdb有的lsa有:type=1/2/3/7.

而命令no-summary的目的就是让R2不通告给area 10 类型3,汇总lsa。

这实际上就是网络优化的一个手段,首先我们需要想清楚,为什么有那么多种类型的区域,就是为了优化网络,让硬件性能低得设备能排的上用场。所以在做网络优化的时候,可以再进一步在R2上面做no-summary,不通告3类的网络汇总lsa给area10,生成一条默认的。

在没有做no-summary以前,以R3为例:

clip_p_w_picpath024

这里可以看到,type=3的网络汇总lsa,将area 0的1.1.1.0/10.10.10.10/20.20.20.20都通告过来了,通告路由器为R2:20.20.20.20.

然后我们再在R2上面的ospf配置进行一些修改:

clip_p_w_picpath026

然后再来看看R3的ospf lsdb:

clip_p_w_picpath028

对比之前的R3,有三条类型3的lsa,1.1.1.0/20.20.20.20/10.10.10.10,现在变成一条默认的,都从R2通告过来了。

所以R3的路由表随之也比之前少了:

现在将原来的三条路由替换为:O*IA 0.0.0.0/0 [110/2] via 2.1.1.1, 00:00:05, FastEthernet1/1

而对于area 10的所有路由器也只有一条3类的lsa了。是一个极大的优化。

下面一个知识点是整理ospf forward-address,ospfforward-address的作用是什么?(按我的理解,这个知识点用得少知又少,我也是今天才知道的,而且没有实际用途,可能是有些公司面试技术人员时为了装B会问这样的问题吧)

clip_p_w_picpath014[1]

这里我们都知道,R2是abr,会将nssa area 10收到的7类nssa lsa在自己上面进行转换,转换为type=5的lsa在非ASBR区域进行传递。

对于R1来说,R1知道如何到172.16.0.0/16的网络。

clip_p_w_picpath030

这里可以看到,在R1上面,要到172.16.0.0网段,下一跳是R2.但是对于R1还有R2来说,谁是ASBR?

这就是forward address的作用了。

clip_p_w_picpath032

这里是在R1上面show的,forward-address的目的就是让大家知道,这条路由是从哪里发过来的。现在通过forward-address了解到,原来是40.40.40.40发送过来的。

最后的知识点就是stub区域,lsa会如何工作的问题.

仍然还是带到问题来进行验证工作原理:

clip_p_w_picpath034

问题:

在拓扑图中,R4R3直连,R4172.16.0.0网段都networkEIGRP中,然后将EIGRP重分发到ospf进程中,去R1上验证是否能收到5类的lsa,然后再将R1/R2设置为stub area ,再验证能否收到5类的lsa,还有观察R1上面是否多了一条默认路由?

首先area 10与area 0都是普通的ospf区域。

首先在R1上面看看关于R1了解到172.16.0.0网段的手段是:

clip_p_w_picpath036

上面是在R1上面看到的情况,通过show ip ospf database,发现实际上就是R4这个ASBR把172.16.0.0网段进行在所有区域进行类似于泛洪的做法进行扩散了。

也就是说,如果R4上面有10000条路由重分发进来,那么R1这个低端的设备就需要承受10000条路由的学习。对于设备的性能是一个极大的考验。这个时候如果我们将area 10设置为stub区域以后,又会师怎么样的情况呢?

R1的配置:

clip_p_w_picpath038

R2的配置:

clip_p_w_picpath040

最后在R1上面,当做好了stub area以后,再看一次路由表,已经没有那三条OE2的明细路由了,取而代之的是一条默认路由,直接指向ABR R2去。

clip_p_w_picpath042

而再看看R1的ospf数据库:(已经没有从R4扩散过来的type=5外部lsa了)这就是对设备性能的一个优化了。如果有1万条外部路由,现在这台R1就少了10000条type=5的lsa和9999条明细路由。

下面是R1的ospf lsdb:

clip_p_w_picpath044

这也就符合了末节区域的原理:

OSPF末节区域:

○末节区域stub area不会传递5LSA

完全末节区域totally stub area不会传递3类和5只通过一条默认路由。

NSSA同末节区域但可以存在ASBR.

Totally NSSA: 同完全末节区域,但是可以存在ASBR.

在上面的截图中,我们可以看到R1上面实际上还是存在有一些3类的abr发过来的3类的LSA.

如果将图中area 10配置为完全stub区域,那么实际上还可以进行一些优化。

拓扑图依旧:

clip_p_w_picpath034[1]

现在在R2上面再修改一下配置:

clip_p_w_picpath046

这样的话,其实在R1上马上就体现出来效果了。上面我已经看到了。当R2做了area 10 stub以后,R2不会向R1传递5类的外部lsa了。但是3类的网络汇总lsa仍然要传递过来。

现在的需求是连3类的汇总lsa都不要了。

只需要在R2上面设置为area 10 stub no-summary.

现在我们再到R1上看看情况:

clip_p_w_picpath048

现在的R1更加清爽了,3类的summary net lsa,只有一条,就是R2传递过来的一条默认路由。

所有的都往R2甩就可以了。

最后我再做一个总结性的实验,我们可以看看到底做了那么多工作以后,可以如何的节约资源:

如果都是普通区域,那么R1上面的路由条目是:

clip_p_w_picpath050

如果area10是stub区域(不传递5类lsa),那么R1上面的路由条目是:8条

clip_p_w_picpath052

如果area10是totally stub区域(不传递3类和5类LSA),R1上面的路由条目是:4条

clip_p_w_picpath054