Technorati 标签: CCIE , CCNP , OSPF , NSSA , LSA

特别感谢许名川同学的大力帮助,介绍好的资料给我复习这些相关知识

NSSA区域:

NSSA区域允许一些外部路由通告到OSPF自治系统内部,顾名思义,NSSA,是stub的一个升级网络结果,全称为:Not-So-Stub-Area.不是那么末节的区域。

NSSA同时也保留自治系统区域部分的stub区域的特征。假设一个stub区域中的路由器连接了一个运行其他路由器进程的自治系统,现在这个路由器就变成了ASBR.因为有了ASBR,所以这个区域也就不能再叫stub了,而改名叫NSSA区域。但是如果把这个区域配置为NSSA区域,那么ASBR会产生NSSA外部lsa(type=7),然后泛洪到整个NSSA区域内,这些7类的lsa在NSSA的ABR上面最后会转换成type=5的lsa进行泛红到整个ospf域中。

通过读这里的描述,我自己先做总结,后续再用实验进行验证。

我觉得NSSA区域中,只会存在1/2/3/7类的lsa.绝对不会存在5类的lsa

下面还是用实验来验证一下上面的原理:

clip_p_w_picpath002

现在area0是骨干,R2+R3+R4是NSSA area 10.R4将外部EIGRP路由冲分发到OSPF中产生外部路由注入OSPF区域。

然后再R2/R3/R4的ospf进程下面都配置为:

area 10 nssa

这样area 10的所有路由器就共同组成了一个NSSA区域。

这个时候再来验证一下原理:

在R2/R3/R4上面分别配置area 10 nssa.

那么我们来验证一下在R4/R3上面有哪些lsa在ospf的lsdb中。

clip_p_w_picpath004

在R4上面,其实最后就是NSSA type-7的lsdb.宣告路由器是40.40.40.40,宣告的是外部路由172.16.1/2/3.0,lsa类型是7类的.

下面再看看R3.

clip_p_w_picpath006

实际上就是R4, 40.40.40.40在NSSA区域内泛洪了引入的外部路由,所以R3除了1类,2类,3类的lsa,就只有7类从40.40.40.40传递过来的.

然后最后在R2上面,这个ABR,可以看到相关的lsdb.

clip_p_w_picpath008

R2这个ABR也收到了R4这个ASBR发送过来的type-7的NSSA 外部lsa,但是也同时向非nssa区域扩散5类的lsa,可以注意到,到5类的时候,实际上宣告路由器已经发生了变化。变成了20.20.20.20.

根据原理,R2这个ABR要将7类lsa转换成5类的lsa然后在非NSSA区域内进行泛洪。

所以最终在R1上面,应该只有1/2/3/5类的lsa

我们来确认一下:

clip_p_w_picpath010

这里可以看到R1上面,确实符合原理上面,除了1/2/3类的lsa,还有5类的lsa,通过R2这个ABR传递过来的。

最后总结一下就是:

clip_p_w_picpath012

完全NSSA区域:

和NSSA区域类似,完全NSSA区域允许一些外部路由通告到ospf自制系统内部,而同时保留自治系统区域部分的完全stub区域的特征。该区域的ASBR会产生NSSA 外部LSA(type=7),然后再区域内泛洪并通过该区域的的ABR将7类lsa转换成5类lsa然后在其他所有区域进行泛洪.

同时,该区域的ABR也会产生一条默认的缺省路由0.0.0.0传播到区域内,所有区域见的路由都必须通过ABR才能到达.

通过读这里的描述,我自己先做总结,后续再用实验进行验证。

我觉得完全NSSA区域中,只会存在1/2/7类的lsa.绝对不会存在5类和3类的lsa,最后ABR再向该区域的所有路由器通告一个默认路由,下一跳是ABR自己,要到区域间的路由都要通过ABR进行转发。

这里实际上也就是no-summary的作用,和totally stub区域功能一样。只是3类的lsa由一条0.0.0.0,然后目的ID是ABR的id来替代。

在学习完全nssa区域,需要和NSSA的数据库进行对比。

配置方面,我们在R2 ABR上面配置:

clip_p_w_picpath014

这里已经看到了区别。

这就是totally NSSA和NSSA的区别,少了3类的lsa.

NSSA区域和第七类LSA:

NSSA区域是ospf协议中定义的一类特殊的区域,NSSA区域是stub区域概念的延伸,它保留了stub区域的特性,ABR不会将5类的lsa引入到nssa区域内部进行传播,同时NSSA区域允许少量的外部路由通过本区域的ASBR通告进来,ASBR将会为这些外部路由生成第七类的LSA在区域内进行传播,第七类lsa的传播区域仅仅限于在NSSA区域内,ABR会把接收到的type7lsa转换为5类在其他所有ospf区域进行泛洪。

这里还有一个问题比较有意思,就是在一些特定的场合因为配置错误可以形成环路.

clip_p_w_picpath016

呵呵,这个实验比较好验证。

首先,在R2的ospf部分配置为:

clip_p_w_picpath018

R4的相关路由配置为:

clip_p_w_picpath020

注意,这里设置默认路由,但是一定要让默认路由注入到你的路由表中,否则是不会产生环路的,当然我这里是实验环境,所以从新在R4上面起了一个loopback4,ip address 5.5.5.5.6,这样接口up,自然show ip route就可以看到一个默认路由出口是5.5.5.5了。

现在我们根据图中的注释来进行验证,在R3上面,应该是会受到3类的缺省lsa和7类的缺省lsa。

clip_p_w_picpath022

所以在R3上面如果查看ip route路由表,可以看到只有一个默认路由,出口是ABR R2:

clip_p_w_picpath024

而在R2上面,会受到R4发送过来的7类缺省lsa:

clip_p_w_picpath026

然后再看看路由表:

clip_p_w_picpath028

最后形成的环路就会在R2和R3之间不停得循环.....直到TTL耗尽.对于对于网络实际上都可以理解为一种***了。

现在在R3上面随便ping一个不存在的地址:

clip_p_w_picpath030

实际上这里环路已经产生了....

当然还有很多细小的知识点,我这里只是复习大体框架。

又找到了一些很有意思的题目可以让我们开展大脑风暴:

================================================================================

问题一:

在一个NSSA区域,如果有两个ABR,它们都会将type-7lsa转换成type 5 LSA吗?为什么?

 

 

关于问题一,答案肯定是否,如果两个ABR都产生默认路由给NSSA区域内的路由器,那到时候如果不能找到明细路由,该走哪条默认路由呢?还是负载均衡?显然都是不合理的。

所以当一个NSSA区域中有2ABR,那么按照RFC3101 OSPF NSSA option的规定,只有最大的router-IDABR会负责将type-7lsa转换为type5lsa.