《路由设计的优化》一1.6 分层机制

1.6 分层机制

路由设计的优化
分层机制是工程学和日常生活中用于降低问题复杂性的经典方法,通过分层机制,每次可以仅面对一个层级的复杂性。以开车为例,开车时司机关注的就是开车,而不是汽车引擎或其他系统如何运转。汽车就是一个分层的系统,某一层关注汽车运行,某一层关注汽车前进,而另一层则关注汽车刹车等。

对于故障排查和网络设计来说,一个优秀的解决方案必须能够将系统分解为多个抽象的模块,每个模块与系统的关联度最小。网络采用的就是大家熟悉的七层OSI(Open System Interconnection,开放系统互连)参考模型(虽然IP是围绕大家相对陌生的四层模型开发的)。在处理物理层问题时,几乎不用考虑IP地址和TCP参数,只要关注电信号或光信号即可,其他层也类似。与此相反,一个糟糕的设计方案无法将问题细分或者说打破了分层的边界。大家可能都已经发现,凡是棘手的网络故障,通常都涉及层间交互或携带了跨层信息。

这些理念也同样适用于网络设计和网络技术本身。分层网络可以实现故障隔离,从而可以在较小的参数范围内逐一进行故障排查。本节将详细讨论网络设计过程中用到的分层概念,即利用分层机制隐藏信息以及分离功能。

1.6.1 隐藏信息

由于大型、复杂网络包含了很多重要信息,以便为一些常用系统提供实时处理和响应能力,因而能否实现很好的信息隐藏功能成为网络设计成功与否的关键。通常可以隐藏两类网络信息:

拓扑结构信息;
可达性信息。
1.隐藏拓扑结构信息
拓扑结构是网络的物理布局或互连图。如果从报文级的角度来看待拓扑结构,那么拓扑结构就是一系列连接和设备组成的集合,用来为网络中的流量传送提供物理路径,也就是为流量提供可用的传送路径。

三种类型的路由协议(链路状态、距离矢量和路径矢量)在处理拓扑结构信息时存在一定的差异。

链路状态路由协议直接利用拓扑结构信息计算去往所有可达目的地的最佳路径。每台设备都向外宣告其所有链路的状态,该信息被用来构造去往每个目的地的有向图(directed graph),其中,有向图是物理拓扑结构的一个子集,仅包含至少要去往某些目的地的路径。
运行距离矢量路由协议的路由器仅向其对等体宣告可达性信息,而不宣告拓扑结构信息,并且通过比较邻居们宣告的去往目的地的各条路径的开销,来确定每个可达目的地的最佳路径,也就是说,在确定最佳路径时不考虑网络的拓扑结构。
路径矢量路由协议向外宣告路由更新在网络中穿越的一系列“路由跳数”,该信息并不是去往目的地的实际路径,而是路径可能穿越的系统集合。该路径证明所宣告的路径是无环路的。由于路径矢量路由协议并不利用开销来确定去往目的地的无环路路径,因而可以依据开销来选择次优路由,以支持或实现某种路由策略。
图1-10解释了拓扑结构信息在每种路由协议中的不同处理方式。

在链路状态路由协议中,路由器C向路由器B泛洪其直连的所有链路的信息,路由器B则将这些信息再发送给路由器A。路由器B也向路由器A和路由器C泛洪其直连的所有链路的信息。利用这些信息,路由器A可以构造反映网络拓扑结构信息的有向图,并选择穿越网络的最佳无环路路径。路由器A知道其与路由器B是直接相连的,而路由器B也同样宣称其与路由器A的连接性。由于路由器A和路由器B都宣称与对方的连接性,因而该链路进入树中。同样,路由器B与路由器C之间的链路也进入树中,而且路由器C宣称其连接在子网10.1.1.0/24上(该信息也在有向图内),从而路由器A发现其拥有去往子网10.1.1.0/24的路径,下一跳是路由器B。

如果每对路由器都能接收到对方泛洪的链路状态信息,则它们位于同一个泛洪域(flooding domain)中。为了构造一致的无环路由,同一泛洪域内的每台路由器都必须共享相同的网络拓扑结构视图。链路状态网络几乎不可能由单一泛洪域组成,通常都被划分为多个“域”(在OSPF中被称为area,在IS-IS中被称为domain)。位于泛洪域边界的路由器会为域中的每个可达目的地都加上整个域的开销并向外宣告,因而在计算开销时,这些目的地就像直接连接在域边界路由器上一样。之后,由域边界路由器通过隐藏泛洪域内的网络拓扑结构信息来汇总(summary)来自泛洪域的路由信息。

