在OSPF中划分区域的好处有哪些

在OSPF中划分区域的好处有哪些,第1张

  在进行OSPF路由方案部署过程中,OSPF的各种区域是最难理解的。它们之间到底有什么区别和作用呢本文将为大家一一解答。

  Backbone(骨干)区域

  在一个OSPF网络中,可以包括多种区域,其中就有三种常见的特殊区域,即就是骨干区域(Backbone Area)、末梢区域(Stub Area)和非纯Stub区域(No Stotal Stub area,NSSA),当然还可以包括其它标准区域。OSPF网络中的区域是以区域ID进行标识的,区域ID为0的区域规定为骨干区域。

  一个OSPF互联网络,无论有没有划分区域,总是至少有一个骨干区域。骨干区域有一个ID 0000,也称之为区域0。另外,骨干区域必须是连续的(也就是中间不会越过其他区域),也要求其余区域必须与骨干区域直接相连(但事实上,有时并不一定会这样,所以也就有了下面将要介绍的"虚拟链路"技术)。骨干区域一般为区域0(Area 0),其主要工作是在其余区域间传递路由信息。

  骨干区域作为区域间传输通信和分布路由信息的中心。区域间的通信先要被路由到骨干区域,然后再路由到目的区域,最后被路由到目的区域中的主机。在骨干区域中的路由器通告他们区域内的汇总路由到骨干区域中的其他路由器。这些汇总通告在区域内路由器泛洪,所以在区域中的每台路由器有一个反映在它所在区域内路由可用的路由表,这个路由与AS中其他区域的ABR汇总通告相对应。

  如在本章前面的图8-1中,R1使用一个汇总通告向所有骨干路由器(R2和R3)通告Area 0001中的所有路由。R1从R2和R3接收汇总通告。R1配置了Area 0000中的汇总通告信息,通过泛洪,R1把这个汇总路由信息传播到Area 0001内所有路由器上。在Area 0001内的每个路由器,来自Areas 0000、0002和0003区域的汇总路由信息共同完成路由表的计算。

  在实际网络中,可能会存在骨干区域不连续,或者某一个区域与骨干区域物理不相连的情况,此时系统管理员可以通过设置虚拟链路(Virtual Link)的方法来解决(参见图8-4)。虚拟链路存在于两个路由器之间,这两个路由器都有一个端口与同一个非骨干区域(这个区域是处于骨干区域和某个不直接与骨干区域相连的区域之间)相连,虚拟链路使该区域与骨干区域间建立一个逻辑联接点。虚拟链路被认为是属于骨干区域(相当于骨干区域的延伸),在 OSPF路由协议看来,虚拟链路两端的两个路由器被一个点对点的链路连在一起。而且,在OSPF路由协议中,通过虚拟链路的路由信息是作为域内路由来看待的。该虚拟链路必须建立在两个区域边界路由器之间,并且其中一个区域边界路由器必须属于骨干区域。

  Stub(末梢)区域

  通过前面对OSPF区域概念的了解可以知道,在划分了区域之后,OSPF网络中的非骨干区域中的路由器对于到外部区域的路由,一定要通过ABR(区域边界路由器)来转发,或者说对于区域内的路由器来说,ABR是一个通往外部世界的必经之路。既然如此,对于区域内的路由器来说,就没有必要知道通往外部区域的详细路由了,只要由ABR向该区域发布一条默认路由来指导报文的发送路径即可。这样在区域内的路由器中就只需要为数不多的区域内路由和一条指向ABR的默认路由(Default-Route),使区域内的路由表简化。而且无论区域外的路由如何变化,都不会影响到区域内路由器这个简单的路由表。这就是OSPF 路由协议中"Stub Area"(末梢区域)的设计理念。Stub区域的ABR不允许注入Type5 LSA(有关OSPF LSA类型将在本章后面具体介绍),在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少,同时也使得该区域不受外部AS路由的影响。

  一个Stub区域可以包含一个入口/出口(也就是一个ABR),或者在任一ABR可以被用于到达外部路由目标时,还可包含多个ABR。对于多ABR的 Stub区域,外部路由是通过一个区域外的ASBR进行通告的。AS外部路由器不会被泛洪到,或者通过Stub区域。在一个Stub区域中的所有到达外部网络的路由是通过一个默认路由(0000 0000)来实现的。这样,在一个Stub区域中的路由器的路由表中就只有一个路由到所有AS外部位置的入口。

  为了创建默认路由,Stub区域的ABR通行一个默认路由到Stub区域。默认路由被泛洪到这个Stub区域内的所有路由器上,但是不会泛洪到Stub区域外。默认路由是用于一个Stub区域中的路由器为任一不可到达AS内部的目的IP地址提供路由。在Stub区域中的所有路由器必须被配置,以便它们不在 Stub区域内导入或泛洪AS外部路由。所以,在一个Stub区域中的所有路由器接口上的所有区域配置必须配置Stub区域。例如,图8-5中的Area 0003被配置为一个Stub区域,因为所有外部通信必须它的单个ABR——R3。R3通告一个默认路由分布在内部区域Area 0003,而不是在区域内泛洪AS外部网络。

  在 Stub区域中规定不接收外部AS的LSA,也不向外部AS发送区域内部LSA,即Stub区域中不注入ASE(自治系统外部)路由。Stub区域一定是非骨干区域和非转换区域(可以配置虚连接的区域),因为它不接收也不发送LSA。并且在Stub区域中不传递Type 5类型(AS外部LSA)的LSA(有关LSA类型将在本节后面介绍)。本节前面的图8-4显示了骨干区域、Stub区域,以及其他标准区域之间的关系。 Area 0为骨干区域,area 3是Stub区域,area 2为一个标准OSPF区域。同时在这个示例中Area 2区域并没有与骨干区域Area 0直接相连,这时就通过在两个区域的边界路由器之间建立的虚拟链路进行直接通信。Area 1是一个转发区域。

  由于Stub区域通常位于OSPF网络末端,这些区域内的路由器通常是由一些处理能力有限的低端路由器组成,所以处于Stub区域内的这些低端设备既不需要保存庞大的路由表,也不需要经常性的进行路由计算。这样做有利于减小Stub区域中内部路由器上的链路状态数据库的大小及存储器的使用,提高路由器计算路由表的速度。

  当一个OSPF的区域只存在一个区域出口点(只与一个其他区域连接)时,我们可以将该区域配置成一个Stub区域。这时,该区域的边界路由器会对域内通告默认路由信息。需要注意的是,一个Stub区域中的所有路由器都必须知道自身属于该区域,否则Stub区域的设置不会起作用。另外,针对Stub区域还有两点需要注意:一是Stub区域中不允许存在虚拟链路,这样就不会作为骨干区域的延伸;二是Stub区域中不允许存在ASBR,否则这个AS中的LSA无法传播到另一个AS中。

  Totally Stub(完全末梢)区域和NSSA(非纯末梢)区域

  上节介绍的Stub区域是一类特殊的OSPF区域,这类区域不接收或扩散Type-5类型LSA(AS-external-LSAs),对于产生大量 Type-5 LSA(外部AS LSA)的网络,这种处理方式能够有效减小Stub区域内路由器的LSDB大小,并缓解SPF运算对路由器资源的占用。通常情况下,Stub区域位于自治系统边缘区域。为保证Stub区域去往自治系统外的报文能被正确转发,Stub区域的ABR(区域边界路由器)将通过Summary-LSA(汇总链路状态通告)向本区域内发布一条默认路由,并且只在本区域泛洪。为了进一步减少Stub区域中路由器的路由表规模以及路由信息传递的数量,可以将该区域配置为 Totally Stub(完全末梢)区域,该区域的ABR不会将区域间的路由信息和外部路由信息传递到本区域。

  1 完全Stub区域

  这里所说的完全Stub区域(Totally Stub,或者Stub no-summary)是在Stub区域的基础上(即阻止了Type 5 LSA包的基础上)再对其他ABR通告的网络汇总LSA(即Type 3类型LSA)也进行了阻隔,不接收区域间路由通告。其ABR仅通过网络汇总LSA通告一个默认路由,使用这个默认路由到达OSPF自治系统外部的目的地址。也就是说,完全Stub区域同时不允许Type 3、4或5三类LSA注入,但默认汇总路由除外。

  若要将一个区域定义为Stub区域,则在区域内所有路由器中使用"area xx stub"命令;若要定义完全Stub区域,使用OSPF路由器配置命令"area xx stub no-summary"命令。

  2 NSSA区域

  Stub 区域虽然为合理的规划网络描绘了美好的前景,但在实际的组网中利用率并不高(Stub区域一般只存在于网络边缘),未免遗憾。但此时的OSPF协议已经基本成型,不可能再做大的修改。为了弥补缺陷,协议设计者提出了一种新的概念NSSA(not-so-Stubby area,非纯末梢区域),并且作为OSPF协议的一种扩展属性单独在RFC 1587中描述。NSSA可以说是对原来的Stub区域要求有所放宽,使它可以在更多网络环境中得到应用。

  NSSA 区域规定,AS外的ASE路由不可以进入到NSSA区域中,但是NSSA区域内的路由器引入的ASE路由(NSSA区域中可以连接ASBR)可以在 NSSA中泛洪并发送到区域之外。这样,在NSSA区域中取消了原来Stub区域中关于ASE的双向传播的限制(区域外的进不来,区域里的也出不去),改为单向限制(区域外的进不来,区域里的能出去)。若要定义NSSA区域,使用OSPF路由器配置命令"area xx nssa"命令。

  为了解决ASE单向传递的问题,NSSA中重新定义了一种LSA——Type 7类型的LSA(NSSA外部LSA),作为区域内的路由器引入外部路由时使用。该类型的LSA除了类型标识与Type 5不相同之外,其它内容基本一样。这样区域内的路由器就可以通过LSA的类型来判断是否该路由来自本区域内。但由于Type 7类的LSA是新定义的,对于不支持NSSA属性的路由器无法识别,所以协议规定:在NSSA的ABR上将NSSA内部产生的Type 7类型的LSA转化为Type 5类型的LSA再发布出去,并同时更改LSA的发布者为ABR自己。这样NSSA区域外的路由器就可以完全不用支持该属性。在NSSA区域内的所有路由器(包括NSSA的ABR)必须支持Type 7类型的LSA属性,而自治系统中的其他路由器则不需要。

  总的来说,NSSA区域不允许Type 5 LSA,但在NSSA ABR上转换为Type 5的Type 7 LSA还是可以通过的。

  NSSA所对应的区域ID为1,它与骨干区域0相连,同时它又与另两个自治系统的路由网络(分别是运行 IGRP和RIP路由协议的)相连。此时,外部区域和外部AS的路由信息不能通告到NSSA区域中,但NSSA中的路由信息可以向外发布。

