《OSPF网络设计解决方案(第2版)》一2.4 OSPF路由分层-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

《OSPF网络设计解决方案(第2版)》一2.4 OSPF路由分层

简介:

本节书摘来自异步社区《OSPF网络设计解决方案(第2版)》一书中的第2章,第2.4节,作者 【美】Thomas M. Thomas II, CCIE #9360,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 OSPF路由分层

OSPF网络设计解决方案(第2版)
OSPF协议最为重要的特性之一便是它支持分层的路由结构。当你思考OSPF如何在这种分层结构上运行时,请牢记下面的两个特点。

为了使得OSPF能够正常地运行,必须存在或创建分层结构。
应当优先关注如何划分明确的拓扑,而不是地址编址。
自治系统(AS)是指在同一管理域内的一组共享相同路由策略的区域的集合。自治系统使用唯一的编号进行标识,该编号可以是公共的或私有的,这取决于网络的需求。自治系统号必须由特定的组织或机构来分配,如北美的Internet号码注册中心(ARIN)、欧洲的RIPE以及亚洲的亚太互联网络信息中心(APNIC)。当单宿主企业网络计划成为其上游ISP AS的一部分时,网络无需AS号便可使用OSPF1。在同一个AS内可能需要执行以下三种方式的路由选择行为。

如果数据包的源和目的地址位于相同的区域内,则使用域内路由。
如果数据包的源和目的地址位于不同的区域,但这些区域依然属于同一个AS,则使用域间路由。
如果数据包的目的地址位于AS外,则使用外部路由。

2.4.1 分层网络设计技术

当设计OSPF网络时,以下是一些需要关注的要素。这些内容被OSPF所支持,并且当前已经成为了公认的网络设计指导。

将骨干区域的内部设计为三层结构的方式有利于缩短OSPF的收敛时间,并且能够提供经济的可扩展性。
从源到目的地尽量不要超过 6 个路由器的跳计数(参考下面的 注意)。
每个区域内可部署30~100台路由器。
除了区域0以外,不要让区域边界路由器(ABR)连接超过2个区域。否则,ABR需要维护过多的链路状态数据库。
注意
Cisco推荐在设计分层的企业网络时,从源到目的地不要超过6个路由器的跳计数。这是一种正确的建议,但实际上,从源到目的地的跳计数取决于网络的具体情况。在大型的国际互联网络中,源和目的地的距离通常都会超过6个跳计数。

2.4.2 OSPF网络中的路由类型

OSPF支持三种路由类型:

域内路由;
域间路由;
外部路由。
下面的小节将对这些路由类型进行简要说明。随着不断深入OSPF网络的设计与实施,你必然会涉及到这些路由类型。

1.域内路由
域内路由是指目的地和源在同一个OSPF区域内的路由。在OSPF协议中,域内路由使用路由器(1类)和网络(2类)LSA来描述。查看OSPF路由表可以发现,域内路由使用“O”来标识。

2.域间路由
域间路由是指流量需要穿越两个或更多的 OSPF 区域才能到达目的地的路由,但是目的地和源依然位于相同的AS内。网络汇总(3类)LSA负责对此类路由进行描述。当数据包需要在两个非骨干区域间路由时,那么该数据包一定会穿越骨干区域。这意味着在域间路由的路径上是存在域内路由的,举例如下。

1.从源路由器到区域边界路由器使用域内路径。

2.然后,从源区域到目的区域会经过骨干区域。

3.从目的区域的区域边界路由器到目的地使用域内路径。

结合上述三条路由便得到了一条域间路由。当然,SPF算法将计算位于域间两点的最小开销值。查看OSPF路由表可以发现,域间路由使用“O IA”来标识,如例2-2所示。


622c97d1c76752bceed3dcf6dbcf24b20a19f3a4

3.外部路由
OSPF 可以通过很多方法获知外部路由的信息。最为常用的是将另一个路由协议重分发到OSPF内,这些内容会在第6章进行详细介绍。为使所有的OSPF路由器都能获知外部路由的信息,外部路由必须穿越整个OSPF的AS。AS边界路由器(ASBR)负责泛洪外部路由信息到AS内,但默认不会对这些信息进行汇总。除了末节区域外,AS内的所有路由器都可以接收到外部路由信息。

注意
只有当配置了出站分发列表(distribute-list)或OSPF汇总命令时,ASBR才会对外部路由信息进行过滤或汇总。但是默认情况下,Cisco路由器放行所有的外部路由进入AS。
OSPF拥有以下两种外部路由类型。

E1路由——E1路由的开销是内部和外部OSPF路由度量(被重分发进入OSPF的初始度量)的总和。例如,如果数据包需要发往另一个AS,那么相应E1路由的开销等于外部OSPF度量加上所有内部OSPF的开销。此类外部路由在路由表中使用“E1”标识。
E2路由——OSPF默认使用的外部路由类型。这类路由不计算内部OSPF的度量,而仅使用外部OSPF度量,且不关注OSPF域内路由器的位置。例如,如果数据包需要发往另一个 AS,那么相应 E2 路由的开销仅和路由被重分发进入AS时的初始外部度量相关,与OSPF内部路由无关。
提示
比较去往相同目的地的不同路由类型,优先级为:域内路由>域间路由>E1>E2。

2.4.3 OSPF区域

区域的概念和子网类似,因为区域和子网内的路由能够很容易地被汇总。换句话说,区域就是连续的逻辑网络的集合。在OSPF内划分区域,能够使得网络更加易于管理并显著减少路由流量。具备这些好处的原因在于,区域内的拓扑状态对于区域外的路由器是不可见的。

OSPF 区域内的路由器维护整个区域的链路状态数据库并执行 SPF 运算。路由器需要为它所连接的每一个区域都维护一份链路状态数据库的拷贝。