在距离矢量路由协议中,路由器D宣告其可以去往10.1.1.0/24且开销为10,该路由宣告没有提供任何拓扑结构信息,路由器B和路由器C只知道路由器D能够到达该目的地,而不知道路由器D究竟是通过哪条路径到达该目的地。路由器B和路由器C加上各自去往路由器D的开销并向路由器A宣告其可达10.1.1.0/24,这些路由宣告中也同样不包含任何拓扑结构信息。此时,路由器A知道路由器B和路由器C都能直达10.1.1.0/24,但开销不同,距离矢量路由协议基于“拥有最小度量的路径不可能是环路(只要该路径上的每台路由器都加入了各自去往下一跳的开销)”的几何定律。由于每跳都隐藏了网络背后的拓扑结构信息,因而每台路由器都仅宣告指定开销下可到达的特定目的地。

在路径矢量路由协议中,路由更新所穿越的每个节点都会附加一个标志,以便向更新消息指示本节点。如果网络中的节点接收到的路由更新中包含了自己附加的标志,那么就表示该更新属于有环路的路径,从而拒绝该更新。虽然路径矢量路由协议中的路径似乎提供了网络的拓扑结构信息,但实际情况并非如此,这些路径仅仅是保证不存在环路。由于对路由进行过滤或聚合操作之后,就会丢失网络的拓扑结构信息,从而不可能从路由更新中的路径来了解整个网络的拓扑结构信息。

通过分析上述目前仍在应用的三类路由协议,可以看出这三类路由协议都在一定程度上隐藏了拓扑结构信息:

链路状态协议在泛洪域的边界隐藏拓扑结构信息;
距离矢量协议在每个路由跳上隐藏拓扑结构信息;
路径矢量协议利用路由过滤和聚合机制隐藏拓扑结构信息。
本书将在第2章的层次化网络设计以及后面章节有关链路状态和路径矢量路由协议的部署中继续讨论上述概念。

2.隐藏可达性信息
准确来说,可达性信息并没有真的被隐藏起来,而只是被汇总(summarized)或被聚合(aggregated)了,如图1-11所示。

图中路由器A通过IP地址为10.1.1.1和10.1.1.5的接口分别与主机10.1.1.2和10.1.1.6相连,当路由器A向路由器B宣告路由0.1.1.0/30时,实际效果如下:

“通过我可以去往IP地址10.1.1.0~10.1.1.3。”

因此路由器A汇总了其所连接的IP地址的信息。此外,路由器A还同时宣告了路由10.1.4.0/30,实际效果如下:

“通过我可以去往IP地址10.1.1.4~10.1.1.7。”

路由器B接收到这两条路由宣告之后,就知道了IP地址10.1.1.0~10.1.1.7的可达性信息,此时路由器B不再构造两条路由更新来宣告这8个IP地址的可达性信息,而是简单地宣告10.1.1.0/29即可,相应的效果如下:

“通过我可以去往IP地址10.1.1.0~10.1.1.7。”

因此路由器B汇总或聚合了接收自路由器A的路由信息,这就是路由协议隐藏可达性信息的实现方式。

从技术上来说,这种方式并不是隐藏了可达性信息,而仅仅是进行了可达性汇总,但进行汇总时,也确实将精细化可达性信息隐藏到较粗略的可达性信息中。换言之,汇总或聚合隐藏的是可达性信息的指定性。

第2章将继续详细讨论路由汇总问题。

1.6.2 功能分离

分层网络设计的两大主要目的之一就是实现功能分离,通常网络需要完成以下工作:

提供用户和服务所连接的位置;
实施相应的策略,包括标记数据包(用于QoS)、实施接纳控制、实施安全测量以及路由策略等;
聚合网络流量和拓扑结构信息;
转发网络内主要拓扑区域或站点之间的流量;
连接到外部网络或互联网。
如果在同一个网络位置完成上述所有工作目标,那么网络故障的检测与排除操作将非常困难,因此需要拆分上述工作目标,由网络的不同层面实现不同的功能。

第2章将详细介绍网络的层次化结构以及各层网络所实现的特定功能。

时间: 2024-10-29 21:53:19

《路由设计的优化》一1.6 分层机制的相关文章

《路由设计的优化》一导读

前 言 路由设计的优化当我们在1998年写作Advanced IP Network Design时,不曾想到我们会在将来越来越深入地研究路由式网络设计领域,也不曾想到我们会如此紧密地合作共事这么多年.当初写作Advanced IP Network Design的初衷是为了回答我们在Cisco 技术支持中心路由协议故障上报团队工作时遇到的一些问题. 在很多方面,写作本书的原因也大抵如此:帮助我们在日常工作中面对的客户回答他们提出的问题.比如,设计网络编址方案的最佳方式是什么?如何在不影响网络正常运

《路由设计的优化》一第1章 网络设计目标与方法1.1 网络设计目标

第1章 网络设计目标与方法 路由设计的优化进行网络扩容.网络设计或重新规划时,无论网络规模大小,首要考虑的问题是什么?是将要使用的链路类型.路由器类型,抑或是采用何种路由协议?我相信都不是!因为大家首要考虑的应该是网络的用途,网络应具备哪些功能特性?网络设计的目标是什么?网络应采取何种流量承载方式以最优化地满足商业需求? 1.1 网络设计目标 路由设计的优化由于在网络用户眼里,网络就是一系列应用的集合,而不是一系列线路.光纤连接器.协议.路由器和交换机的集合,因而在设计网络时,必须考虑网络为支撑