其实四种都可以的……

ospf可以是单区域的ospf,而且这个区域不一定要是area0。若果是多区域ospf则每个区域都必须与area0相连。B选项虽然看似不合理,但因为在一个路由器内可以配置多区域,且area1,area2最后均连接到了area0,所以也是可以的。

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法(Dijkstra)被用来计算最短路径树。OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。OSPFv2是由RFC 2328定义的,OSPFv3是由RFC 5340定义的。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。

不同厂商管理距离不同,思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10。。。。[1] 

如果一个网络中存在大量运行ospf的三层设备,并处于同一个区域,那么无论是在ospf进程开启之初还是网络达到稳定状态后由于拓扑的变更都会产生大量的更新泛洪,所有设备必须进行一次新的spf计算,大量消耗了cpu ,同时设备越多,链路就越多,链路状态数据库就越大,占用的内存自然也越大,另外,大量的泛洪还会占用带宽。

如果采取多区域,进程开启之初,大部分的泛洪数据只会在自己的区域内进行,只有一少部分会传送到骨干区域,而且即使区域内有一台设备的链路故障,如果我们在边界设备上配置了汇总等功能,将不会导致“牵一发而动全身”,只是影响本区域而已。。。。。。。。。

(要理解多区域的好处,我觉得至少应该对LSA的1 2 3 4 5 7这六种类型有深刻的认识才行,例如单区域内,只会存在大量的 1 2类,也有可能会有少量的4,5类或更少的7类,而多区域最大的好处就是利用了3类加上手动汇总功能,减少了区域间的大量更新数据包的交换,同时也不会因为一个区域中某一链路的故障而导致网络中所有设备都需要接受更新和重新进行spf算法)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/12175443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存