2.2 Cisco交换机选型
交换机是园区网中最基本的互联组件。Cisco具有针对不同需求的众多交换机平台可供选择。在本书创作之际,Cisco将Catalyst系列定位于园区网交换机,而将Nexus系列定位于数据中心交换机。所以在CCNP课程里,更多介绍的还是Catalyst系列交换机。
图2-12列举了当前推荐的Catalyst交换机。当然,在竞争激烈的园区网交换机市场中,Cisco始终保持着Catalyst交换机平台的更新,使其保持更新的功能、更优的性能、更大的密度,以及更低廉的价格优势。
熟悉Catalyst 6500平台的读者可以看到,图2-12中并未列出Catalyst 6500系列交换机。尽管Catalyst 6500这条产品线在业界已驰骋多年,但Cisco最终还是决定将其淘汰并升级为Catalyst 6800系列。对于本书的许多读者来说,Catalyst 6500交换机仍是其职业生涯中颇具情怀的一款产品。
Cisco提供了两种类型的网络交换机:固化交换机与模块化交换机。相比模块化交换机,固化交换机无法更改或添加其他模块。在企业网接入层中,可优先考虑Cisco Catalyst 2960-X系列。这一系列提供了具有众多配置参数的低端交换机。
基于园区网络需求的不同,在企业网分布层中可以选择使用固化或模块化的交换机。例如可以在分布层中使用Cisco Catalyst 3850-X系列模块化交换机。Catalyst 3850-X支持不同接口类型的网络模块(以太网或光纤),以及冗余的电源模块。在小型企业网中,3850-X可以充当核心层交换机的角色。而在大型企业网中,3850-X通常定位于接入层设备,使用其3层功能来实现高冗余性。
在企业网核心层中,通常都是模块化核心交换机,如Cisco Catalyst 6500或Catalyst 6800系列。这类核心交换机的所有组件,如RP或Supervisor引擎、以太网接口线卡、电源等,都是以模块形式单独安装在机框中的。这种高度模块化的设计可使用户按照需求定制设备的高可用性。
如果网络的流量很大,还可以将Cisco Catalyst 4500-X系列交换机部署到分布层。Catalyst 4500-X是一款支持冗余Supervisor引擎及10 G以太网的模块化交换机。
Catalyst 6800、4500-X、3850-X、2960-X,所有系列的这些交换机都是可管理的。这表示可以在设备上配置管理IP地址,并通过SSH或Telnet远程连接到设备上。傻瓜交换机(不可管理)仅适用于家庭或非常小的企业环境。园区网环境中强烈建议使用可网管的交换机。
本小节介绍了Cisco多种平台的交换机及其网络定位。有关Cisco交换产品的更多信息,请访问http://www.cisco.com/c/en/us/products/switches/index.html。
接下来将对2层交换与3层交换(多层交换)进行比较。
2.2.1 理解2层交换与多层交换
2层以太网交换机工作在OSI模型中的数据链路层。这类交换机通过数据帧中的目的MAC地址来做出转发决策。
复习一下基本的网络知识:交换机的每个端口都是一个冲突域,所以每台交换机端口与其相连的终端都处于各自的广播域中。由于链路间没有竞争,所有主机都可以工作在全双工模式下,全双工(full-duplex)是指主机可以同时接收和发送数据。与其相对的半双工(half-duplex)作为历史技术,只应用在集线器或10/100 Mbit/s交换机中。1 Gbit/s端口默认即工作在全双工模式。
在存储转发(store-n-forward)模式交换机收到数据帧后,会对帧进行错误检查。CRC检验有效的数据帧会被重新生成并转发出去。某些交换机型号,如大多数的Nexus交换机在处理帧时,仅读取2层信息而不进行CRC检查。这种处理方式也被称为直通转发(cut-through)交换。在将帧转发给另一个端口时,无需等待存储全部数据帧,从而降低了帧传输延迟。更低的交换延迟有益于数据中心网络中的低延迟应用,如算法交易程序(algorithm trading program)。对于CRC错误帧或损坏帧,终端设备网卡(NIC)或上层协议会将其丢弃掉。大多数Catalyst交换机使用的都是存储转发(store-n-forward)交换。
1.MAC地址转发
为了确定数据帧应被发向哪里,交换机会检查自身的MAC地址表。MAC表中的信息可以是交换机被动接收或自动学习得来。交换机会监听入站数据帧,并检查其中的源MAC地址。如果MAC表中没有此地址,则MAC地址、入站端口、VLAN将会记录在转发表中。这张转发表也叫做CAM表。
当交换机收到了一个目的MAC未知的数据帧后,交换机会在入站端口所在VLAN中转发此数据帧(除了入站端口),这种行为称作未知单播泛洪。去往多个目的地的广播和组播流量的处理方式与此相同。
如图2-13所示,在第一个例子中,交换机在端口1上收到了一个数据帧。目的MAC地址为0000.0000.5555。交换机通过检索其转发表确定了此MAC地址记录在了端口5上,因此会将此数据帧从端口5中发出。
在第二个例子中,交换机在端口1上收到了一个广播数据帧。交换机会在同VLAN的所有端口下(除了端口1)转发此广播帧。由于接收帧的端口1属于VLAN 1,因此,此帧会被转发给交换机中的所有VLAN 1端口(除了端口2、端口4、端口5、端口6)。
下一节将从技术的角度继续介绍2层交换机的工作原理。
2.2层交换机工作原理
当交换机接收到一个数据帧后,首先会将帧放进入站队列。一个端口可以含有多个入站队列,通常这些队列用来处理不同的数据帧(如部署了服务质量[QoS])。简单来说,当交换机选择队列中数据帧进行传输时,会面临如下问题:
数据帧将被发到哪里?
是否有限制阻止帧的转发?
是否有优先或标记操作需要应用到数据帧上?
交换机在转发策略过程中,上述3个问题是需要分别考虑的,图2-14所示的工作过程以及下列技术依次解释了这3个问题。
2层转发表:2层转发表也叫做MAC地址表,用于确定如何转发数据帧。MAC地址表包含MAC地址和目的端口信息。交换机会在MAC表中检索入站数据帧的目的MAC地址,并使用表项中对应的端口将数据帧发出。如果MAC中检索不到目的MAC地址,数据帧则会泛洪给同VLAN下的所有端口。
ACL:访问控制列表(ACL)不光可以应用于路由器,还可以基于MAC地址或IP地址应用到交换机上。通常中高端交换机可同时支持基于MAC和IP地址的ACL,而2层交换机仅支持基于MAC地址的ACL。
QoS:入站数据帧可以基于QoS参数进行分类。随后流量可以被标记、指定优先级,或限速处理。
交换机使用专用的硬件来处理MAC表、ACL检索数据、QoS检索数据。对于MAC表,交换机使用内容可寻址存储(CAM),而ACL和QoS表则使用三元内容可寻址存储(TCAM)。CAM和TCAM都拥有极快的访问速度,具有线速(line-rate)的交换性能。CAM仅支持2元结果:0或1。因此,CAM用于构建2层转发表。
TCAM支持3元结果:0、1和不关心。TCAM主要用于构建搜索最长匹配的表项,例如由IP前缀组成的IP路由表。TCAM表中存储着ACL、QoS,以及其他与上层处理相关的信息。使用TCAM的好处是,应用ACL不会影响交换机的性能。
本节仅是略微谈到了CCNP认证中所需的CAM和TCAM知识。有关其更多的细节,请查阅以下Cisco文档:
https://supportforums.cisco.com/document/60831/cam-vs-tcam
https://www.pagiamtzis.com/cam/camintro
下一节将继续讨论3层(多层)交换机工作原理的更多内容。
3.3层(多层)交换机工作原理
多层交换机不光要执行2层交换,还要基于3层或4层信息转发数据帧。多层交换机在2层交换机中加入了路由器的功能之外,还增加了流量缓存组件。
多层交换机与2层交换机的功能相似,还支持额外的并行检索,用于路由数据包,如图2-15所示。
3层检索使用的表称为FIB表。FIB表中除了含有出站端口和VLAN信息外,还有MAC重写信息。ACL和QoS平行检索与2层交换机相同,除此之外还额外支持3层ACL和QoS优先化处理。
例如,2层交换机只能基于源或目的MAC地址限制速率,而多层交换机可以基于IP或MAC地址限制流量速率。
让人遗憾的是,不同的Cisco交换机平台所支持的特性也不尽相同,某些纯2层交换机实际可以支持3层ACL和QoS检索。建议读者登录Cisco.com查找产品文档来获取详细的交换机信息。在CCNP SWITCH课程以及本书内容中,2层交换机仅支持基于MAC地址的ACL和QoS,而3层交换机支持基于IP或MAC地址的ACL和QoS。
4.Catalyst交换机MAC地址表常用命令
在Catalyst和Nexus交换机中,查看2层转发表的命令是一样的:show mac address-table。此命令可以附加多种可选参数来缩小输出结果范围,从而在大型网络中具有更强的可管理性。完整的命令选项如下:show mac address-table [aging-time | count | dynamic | static] [address mac-addr] [interface interface-id] [vlan vlan-id] [ |{begin | exclude | include} expression]。
例2-1给出了一个使用了部分选项的命令实例。
例2-1 2层转发表
Switch1# show mac address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0000:0c00.9001 DYNAMIC Et0/1
1 0000.0c00.9002 DYNAMIC Et0/2
1 0000.0c00.9002 DYNAMIC Et0/3
Total Mac Addresses for this criterion: 3
Switch1# show mac address-table interface ethernet 0/1
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0000:0c00.9001 DYNAMIC Et0/1
Total Mac Addresses for this criterion: 1
Switch1# show mac address-table | include 9001
1 0000:0c00.9001 DYNAMIC Et0/1
5.数据帧重写
在CCNA中曾经学习过,数据包在不同子网之间路由时,其头部的部分字段将被重写。这些重写的字段包括源和目的MAC地址、IP头部校验、TTL(生存时间),及其尾部校验和(以太网CRC)。以太网帧格式可复习第1章中的内容。
6.分布式硬件转发
一台网络设备至少由以下3个工作平面组成:
管理平面(management plane);
控制平面(control plane);
转发平面(forwarding plane)。
管理平面主要负责网络的管理,如SSH访问、SNMP协议、带外管理(OOB,out-of-band)接口等。控制平面负责协议与路由选择决策。转发平面负责实际的数据包路由或交换操作。
多层交换机必须能够支持大量端口的高性能线速转发。为了实现这一点,多层交换机需部署独立的控制平面与转发平面。在这种方式下,控制平面将规划转发平面如何去路由数据包。多层交换机可能含有多个转发平面。如Catalyst 6800中每块线卡都有一个转发平面,而集中的控制平面位于Supervisor引擎上。
继续以Catalyst 6800系列交换机为例,每块线卡包含了一块微代码处理器用于处理所有的数据包转发。而在Supervisor引擎上的控制平面使用控制层通信协议与每块线卡相互通信,如图2-16所示。
控制平面与转发平面之间的控制层协议的主要功能如下:
通过管理内部数据和控制链路,实现数据包的转发和控制功能;
从其他2层桥接、3层路由协议及配置数据中提取路由信息和其他包转发信息,随后将这些信息传递给接口,以此来控制数据路径;
从接口上收集数据路径信息(如流量统计信息),并发送给RP(路由处理器或引擎);
处理从以太网接口发往RP的某些数据包(如DHCP请求、广播包、路由选择协议包等)。
2.2.2 Cisco交换技术
所谓Cisco交换技术,其实指的是Cisco IOS路由器中RP(路由处理器)的工作方式。多层交换机具有路由选择功能的原因是内置了一个RP,为了深入了解多层交换中的路由功能,本节将着重介绍一下RP的工作原理。
基于IOS的Cisco路由器使用以下三种方式来转发数据包:进程交换(process switching)、快速交换(fast switching)、Cisco快速转发(CEF)。回忆一下CCNA中曾经学习过的路由器知识,进程交换是最慢的路由选择方式,因为RP必须使用软件(CPU)来执行路由计算和重写操作,如今进程交换已很少使用。快速交换,是一种较为快速的交换方式,路由器使用软件(CPU)对数据流中的第一个包执行路由计算和重写操作,并创建一个快速交换缓存,在后续的数据包到达时,将使用硬件(快速缓存)来转发数据包。最后一种CEF方式,对于大多数常见的数据流量都会使用硬件转发表来处理,仅有少量特例。如果使用了CEF,RP资源将得到最大程度的释放,从而可以转去处理其他工作。
Cisco Catalyst和Nexus交换机架构主要采用了和Cisco路由器一样的CEF交换方式。而进程交换方式则被设计成了Cisco Catalyst和Nexus交换机最后的求助手段。这些交换机的RP不会设计用来交换或路由数据包,这是为了防止影响其性能。Cisco交换机默认的交换方式为快速交换或CEF,而进程交换只有必要的时候才会用到。
在Cisco Catalyst交换技术中,快速交换也叫做路由缓存(route caching),带有分布式硬件转发的CEF也叫做基于拓扑交换(topology-based switching)。
以下给出了Cisco Catalyst交换机上对于路由缓存和基于拓扑交换的介绍。
路由缓存:也称为基于流量的交换(flow-based switching)或基于需求的交换(demand-based switching),当交换机检测到流量进入时,会在硬件中创建3层路由缓存。这一功能等同于Cisco IOS路由器中的快速交换。
基于拓扑交换:路由表中的信息会用于创建路由缓存,而不去考虑数据流。生成的路由缓存叫做FIB。这一功能等同于Cisco IOS路由器中的CEF交换。
接下来将继续介绍路由缓存和基于拓扑交换的更多细节。
1.路由缓存
在Cisco Catalyst交换机中,路由缓存等同于快速交换。对于路由缓存功能来说,入站数据帧的MAC地址必须是具有3层功能的交换机接口。数据流中的第一个数据包会使用RP在软件中进行交换,因为此时设备中还没有关于新数据流的缓存条目。随后RP会执行转发决策,并生成一张缓存表(硬件转发表)。随后,数据流中的后续数据包都会通过硬件进行交换,硬件通常使用的是ASIC(application-specific interface circuit)。只有当交换机检测到新的数据流时,缓存条目才会在硬件转发表中创建,在一段时间未被使用之后,条目将过期被删除掉。
由于只有在交换机接收到数据流时,条目才会在硬件缓存中创建。因此对于每路数据流,路由缓存总是会使用软件至少转发一个数据包。因此这种技术比CEF转发速度要慢一些,因为对于后者来说,路由表已经事先加载到了硬件中。
路由缓存还有许多别名,如NetFlow LAN交换、基于流量的交换、基于需求的交换、一次路由多次交换等。
图2-17从硬件角度简单介绍了路由缓存的原理。
2.基于拓扑交换
在Cisco Catalyst交换机中,基于拓扑交换等同于CEF交换。基于拓扑交换是在路由缓存之上的3层交换技术,因为其提供了更优的性能及可扩展性。如今,所有的Cisco Catalyst交换机3层路由功能使用的都是基于拓扑交换即CEF交换。在CCNP SWITCH这门课程中,主要还是介绍基于拓扑交换的优势及其工作原理。
CEF使用路由表中的信息来生成路由缓存(也成为FIB),因此不需要通过流量来触发缓存操作。由于硬件FIB不受数据流的影响,因此假设在路由表中存在目的地址的路由条目,那么这路流量中的所有数据包都会使用硬件转发,即使是数据流中的第一个包也是直接由FIB处理。图2-18解释了这一行为。
此外,CEF增强了对并行路径的支持,优化了IP层的负载均衡。大多数今天的Catalyst交换机,如Catalyst 4500和6800系列,其CEF支持基于源IP地址和目的IP地址组合的负载均衡,以及源、目的IP加上TCP/UDP端口号的负载均衡。
注释:
不同平台的Catalyst交换机,其默认负载均衡方式以及所支持模式也会有所不同。不同平台所支持的负载均衡模式及默认配置请以Cisco.com为准。
CEF负载均衡技术允许3层交换机使用多条路径来分担流量。带有特定源和目的信息的数据包将始终使用相同的一条路径进行转发,即使有多条路径可用。这一行为可以保证数据包按需到达,以保证某些延迟敏感的应用能够正常使用。
此外,仅基于源和目的IP地址的负载均衡模式有着一些缺点。由于这种负载均衡方式,对于特定的一对主机通信而言,始终会选择唯一的一条路径进行通信。当这种固定一对一主机(如防火墙到Web服务器)的流量很高时,其他链路的利用率将会很差。换句话说,流量负载实际上并未在多条路径上“均衡”,这种现象叫做“分极”(polarization)。分极现象不能体现出多链路负载均衡技术的优势。
所以,负载均衡技术的最佳使用环境是在流量统计分散的网络中。随着源和目的IP地址组合数量的增加,IP负载均衡的效果将越来越明显。在一个具有众多随机源和目的IP流量的大型分散网络中,负载不均衡的情况很少发生。不过,在主机数量较少的固定IP通信网络中,多链路间流量不均衡的确是一个严重问题。
为了解决这一问题,可以将Catalyst交换机默认的负载均衡行为从基于源、目的IP地址(3层)更改为同时基于源、目的IP 和TCP/UDP端口号(3层+4层)。在负载均衡行为中加入了4层信息将增加算法的颗粒度,从而减少了流量不均衡现象的发生。
Cisco Catalyst交换机根据硬件平台及软件版本的不同,还可能支持其他的负载均衡模式及特性。请参阅Cisco.com获取最佳配置。
2.2.3 硬件转发细节
从硬件角度来看,数据包的3层交换会发生在Catalyst交换机上两个不同的位置。一种是以集中的方式,发生在Supervisor引擎上;另一种是以分布的方式,发生在独立的线卡上。这两种方式分别称为集中式交换(centralized switching)和分布式交换(distributed switching)。
Catalyst 6500系列就是一个硬件转发的经典例子。6500可以单独在Supervisor引擎上完成集中式交换,也可以安装特定型号的线卡(DFC卡)来获得分布式交换的能力。
集中式交换可以节省硬件采购开销,减少硬件复杂性。但对于大型扩展的企业核心网来说,还是应优先选择分布式交换。大多数固化的交换机采用的都是集中式交换。
注释:
许多小型固化交换机采用了芯片交换机(SOC,switch-on-chip)的架构,所有交换功能及交换处理过程都由一块低成本的ASIC来完成。如今SOC已成为业界标准并广泛应用于低特性、低成本的Cisco Catalyst和Nexus固化交换机。此外,新一代的模块化交换机,如Nexus 9000将使用SOC,其线卡也会带有自己的SOC来实现分布式交换。
以上几个小节介绍了Cisco交换机上的交换方式及硬件转发,包括路由和交换的工作原理。在介绍了这么多内容之后,这部分知识可以总结如下。
Cisco Catalyst交换机的控制平面(CPU、RP)不会设计用来交换或路由数据帧。控制平面的作用是通过路由选择信息生成硬件转发表以及维护路由选择协议。只有在极特殊的情况下,才会使用控制平面路由数据帧。
中高端Cisco Catalyst交换机使用分布式转发模型来增加园区网及数据中心网的可扩展性。
Cisco Catalyst交换机使用CEF交换(基于拓扑交换)路由数据帧,以实现分布式硬件转发模型。
根据平台及配置的不同,Cisco Catalyst交换机支持集中式RP交换或分布式线卡交换的硬件转发。