OSPF特殊区域
认识特殊区域
为了让我们的讲解更加的通俗易懂,我设计了上面这个拓扑,这是一个根据客户业务逻辑结构所涉及的OSPF网络,共有三个区域(实际上远远不止),骨干区域area0为一级行及二级行所运行,三级行运行的是OSPF的常规区域,为了保证网络的畅通,我们将网络中的各个角落都宣告进了OSPF ,感觉上很爽,但是其实路由器很压抑,毕竟随着设备越老越多、网络前缀越来越多,路由条目势必逐渐增多,那么路由器就亚历山大了,毕竟庞大的路由表及LSA在极大地消耗着路由器的资源。
从网络优化的角度,我们一直在试图在保证网络通畅的情况下减少网络中传递的路由条目及LSA的数量,路由汇总就是一种很好的方式,当然,从OSPF的设计规划角度,我们还有特殊区域可供我们灵活运用,下面来看看OSPF特殊区域是如何帮助我们减少LSA泛洪的。
我们拿area1做参考区域,当area1为常规区域时,区域中会有多少种LSA在泛洪呢?1类是必然有的,由于area1中存在MA网络,因此2类LSA也有。其他区域的3类LSA被ABR也都注入进了本区域。另外,由于area2的ASBR引入的外部路由( 5类LSA)也会被泛洪进area1 ,当然4类LSA也跟着来了。那么如此一来,area1中就有1.2、3、4、5,共计5种类型的LSA ,齐活了.但是仔细一想我们就发现,实area1作为“叶”区域,没必要知道外部路由的详细情况,我只需要知道有那么-条路,让我到达域外即可,因此,第一种特殊区域:末梢区域stub area.
末梢区域stub area
我们可以通过配置,将-一个常规区域设置为stub区域。
Stub区域将禁止4、5类LSA进入该区域,同时该区域的ABR将会自动下发一条默认路由 (3类LSA)进该区域,以确保数据通路没有问题。这可以形象的理解为:”外面的世界再怎么精彩,你不用告诉我细节,只要让我出去就行了"。这就是stub area的设计思路。当引入大量的外部路由进OSPF ,适当的规划某些区域为stub ,可以起到不错的网络优化作用。
有一点值得注意,你不能将骨干区域area0配置为stub区域,同时,让-个区域被指定为stub ,区域内将不允许注入外部路由,也就是不能做重发布。
配置命令
需要注意的是,该命令要配置在stub区域中的所有路由器上,如果某台路由器没有配置,那么它将无法去其他stub area router 建立邻接关系。
实现效果:
Area1中将不会在有4、5类LSA ,也就是area2重发布进来的路由,被ABR过滤掉了, 同时area1中的路由器将获取到一条3类LSA的默认路由,该默认路由是由area1的ABR自动下发。
完全末梢区域totally stub
通过将区域规划为stub area ,可以起到一定的网络优化作用,但是感觉上还不够彻底,除了外部路由,其他区域的路由( LSAs )其实我也没必要知道太多细节,完全用一条默认路由替代也行嘛,那么你可以将area1配置为完全末梢区域( totally stub area),当-一个区域被配置为完全末梢区域,这个区域将:
●阻挡3、 4、5类LSA进入本区域
●区域的ABR自动下发一条3类LSA的默认路由进入本区域
这么一来, area1内路由器收到的LSA将进一步减少 ,在存储LSA及进行SPF算法运算的时候,耗费的资源自然也就减少了,另外当区域外拓扑出现变更的时候,对本区域的影响也将变为最小。
与stub区域类似你无法将骨干区域area0配置为totally stub area当然,如果一个区域被指定为 totally stubarea ,你将不能在区域中的路由器上做路由重发布动作。
配置命令:
在完全末梢区域内的所有路由器,都配置上述命令,与stub区域的区别在于ABR的配置,下面是配置在完全末梢区域的ABR上的。
实现效果:
完成上述配置后, area1内的路由器将只有本区域内的路由( ABR除外),同时都能获取到ABR下发的3类的默认路由。也就是说其他区域的路由以及外部注入的路由都被ABR阻挡在外,取而代之的是一条默认路由。
非完全末梢区域NSSA
在前面的知识基础上,我们已经了解到,在保证网络连通性的情况下,减少LSA的泛洪以及精简路由表,我们可以将特定区域配置为末梢区域或完全末梢区域。看上面的拓扑,我们将area2配置为stub ,那么,这个区域一来将阻挡来自其他区域的4、5类LSA ,同时区域内的路由器禁止重发布外部路由,那么如果此时我期望这个区域保持"阻挡其他区域过来的4、5类LSA"这个特性,同时允许我在区域本地重发布路由呢?
例如,假设area2原先是作为-个末梢区域运行的,但突然有一个外部网络 ,需要接入到我们这个OSPF网络中,并且连接在area2中,那么这个时候,为了保证路由的可达,就必须向area2中注入外部路由了,而这又违法了stub area的规则。
这里就引入NSSA ( not-so-stubby-area )的概念,中文翻译过来,可以理解为非完全末梢区域,当你将一个区域配置为NSSA ,那么这个区域一来将阻挡骨干区域过来的4、5类LSA ,同时允许区域本地注入外部路由,这些外部路由以一种特殊的LSA类型一-7 类LSA在NSSA中泛洪并且7类LSA不允许进入骨干区域或常规区域,NSSA的ABR会负责将7类LSA“转换"成5类LSA ,从而在常规区域中进一步泛洪。.上面的“ 允许区域本地注入”的意思是, NSSA这个区域的路由器配置重发布。
值得注意的是与stub area及totally stub area不同的是如果你将一个区域配置为 NSSA默认情况下NSSA的ABR不会自动下发默认路由进NSSA ,因此在NSSA环境下,需留意网络连通性问题。
配置命令:
上述命令需配置在NSSA内的所有路由器上。
实现效果:
将area2配置为nssa后,从骨干区域过来的4、5类LSA将无法进入NSSA ,也就是说如果area1做了重发布,那么这些重发布的外部路由将无法进入NSSA (这是因为NSSA中不允许出现5类LSA),与此同时, area2允许本地的路由器做重发布动作,重发布进来的路由,以LSA7在NSSA中泛洪,大家在路由表中看到的这些外部路由,标记为"0N",而这些7类LSA在"穿越”NSSA的ABR进入骨干区域之前,由ABR负责将7类LSA”转换”成5类LSA。最终area0及area1也都能学习到这些外部路由,只不过,他们路由表中呈现的是"0 E"标记。
Totally NSSA
Totally NSSA ,这是一个不太好用中文翻译的词汇 ,完全非完全末梢区域?显得有点尴尬,不过这个概念的理解并不像其名字那么唬人, Totally NSSA是在NSSA区域的基础之上, 进一步阻挡NSSA区域外的其他区域过来的3类LSA,同时ABR自动下发一条3类的默认路由进NSSA区域。
配置命令:
上述命令需配置在NSSA中的所有路由器上, ABR的配置有所不同,如下:
实现效果:
Area2之外的其他OSPF area过来的3、4、5类LSA,都会被阻挡在NSSA之外,同时ABR会自动下发默认路由进NSSA ,另外, NSSA内的路由器做重发布动作,区域内的其他路由器将会学习到7类的外部LSA,这些外部LSA会被ABR转成5类LSA并注入进骨干区域。
特殊区域总结
●骨干区域 Backbone Area 0
本身是一个标准区域,负责连接非骨干区域,其它区域(非骨干区域)必须保证和骨干区域有直接的物理连接,因为区域之间的LSA必须经过骨干区域中转
●常规(标准)区域Standard Area
一个区域缺省是常规区域
●末梢区域Stub Area
把一个区域配成存根区域的好处是,阻挡LSA4、LSA5外部路由进入本地区域,从而精简路由表;同时ABR会自动产生3类的默认路由LSA注入进该区域。
●完全末梢区域Totally Stubby Area
完全末梢区域是一种对末梢区域的改进,进一步精简路由表;
阻挡LSA3、4、5进入该区域,同时ABR自动下发3类默认路由。
●非完全末梢区域Not-so-stubby Area
即想阻挡LSA5,自身又想引入外部路由, stub的变种;
NSSA既阻挡外部LSA5的进入,同时区域内的路由器又可以引入外部路由LSA7 ;
LSA7在NSSA内洪泛,通过ABR时转换为LSA5并被注入进骨干区域。
ABR不会缺省生成0/0默认路由进入本地区域,需手工配置
●完全NSSA totally Not-so-stubby Area
在NSSA的基础上进-步阻挡骨干区域过来的3. 4.5类LSA并且ABR自动下发3类的默认路由进NSSA.
各区域内所允许出现的LSA总结如下:
●骨干区域: 1、2、3、4、5
●标准区域:1.2.3、4、5
●Stub区域: 1、 2. 3、3类0.0.0.0/0 ( ABR向区域内发起的一条3类缺省路由LSA )
●完全Stub区域: 1、2、3类0.0.0.0/0 ( ABR向区域内发起的一条3类缺省路由LSA )
●NSSA区域: 1、2、3、7
●完全 NSSA区域: 1. 2、7、3类0.0.0.0/0 ( ABR向区域内发起的一条3类缺省路由LSA)
NSSA详解
1. NSSA ABR . 上的路由汇总动作
NSSAABR会将7类LSA转换为5类LSA ,在7转5的过程中可以使用summary-address通告汇总的5类LSA,注意,这里汇总的是针对NSSA区域外部引入对汇总,但是如果仍想对area 1 nssa 区域自己内部对路由做汇总,则使用area range.
2. NSSA 的ABR ,在某种程度上可理解为常规区域的ASBR ,它不会为常规区域生成4类LSA。
NSSA的ABR产生了5类LSA(7转5)并通告进骨干区域因此这台NSSA的ABR对于骨干区域而言就是一台ASBR。由于存在这个7转5的过程,真正的ASBR(NSSA区域中执行重发布的那台)信息就不需要被骨干区域路由器所知道因此NSSA区域的ABR也不会为这个区域里的ASBR产生4类LSA并通告进骨干区域。
3. NSSA 双ABR问题
上图中,两个ABR都会收到7类LSA,但只有router-id大的ABR执行7转5。
两台ABR都会在NSSA区域泛洪1类LSA,并从中了解到对方的存在。
4.N/P位
Hello报文以及LSA报文中的Option字段
其中N/P位为1bit, 在HELLO和LSA中都有携带option字段, N/P位在两者中分别有不同意义。
在Hello报文中:Nbit指示该路由器为NSSA区域路由器,当Nbit被置1时Ebit就必须被清零。
在LSA报文中:Pbit仅在7类LSA中出现,置1时指示NSSA区域的ABR能够将这条7类LSA转成5类LSA。
●Pbit为0时,ABR将不能将该7类LSA转换成5类LSA
只有NSSA区域的ABR重发布路由时,通告的7类LSA中的P bit才为0
NSSA区域ABR在重发布时,将7类LSA的P位置0,通知其他NSSA区域ABR不要对该LSA进行7转5 ,因为骨干区域内的其他路由器已经从骨干区域内收到该路由的5类LSA,因此NSSA区域其他ABR执行7转5是没有意义的.
●在ABR上重发布,默认情况,通告7类LSA进NSSA区域,通告5类LSA进入骨干区域
如果使用area x nssa no-redistribution ,则不通告7类LSA进入NSSA区域
这个-般在不希望NSSA学到太多对路由明细对情况下使用,比如网点路由器。这个时候可在此配置基础上再在ABR.上对NSSA区域发布一条默认路由,从而最大程度上对减少路由表。
NSSA 中默认路由的传递问题
●NSSA区域中的ABR ( R2 )通告默认路由
●将区域类型配置为完全NSSA,自动下发3类LSA的默认路由;同时阻塞LSA3 ;
●在进程下面使用area x nssa default-information-originate 命令(本地无需默认路由的存在),自动下发7类LSA的默认路由,这时候ABR并不阻塞从骨干区域来的LSA3类进入NSSA区域
●NSSA区域中的ASBR ( R1 )通告默认路由
在进程下面使用area x nssa default-information originate命令,不会自动下发7类LSA的默认路由,必须事先在路由表中存在一条默认路由。
【注意】在NSSA区域中,无论是ASBR上,还是ABR上,使用静态默认路由加上defult-information-oniginate [always]命令均无法注入默认路由,原因是采用该命令注入的默认路由,为5米LSA.而5米L SA在NSSA中天法存活.
扫描下方二维码 进群学习(搞基)交流~~
来,试试最新的分享键