《路由设计的优化》一1.5 可扩展性

1.5 可扩展性 路由设计的优化 究竟拥有多少台路由器的网络才可以被认为是可扩展的网络呢?或许在网络拥有100台路由器时,就可以认为该网络是一个大规模网络,而且也能够证明该网络的设计师是一名合格的网络设计人员.但是,如果网络中的路由器超过了1000台呢?或者说网络规模与网络的可扩展性之间有没有什么必然联系呢?在探讨大规模网络的涵义时,应考虑以下场景. 某些网络很大(拥有上千台路由器)但是却不稳定,需要进行重大网络变更操作才能增加网元或调整网络拓扑结构,而且不进行重大变更操作就无法适配新的网络应用

《路由设计的优化》一1.4 可管理性

1.4 可管理性 路由设计的优化虽然网络怪才(geek)通常都不爱管事(这也是他们被称为网络怪才的主要原因),也不是管理者,但是作为网络设计人员,在考虑各种设计选项时,必须考虑网络的可管理性问题.这是因为如果网络的配置操作十分复杂,即便网络能够正常运行,那么也会让人在总体评价上大打折扣,而且在网络出现故障后也很难进行故障排查,甚至在网络出现新的需求而需要修改配置时也难以操作.一个易于管理的网络能够很好地适应网络规模的增长,而且在商业需求发生变化后能够很方便地进行修改和调整. 本书的目的不是要讨论

《路由设计的优化》一1.2 可靠性

1.2 可靠性 路由设计的优化可靠性和弹性是相辅相成的,弹性网络可以为网络应用提供更可靠.可稳定的运行平台,而检视一个高可靠性网络时,也必然能够发现其具备非常好的弹性能力.需要注意的是,不要将弹性能力与冗余性混为一谈,虽然冗余性能够在某些场合下提供很好的弹性能力,但是仅仅简单地在网络中部署冗余机制,是无法持续提高网络弹性能力的. 首先来看一下什么是可靠的网络,简单来说,可靠的网络就是能够为商业应用提供不间断运行的平台.那么商业应用的可靠运行又依赖于网络的哪些方面呢?当然是网络的可靠性和数据传送的

《路由设计的优化》一1.3 可靠性和弹性

1.3 可靠性和弹性 路由设计的优化如果网络不转发网络设备之间的数据,那么应用程序就无法正常运行:如果网络宕机,那么应用程序就无法工作.因此,如果网络应用依赖于网络设备之间的连通性,那么网络就必须足够可靠(reliable),虽然这是显而易见的道理,但如果深入分析这个概念,大家会在表象之下发现很多非常复杂的东西. 既然可靠性很重要,那么如何构造可靠的网络呢?最明显的答案就是尽可能减少网络变更的次数,网络的变更次数越少,网络就越稳定,越可靠. 但是变更又是网络所不能避免的,网络规模越大,网络(至少

《路由设计的优化》一1.7 本章小结

1.7 本章小结 本章主要内容如下. 网络设计的基本目标以及从更宽泛的商业视角来看,网络就是提供各种网络功能的工具. 可靠性与弹性之间的区别以及相互之间的影响关系. 网络设计.网络管理以及网络可管理性之间的关系.-冗余性.可管理性和可扩展性之间的关系. 分层机制通过隐藏拓扑结构信息和可达性信息来降低网络的复杂度. 第2章会把这些理论知识运用到实践中,让大家理解如何将这些知识应用到真实的网络环境中.通过本章知识的学习,大家必须记住的重点是: 好的网络设计方案关注的不是能连接多少台路由器,而是关注网

《路由设计的优化》一1.8 复习题

1.8 复习题 1.设计一个新的网络时首先必须考虑的因素是什么? 2.网络设计的首要目标是什么? 3.如何定义可靠网络? 4.三层网络设计中的哪些因素会影响网络的时延与抖动预算? 5.网络出现故障后需要考虑的两个主要问题是什么? 6.在确定网络从故障状态恢复到服务状态(或网络中运行的某个应用程序恢复到服务状态)所需要的时间时,需要确定哪些重要因素? 7.进行网络管理时,最重要的日常管理任务是什么? 8.哪些类型的网络文档对网络管理和故障排查意义重大? 9.确定在网络中何处部署冗余机制以提高网络弹

大型园区网的路由设计

我是51CTO学院讲师夏杰,在51CTO学院 "4.20 IT充电节"(4月19~20日) 到来之际,和大家分享一下园区网产品选型经验.正文来啦~~~ 1. 园区网内部路由设计 内部路由一般使用OSPF,核心区域使用区域0,其余各个划分区域使用相应区域编号,如下图所示. 2. 园区网出口路由设计 网络出口可能有多家运营商,如电信.联通.移动.比较主流的需求是,用户访问电信的服务器走电信链路,访问联通服务器走联通链路,怎么实现这个需求呢?静态路由+默认路由,或者策略路由 静态+默认路由实