随着网络规模的不断增长以及越来越多站点的加入,这一情况会导致 OSPF慢慢变得不堪重负。例如,当网络大小和路由器数量持续增加,链路状态数据库也会随之变得庞大。过大的链路状态数据库在进行SPF运算时将表现得效率低下。

当大量路由器对LSA进行泛洪时,还可能造成网络拥塞。为了解决上述难题,你可以选择将整个AS划分成多个区域。另外,对于每个区域内所部署的路由器数量,也需要进行必要的限制。完成这样的设计改进后,每一台路由器依然拥有一份链路状态数据库,但是数据库内仅包含该路由器所在区域的条目(ABR拥有多个区域的链路状态数据库)。这种设计方式实质上提高了OSPF网络的运行效率。

1.标准OSPF区域的特点
以下内容列举出了OSPF区域的一般特点。

区域内包含一组连续的主机或网络。
区域内路由器共享一份基于区域拓扑的数据库,并且运行相同的SPF算法。
每个区域都必须连接到骨干区域,即区域0。
在一些紧急的情况下,允许使用虚链路将区域连接至区域0。
域内路由用于对源和目的地在同一个区域内的流量进行路由。
2.标准区域设计规则
当设计OSPF区域时,请考虑如下的要求。

骨干区域(也被称为区域0)必须存在。
所有非骨干区域都必须连接到骨干区域,即使是末节区域。
骨干区域必须连续,不能出现骨干区域分隔或多个骨干区域。
虚链路仅作为应急的临时性解决方法。
3.区域0:OSPF骨干区域
骨干区域作为 AS 的逻辑和物理结构,用于连接其他多个非骨干区域。骨干区域负责在非骨干区域之间传递路由信息。骨干区域必须是连续的,但并不要求其物理上连续;骨干区域的连通性可以通过配置虚拟链路来建立和维护。这些内容将在第4章进行详细讨论。

4.末节区域
末节区域通常只有单一的区域出口,并且没有超出区域范围的外部路由的最优路径(因为末节区域内部不存在明细的外部路由)。末节区域正如它的名字一样,即网络的尽头。进入或离开末节区域的数据包只能通过ABR转发。那么末节区域存在的意义是什么?其意义是为了优化大型网络中的路由表。如果选择部署末节区域,那么这将减少末节区域内路由器需要维护的路由表条目数。末节区域拥有以下功能上和设计上的特点。

通过其他协议重分发进入OSPF的外部路由不允许泛洪进入末节区域。也就是说,末节区域的ABR将阻止4类和5类LSA的进入。因此,在末节区域内路由器的路由表中没有外部路由的存在。
把某个区域配置为末节,可以减少区域内链路状态数据库的大小,同时该区域内路由器的内存需求也会降低。
离开末节区域的路由选择行为是基于默认路由完成的。末节区域内包含域内和域间路由,以及由ABR所注入的一条默认路由(0.0.0.0)。
末节区域通常只有一台ABR,这是一种最佳的设计方案。当然,你也可以为末节区域部署多台ABR,但是这容易引起次优路径选择。
如果将某个区域配置为末节区域,那么属于该区域的所有接口便开始交换标识了特定比特位的OSPF Hello包,用于指示接口为 OSPF 末节区域的一部分。实际上,OSPF只是把Hello包中的一个比特位(E bit)置0,且在同一个区域内的所有路由器都必须在此标识上达成一致。例如,末节区域内的所有路由器必须配置识别本区域为末节区域,如果区域内存在未配置成末节的路由器,那么该路由器将无法与其他路由器建立邻居关系和交换链路状态信息。

当实施末节区域时会存在一些限制条件,这些限制条件主要是保证末节区域必须被设计成不能携带外部路由。在下面所列出的情景中,都可能造成在末节区域中出现外部路由信息。这些限制条件如下。

末节区域不能作为虚链路的传输区域2。
末节区域内不能拥有自治系统边界路由器(ASBR)。
OSPF允许把某些区域配置成末节区域,但是骨干区域不能成为末节区域。
4类和5类LSA不允许进入末节区域。
提示
可以把末节区域进一步配置成完全末节区域。对于Cisco路由器而言,你仅需要在末节区域内的ABR上添加一条no-summary命令即可完成完全末节区域的配置。完全末节区域是一个阻隔外部路由和汇总路由(即域间路由)进入的区域。因此,在完全末节区域内,只有域内路由和一条注入到该区域内的0.0.0.0默认路由。
5.次末节区域
次末节区域(NSSA)由RFC 1587,“OSPF NSSA Option”所定义,能够用于ISP和大型网络需要连接运行了不同路由协议的远程站点时,并允许OSPF把来自于远程站点的外部路由导入末节区域。这是一种和传统末节区域的概念相互违背的设计,因此需要定义新的RFC来修正和改进之前的OSPF协议。在定义这种新的区域类型的同时,该RFC文档还引入了一种新的LSA类型,即7类LSA。使用7类LSA,OSPF便能够打破原来的矛盾,将外部路由重分发到末节区域中。

例如,如果当前网络不作为Internet传输使用,且必须重分发遗留的RIP协议进入末节区域,但是去往其他OSPF区域依然只有单一的出口点,那么此时非常适合使用NSSA。假设RIP网络中拥有许多重要应用,但是网络中的路由器不支持OSPF(或者支持得不好),而只能运行RIP协议。

图2-8描绘了一个典型的NSSA网络拓扑。


664358fcd15243353f535efe88640538fb1010b3

1译者注:事实上运行OSPF并不需要AS号,但是运行BGP必须拥有唯一的AS号。
2译者注:即虚链路不能穿越末节区域。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: