本节书摘来自异步社区《CCNP SWITCH 300-115认证考试指南》一书中的第1章,第1.3节模块化网络的设计,作者 【美】David Hucaby(戴维 胡卡比),更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 模块化网络的设计
CCNP SWITCH 300-115认证考试指南
借助分层网络的设计思想来设计一个全新的3层网络是非常简单的任务。当然,你也可以把当前现有的网络迁移为分层结构的设计。当完成这样的设计改进后,网络会变得更加组织有序,同时具备高效性和可预测性的优点。但是,简单的分层网络设计并不能为你提升网络的冗余性和可扩展性。因此,当交换机或链路发生故障,当网络需要增加一些大型的附加组件时,你会感到束手无策。
如图1-8左半部分所示的分层网络,所有的层面都仅仅使用一条链路与相邻层面建立连接。如果任意一条链路发生故障,那么该网络的特定部分就会变得孤立无援。另外,所有的接入层交换机都聚合到一台汇聚交换机上,如果汇聚交换机出现了故障,那么此时所有的用户也会面临被孤立的境地。
为了缓解汇聚交换机发生故障所带来的潜在威胁,你可以为园区网络增加一台冗余的汇聚交换机。另外,为了避免可能的链路失效,你同样能够在接入交换机与汇聚交换机之间增加一条冗余链路。在完成上述所有改进之后,当前园区网络的拓扑情况如图1-8的右半部分所示。
对于图1-9所示的小型网络而言,这里所提供的冗余性已经非常完备了。但是随着网络规模的不断增长,越来越多的冗余交换机和冗余链路需要被考虑到网络设计中去,那么此时的设计过程可能会变得非常混乱。例如,假设图1-9所示的网络需要增加更多的接入交换机,以便满足新搬入企业大楼或相邻大楼的部门员工的网络需求。那么新增的接入层交换机是否需要与两台汇聚交换机建立双宿主连接呢?是否还需额外部署新的汇聚交换机呢?如果答案是肯定的,那么对于任意一台汇聚交换机而言,是否需要与其他汇聚交换机及核心交换机建立全互连(fully meshed)的网络连接呢?
图1-10所示描绘了为了满足上述所有需求,一种可能的网络设计方案。在这样的网络设计中,交换机之间建立了过多的互连连接,以至于想要准确定位特定的VLAN、掌握生成树拓扑、区分3层连接等问题的难度已经不亚于进行一场“头脑风暴”了。尽管这种网络设计也能够为用户提供必要的连通性,但是对于网络是如何正常工作的,以及当故障发生后如何有效地进行故障排除等此类问题,不得不说是网络维护者的一种 “灾难”。相比于组织有序、结构合理的网络设计,这里所展示的网络更像是一张繁琐杂乱的蜘蛛网。
为了使园区网络的设计始终保持组织有序、结构简单和可预测的优势,你可以采用一种模块化的逻辑设计方法。这种方法的核心思想是,把分层网络模型的每一个层面分解为基础的功能性单元。这些单元,或称之为建筑模块,能够灵活地制定大小,并最终作为网络组件被使用。同时,这些单元还必须具备可扩展性,以便适应未来网络的扩张。
如上所述,你可以把企业园区网络划分为以下几种基本的单元或建筑模块。
交换模块——一组接入层交换机,以及与之互连的汇聚层交换机。由于该单元包含了两个交换层面(接入层和汇聚层),因此也被称为接入汇聚模块。图1-8至图1-10中,虚线方框中所示的内容描绘了典型的交换模块。
核心——园区网络的骨干,负责连接所有的交换模块。
关键
事实上,除了上述两种基本的单元以外,还有一些其他的相关单元存在。尽管这些单元并不会对园区网络的整体功能性造成太多影响,但是它们却具有一定的独立性,也能够被添加到园区网络的设计中。例如,数据中心包含了企业的核心资源或服务,它可以拥有自己独立的接入层和汇聚层交换机,形成最终连接到园区网络核心层的交换模块。不仅如此,如果数据中心的规模足够大的话,它也可以拥有自己的核心交换机,然后连接到园区网的核心。交换模块包含了接入层和汇聚层的所有交换设备,并连接到核心层,提供跨越整个园区网的端到端的连通性。为了适应网络的持续扩张,你可以把新增的接入层交换机连接至现有的一对汇聚交换机上,如图1-11所示。另外,你也可以增加一个全新的接入汇聚交换模块,从而覆盖新的区域,如图1-12所示。
1.3.1 确定交换模块的大小
从概念上而言,交换模块就是包含了接入层和汇聚层设备的园区网基本构建单元。但是在确定交换模块的大小时,你依然需要考虑一些重要的因素。交换模块中可用交换设备的数量灵活地决定了交换模块的规模大小。从接入层来看,接入交换机的选择结果通常是基于端口的密度或需要接入的用户数量所得到的。
汇聚层的规模大小取决于一台汇聚设备需要聚合或连接的接入层交换机的数量。在面对这个问题时,你可以考虑如下的一些因素:
流量类型和模型(pattern);
汇聚层应当具备的3层交换的能力;
连接到接入层交换机上的用户数量总和;
子网或VLAN的地理边界。
在设计一个交换模块时,如果仅仅根据用户的数量,或是模块中包含终端设备的多少进行决策判断的话,那么最终得到的结果往往是不准确的。通常情况下,一个交换模块中所部署的用户数量不应当超过2000个。尽管这一条件在交换模块大小的初期评估时是有用的,但是这种评估却没有涉及作为一个功能性网络应当考虑的动态因素。
因此,交换模块的大小应当主要根据如下条件来确定:
流量的类型和行为;
工作组的大小和数量。
由于网络拥有动态的本质,因此你可以简单地设计一个足够大的交换模块,以便轻松处理模块内必要的负载任务。但是,随着网络中用户和应用数量的不断增长,最初所设计的模块大小(即使是非常大的交换模块)也会逐渐无法满足网络的需求,此时你便需要拆分原始的交换模块,并将其分解为多个规模较小的交换模块。再次重申,交换模块的大小是基于交换模块中实际的数据流和数据模型来确定的。你可以使用一些网络分析应用及工具来评估、建模和测量这些流量参数。
注意:
如何进行网络分析的过程已经超出了本书所论述的范畴。流量的评估、建模和测量都是非常复杂的主题,并且它们都拥有各自专用的分析工具。
一般而言,如果出现了下面的情况,那么则表明交换模块的规模过大。
位于汇聚层的路由器(或多层交换机)遇到了性能瓶颈,出现流量拥塞。这种拥塞可能是由于大量的VLAN间流量、过多的CPU占用率,或部署了大量高开销的策略和安全特性(如访问控制列表、队列技术等)导致的。
大量的广播或组播流量消耗了交换模块中过多的交换资源。广播和组播流量需要被复制,然后同时从大量接口转发出去,这一过程需要耗用多层交换机的一些资源。如果广播或组播流量的大小非常可观,那么这对于交换模块的性能影响也是不容忽视的。
1.3.2 交换模块的冗余
在所有的网络设计中,网络组件无可避免地需要面对发生故障失效的状况。例如,如果电路保险开关跳闸或意外地被关闭,那么交换机也可能会停电宕机。解决这一问题的最好方法是,任意一台交换机都使用两路独立的供电电源,甚至于每一套供电设备都连接到两个不同的电力供应源,从而使得交换机电力供应的可靠性足以应付上述故障失效的情况1。类似于上面的情况,一台交换机可能由于自身内部的因素造成宕机失效,一条链路可能由于传输介质的问题(如介质模块故障、光纤被切断等)出现线路中断。综上所述,为了设计一个更为弹性的网络2,你应当考虑为网络中的各种网络组件创建冗余组件。
关键
为了达到冗余的目的,一个交换模块应当包含两台用于聚合接入层交换机的汇聚交换机。其中,每一台接入层交换机都拥有两条上联线路——各自连接到不同的汇聚交换机。尽管这种冗余设计的物理线缆非常容易画出,但是逻辑上的连通性却并不明显。例如,图1-13展示了只部署了一个VLAN A的交换模块,并且VLAN A跨越了多台接入交换机。对于这样的交换模块,你可以非常轻松地在接入层机房发现一些能够相互连通的接入交换机,或是察觉到两个相邻的房间共享了同一个VLAN。但是请注意图中带有阴影的线条,这些线条描绘了一个VLAN是如何跨越每一台交换机(包括接入和汇聚交换机)以及连接交换机的每一条线路的。对于一个VLAN需要出现在所有的接入交换机上,以及利用冗余的上联线路以获得高可用性的实例而言,这样的设计是可以接受的。
尽管上述设计是可行的,但这并非是最优的方案。VLAN A为了跨越所有的接入交换机,它必须出现在模块内所有可能的链路上。另外,两台汇聚交换机也都必须支持VLAN A,因为它们需要为所有VLAN A的用户提供3层路由的功能。此时,两台汇聚交换机可以使用一种冗余网关协议,从而为VLAN内的用户提供一个活动IP网关和一个备份网关。但是这种UPS发生故障,也不会造成机房因停电而中断服务。冗余网关协议要求汇聚交换机之间必须建立2层的连通性。有关此类冗余网关协议的介绍,本书将在第18章中进行论述。
需要注意的是,带有阴影的链路连接形成了两个三角形的环路。如果2层网络中产生了环路,那么这样的2层网络将无法维持稳定,并最终导致崩溃。因此,交换网络中必须存在一些机制用于检测环路,并维护无环(loop-free)的网络拓扑。
另外,一旦出现了2层环路,整个交换模块将会成为一个单点故障域。如果一台属于VLAN A的主机因受到病毒侵扰而产生了大规模的广播流量,那么该交换模块中的所有交换机及链路都会受到这些广播流量的消极影响。
为了解决上述问题,交换模块必须采用一种能够从本质上杜绝2层环路的更好设计。如图1-14所示,这种无环设计的交换模块需要所有的接入交换机部署完全不同的VLAN。换句话说,单个VLAN不再被允许穿越到多台接入交换机。如图中带有阴影的链路所示,每一个VLAN的传输范围已经变成了一个“V”字形,而不是之前闭合的三角形环路。
关键
2层和3层的边界位置保持不变。所有的2层连通性全部由接入层提供,而汇聚层仅部署3层链路3。在杜绝了所有可能的2层环路后,交换模块将不再依赖任何用于检测及阻止环路的机制,其运行也会变得更加稳定。另外,由于每一台接入交换机都拥有两条互不影响的上联路径去往汇聚层4,因此这两条链路可以同时被完全利用,从而做到流量传输的负载均衡。同样地,3层汇聚交换机也能够利用路由协议在连接到核心层的冗余链路上执行流量的负载均衡。
另外,你还可以把3层边界从汇聚层下沉至接入层,只要接入交换机支持路由功能即可。图1-15展示了这种设计。此时,3层链路贯穿了整个交换模块,因此网络的稳定性将依赖于路由协议及更新的收敛表现。路由协议也能够在冗余的上联链路上为数据包提供负载均衡的转发,这能够提高不同网络层面之间链路的利用率。
为了更好地完成冗余的分层网络设计,你应当掌握下面这些非常有用的经验指南。
在每一个层面中设计两台交换机。
出于冗余性考虑,每一台交换机都使用两条链路连接到更高的层面。
在两台汇聚交换机之间建立一条连接,但是不要为接入交换机建立这样的连接(除非接入交换机支持一些高级特性,使得多台接入交换机能够成为一个逻辑的堆栈或机箱)5。
不要让VLAN的范围跨越汇聚交换机。汇聚层应当成为VLAN、子网和广播流量的边界。尽管2层交换机能够把VLAN传递到其他交换机和其他分层层面,但是并不推荐这么做6。VLAN流量不应当穿越网络核心。
1.3.3 网络核心
在园区网络中,一个核心层通常连接了两个或更多的交换模块。由于所有需要去往其他交换模块的流量都必须穿越核心,因此核心层应当尽可能地展现出流量转发的高效性和面对故障的快速回弹性。作为园区网络的聚合中心,核心层所处理的流量要远远大于任何交换模块。
如前所述,汇聚层与核心层都可以提供3层的网络功能。因此,汇聚与核心交换机之间的互连接口应当被设计为3层可路由接口。你也可以在汇聚和核心交换机上使用一些2层链路,用于传输小范围的VLAN流量。对于这种情况,3层的交换虚拟接口(SVI)将被用于路由这些小型VLAN的流量。
汇聚层与核心层之间的链路至少要求传输汇聚交换机交付给较高层面(即核心层)的流量负载,核心交换机之间的链路要求承载来自于另一台核心交换机的聚合流量。基于链路的平均使用率和未来网络的增长量,以太网核心应当具备结构简单和易于扩展的特性。在考虑核心层使用何种量级的链路时,你可以遵循从吉比特以太网递进到10吉比特以太网的方式7。
关键
一个典型的核心设计应当包含两台多层交换机,并使用冗余的方式连接两个或多个交换模块。这种冗余的核心设计有时也被称为双核心,因为两台核心交换机通常选用一致的设备型号,如图1-16所示。需要注意的是,这里的核心层是一个独立的模块,并没有与其他模块或层面合并。
所有交换模块中的汇聚交换机都分别与核心层的两台核心交换机建立了连接,而两台核心交换机之间也使用了一条链路进行连接。
由于采用了双核心的冗余设计,因此每一台汇聚交换机都拥有两条等价的路径去往核心,两条路径的可用带宽能够被同时使用。这两条上联链路之所以能够同时保持可用状态,是因为汇聚层与核心层之间使用了3层连接,路由协议能够执行等价的路由转发。如果一台核心交换机发生了故障,那么在路由协议完成路由收敛之后,流量会沿着另一条上联路径发送到正常的核心交换机。
如果园区网络的规模持续增长,并要求覆盖两幢大的建筑物或办公地点,那么此时你可以复制核心层,如图1-17所示。需要注意的是,经过扩展的双节点冗余核心包含了4台核心交换机,这种核心结构被称为多节点核心。在核心层内,4台核心交换机两两相连,形成全互连。
尽管采用多点核心设计的4台核心交换机已经建立了全互连,但是园区网络依然将其划分为两个双核心的结构。每一个交换模块只和其中一个双核心建立冗余连接,而不是与所有4台核心交换机。
1.3.4 收缩核心
是否所有的网络都适合采用不同的冗余的核心层设计呢?答案可能并非如此。对于小型的园区网络而言,构建一个独立的核心层通常要求投入较为可观的费用成本8。从平衡成本及性能的角度考虑,如果园区网络的规模较小,那么你可以选择收缩核心的设计。收缩核心模块是指在分层网络中核心层收缩到汇聚层的一种设计。此时,汇聚层和核心层的功能由相同的交换设备提供。
图1-18展示了一个基本的收缩核心设计。尽管汇聚层和核心层的功能是由相同的设备提供,但是保持功能上的区分以及正确的设计依然非常重要。需要注意的是,收缩核心不再是一个独立的建筑模块了,而是被整合到之前独立的汇聚层交换模块中。
在收缩核心的设计中,每一台接入层交换机都拥有冗余的两条链路连接到汇聚层交换机。接入层承载的所有2层流量都将在汇聚交换机的3层接口上终结,这和基础的交换模块设计一样。汇聚交换机相互建立冗余的连接,以便在网络故障时提供高可用性。
1.3.5 园区网络中的核心规模
园区网络的核心层由多台冗余的交换机构成,并提供纯粹的3层功能。路由协议为核心层执行路径选择,并维护正常的运行。对于所有的网络而言,你都应当谨慎对待网络中路由器和路由协议的设计。由于网络拓扑可能会随时发生变化,因此路由协议也会产生更新以应对网络变更。当网络发生变更时,网络的规模(路由器或交换机的数量)会影响到路由协议的性能表现,以及网络的收敛速度。
尽管图1-16所示的网络规模看似很小,仅仅由两个包含冗余3层交换机(能够执行路由选择)的交换模块组成,但是与大型园区网络相比,它们在组成结构上是一致的,只是连接到核心层的交换模块的数量有所不同。如果把每一台3层交换机都看作是路由器的话,那么核心设备必须与所有相连的汇聚交换机保持路由连接(即路由协议的邻居关系)。大部分的路由协议在路由对等体的数量上存在着一定的限制,这些对等体可以是通过点到点链路建立,或是多点访问链路建立。在拥有大量交换模块的网络中,互连的多层交换机的数量也会变得非常可观。那么一台核心交换机需要顾虑与之相连的汇聚交换机的数量过多吗?
答案是否定的,因为实际直连的对等关系数量是很少的,即便园区网络的规模很大。通常,接入层VLAN终结于汇聚层交换机上(除非接入层部署为3层),交换模块中唯一的路由对等体是在冗余的汇聚交换机之间建立的,目的是为接入层VLAN提供路由冗余性。在汇聚和核心边界,每一台汇聚交换机只与两台核心交换机建立3层的连接,因此,一台核心与一个交换模块的路由对等体关系只有2个。
当多层交换机用于汇聚层和核心层时,路由协议会把两个层面之间的冗余链路作为等价路径。流量在这些链路上传输时会采用负载均衡的方式,从而提高了链路的带宽利用率。
核心层设计的最终着眼点是确定核心交换机的性能及型号,使其能够应对入站的负载。从最基础的要求出发,每一台核心交换机必须能够处理当所有汇聚上联链路使用率为100%的情况。
1.3.6 选择Cisco产品构建分层网络
在真正开始着手对园区网络进行设计之前,你应当熟悉一些实际的设备型号,以及它们各自适合于哪一个网络层面。Cisco拥有丰富的交换产品线,提供了每个层面所需的功能,并且胜任于各种规模的园区网络。
对于本节所讨论的主题,不妨假设一个大型的园区网络需要覆盖许多建筑大楼,一个中型的园区网络可能需要接入几幢建筑物,而一个小型的园区网络只需要覆盖一幢大楼即可。
无论是大型、中型还是小型的园区网络,你都需要基于它们各个层面必须提供的功能来选择正确适合的Cisco产品。但不要害怕产品手册中列出的大量参数和表格,相反地,你应当试图理解哪些交换机适合于既定的网络及其层面。
在接入层,较高的端口密度、以太网供电(PoE)和较低的价格通常是需要考虑的条件。Catalyst 2960-X、3650和3850系列交换机可以提供48个接入端口的规格。如果需要获得更多的端口,那么你可以选择添加一些支持的交换模块用以扩充端口数量。Catalyst 4500E系列交换机提供了一个灵活的模块化交换机箱,支持各种线速转发卡。不仅如此,4500机箱还支持冗余的Supervisor引擎模块,从而为网络提供非常出色的高可用性(包括支持零宕机时间的升级)。表1-3列出了一些通常被用于接入层的交换机平台。
1译者注:例如,我们为机房采购两套UPS(不间断供电系统),每一套UPS分别连接不同的供电网络。即便某一个供电网络或UPS发生故障,也不会造成机房因停电而中断服务。
2译者注:一个有弹性的网络是指网络在出现失效和故障时,能够利用自身现有的冗余条件,非常迅速地从失效或故障中恢复过来。
3译者注:接入层与汇聚层之间依然使用2层链路建立连接。
4译者注:生成树协议不会阻塞其中一条上联链路,因为在这种设计中并没有环路的存在。
5译者注:不要连接属于不同交换模块的汇聚交换机,这样会使得网络变得异常复杂。
6译者注:这里的意思是指不要把汇聚交换机设计为单纯的2层交换机。
7译者注:通常情况下,如果核心层下联线路采用1Gbit/s的链路,那么为了保障核心层高速转发的特性,推荐核心层互连线路采用10Gbit/s的链路。
8译者注:核心层往往需要选择高性能的设备型号,例如Cisco 6500系列交换机,高性能也就意味着高成本投入。
9译者注:GE是指Gigabit-Ethernet,即吉比特以太网;PoE+支持30W的供电功率,UPoE支持高达60W的供电功率。