1.1 交换技术介绍
局域网交换(LAN Switching)这一术语正在逐渐变成历史。从20世纪90年代到21世纪头5年,局域网交换一词被广泛用来描述使用Cisco Catalyst交换机构建的LAN网络。然而,今天的LAN网络已经被分成了功能不同的两大阵营:数据中心(Data Center)网络和园区(Campus)网络。
本书着眼于园区网络。相比而言,园区网络通常选择更为保守的体系结构,使用Cisco Catalyst交换机来实现传统的2层或3层架构设计。而数据中心网络正处于发展阶段,主要定位于应用、dev/ops,以及软件可编程性。这些体系使用的是一些尖端的技术,如FabricPath、Dynamic Fabic Automation(DFA)、Application Centric Infrastructure(ACI)等。
本章后面内容主要介绍与园区网络相关的关键交换技术,这些技术贯穿于本书所有章节。这其中的许多技术会在后续章节做更多的介绍,但定义并快速复习一遍知识点还是有助于读者理解后续章节的。此外,由于园区网的所有特性相互交织在一起,很难用连续的方式依次介绍每种技术,因此,本章的内容也会使用便于阅读的格式进行编排。
1.1.1 集线器与交换机
集线器(hub)这种产品已经作废,这一术语在今天已经很少提及。即使是最简单的家用多口以太网设备,在今天也都是交换机了。
回顾来看,集线器产品之所以退出了历史舞台,是由于端口共享带宽的机制造成的。交换机中的端口带宽是独享的。集线器可以将多台设备连接到同一网段。网段中设备彼此之间共享带宽。例如有一台100Mbit/s的集线器,其6个端口分别连接了6台设备,那么这6台设备彼此共享100Mbit/s带宽。也就是说,100Mbit/s的集线器会在所有连接设备之间共享这100Mbit/s的带宽。在OSI参考模型中,集线器被定义为1层(物理层)设备。集线器会监听线缆上的电信号并将信号传递给其他端口。
和集线器类似,交换机(switch)也可以将多台设备连接到同一网段,但两者也仅仅是这一点相似。交换机可使每台连接设备具有专用带宽,而非共享带宽。交换机与设备之间的带宽被预留出来用于双向的通信。如果6台设备连接到一台1Gbit/s交换机的6个端口上,每台设备之间都会有1Gbit/s的交换能力,而不是与其他设备共享带宽。交换机可以明显地增加网络中的可用带宽,从而提高网络的性能。相比集线器,交换机还支持许多额外的功能性,后文会介绍到这些特性。
1.1.2 网桥与交换机
常规的交换机被认为是2层(数据链路层)设备。这里谈到的“层”(layer)指的是OSI 7层参考模型中的“层”。交换机不光要像集线器那样传递电平信号,还要将信号封装成2层帧(frame),并对帧进行转发处理。交换机处理帧使用的是一种早期更为常见的网络设备:透明网桥(bridge)。理论上讲,交换机也可以像透明网桥一样工作,但处理帧的性能要比网桥快得多(这是使用了特殊硬件及硬件架构的原因)。一旦交换机确定了帧应被发送到哪里,会将帧从单个(多个)端口发出。读者可以将交换机看做是一台可以在多个端口之间建立瞬时帧到帧连接的设备。
1.1.3 今天的交换机
今天的交换机不仅支持帧的交换处理,许多交换机已经支持路由功能。此外,交换机还可以对流量进行优先处理,通过冗余来支持不中断的流量转发,围绕IP电话及无线网络提供融合性类网络服务。
总的来说,为了满足今天日益增加的网络需求,Cisco Catalyst交换机的设计支持了所有传统交换机特性以及业界领先的如下特性。
应用智能:帮助网络识别出多种类型的应用,并保证这些应用的安全性及优先性,从而提供最好的用户体验。
统一网络服务:将无线和有线网络中的最优组件组合到一起,用户可以使用任何设备无缝地连接到他人或网络资源。10G以太网技术及以太网供电(PoE)技术支持新型应用及设备。
不中断通信:使用冗余硬件、不中断转发(NSF)以及状态化切换(SSO)技术来提供更可靠的连接。
集成安全性:LAN交换机提供了安全的第一道防线来防御内部网络攻击并阻止未经授权的入侵。
运行管理性:为了更加容易地管理网络,IT工作者必须能够从某一中心区域远程地集中配置、监控所有网络设备。
1.1.4 广播域
在CCNA中我们学过,广播域是由一组网络设备组成的区域,区域中所有设备都能接收到域内任何一台设备发出的广播帧。广播域的边界通常是路由器(router)设备,这是因为路由器不转发广播数据帧。VLAN是广播域的一个实例。一个广播域通常是一个只包含单个IP子网的2层网络。下一节将继续讨论广播域中的地址使用。
1.1.5 MAC地址
MAC地址作为数据链路层的标准地址,存在于连接到LAN中的每个端口或设备上。网络中的其他设备使用此地址来找出网络中某端口的具体位置,并创建、更新路由表及数据结构。MAC地址共6字节长,由IEEE控制管理。MAC地址也称为硬件地址、MAC层地址、物理地址。
MAC也被应用到虚拟设备上,例如,一台服务器上的多个虚拟设备都会拥有单独的MAC地址。此外,大多数设备都拥有多个MAC地址。一个简单的例子就是我们的笔记本,它同时拥有一个LAN MAC地址和一个无线MAC地址。下一节将继续介绍以太网中使用的标准帧格式。
1.1.6 以太网帧格式
IEEE 802.3标准定义了MAC地址的标准的数据帧格式,以及用于协议扩展的附加格式。标准数据帧格式包含了以下7个字段,如图1-1所示。
前导码(PRE):7字节长。PRE由交替出现的1和0组成,此字段用于指示帧的开始,以便与网络中的所有接收端帧同步。
帧起始定界符(SFD):1字节长。前6比特由交替的1和0组成,后2比特是11,这两比特会中断同步模式并提醒接收方后续帧是目的MAC地址。
目的MAC地址(DA):6字节长。DA字段用于确定数据帧的接收者。DA的首个字节中,最后2比特用于标识目的地是一个单独的地址还是组地址(组播)。这两个比特的后一个比特(第8位)标示出DA是单播地址(0)还是组播地址(1)。前一个比特(第7位)标识出DA是全局管理地址(0)还是本地管理地址(1)。其余比特是唯一分配的值,用来标识单个主机、一组主机,或是网络中的全部主机。
源MAC地址(SA):6字节长。SA标识了发送者。SA始终是一个单独的地址(单播),其格式与DA相同。
长度/类型:2字节长。此字段可用来标识MAC客户数据(数据字段)的字节数,或者当帧封装成其他格式时,用作帧的类型ID。如果“长度/类型”字段值少于1500,将表示为长度字段,定义了数据字段的字节大小。如果值大于1536,将表示为类型字段,定义了发送或接收的特殊帧类型。
数据:由n个连续的字节组成,其中46≤n≤1500。当数据字段长度小于46时,会使用填充位(pad)填充至46字节。
提示:
Cisco Catalyst交换机可通过支持小巨人帧的方式最大支持9000字节的数据帧。
帧校验序列(FCS):4字节长。其中包含了32比特的循环冗余校验(CRC)值,CRC值由发送端计算,并由接收端重新计算以确定数据帧是否遭到损坏。FCS是基于DA、SA、长度/类型,以及数据字段生成的。
1.1.7 基本交换功能
当一台交换机收到一个数据帧后,必须要决定如何处理此帧。交换机可能会忽略此帧、将此帧从某个端口发出,或从多个端口发出。
为了确定如何操作数据帧,交换机须要了解网段中所有设备的位置信息。设备的位置信息存放在内容可寻址存储(CAM,专用于存储表项的一段内存)表中。CAM表存储着每台设备的MAC地址、学习MAC地址的端口,以及端口所属VLAN。随着交换机不断地接收新的数据帧并学习,CAM表也会随之更新。下一章会继续讲解CAM表。
CAM表中的信息决定了应该如何处理接收的数据帧。为了确定如何发送一个帧数据,交换机首先会查看收到帧的目的MAC地址,并在CAM表中检索这一MAC地址。CAM表会显示出去往某个特定目的MAC地址的数据帧应从哪个接口(或端口)发出。简单地讲,基本的2层交换功能遵守着以下的选路原则。
如果目的MAC地址存在于CAM表中,交换机将根据CAM表中目的MAC对应的出站端口将数据帧从此端口发出。这一过程称为转发(forwarding)。
如果CAM表中检索到的出站端口与接收到数据帧的入站端口相同,则不需要将数据帧从此端口原路发送回去,并且将忽略该数据帧。这一过程称为过滤(filtering)。
如果目的MAC不在CAM表中(即未知的单播地址),交换机会将数据帧发送给与接收帧的入站端口所属相同VLAN的所有端口。这一过程称为泛洪(flooding)。泛洪不会发送回入站端口。
如果收到的数据帧的目的MAC地址是一个广播地址(FFFF.FFFF.FFFF),交换机也会执行泛洪(flooding)行为,将数据帧发送给与接收帧的入站端口所属相同VLAN的所有端口。当然不包括接收帧的入站端口。
下一节将继续讲解Cisco Catalyst交换机和Nexus交换机中将一组端口划分进各自LAN网段常用的流行技术。
1.1.8 VLAN
由于交换机是基于数据帧在物理端口之间交换数据的,因此可以在此基础上对其进行扩展,使其在逻辑上对端口进行分组。每个逻辑端口组叫做虚拟局域网(VLAN)。交换机可以确保来自组内某个端口的流量不会发送到其他端口组中(这属于路由功能)。这些端口组(VLAN)可看做是独立的LAN网段。
每个VLAN也是一个独立的广播域。根据透明网桥的算法,广播包(去往所有设备的包)将发送给相同组(即VLAN)内的其他所有端口。处于相同VLAN的所有端口同处在一个广播域下。
下一节继续介绍构建2层域使用的传统生成树技术。
1.1.9 生成树协议
像前面提到的那样,交换机的转发算法会在接收帧所在端口的VLAN中将所有未知数据帧和广播数据帧泛洪至同VLAN内所有端口。这就会导致一个潜在的问题。如果运行这一算法的网络设备连接成了一个物理环路,泛洪的数据帧(如广播)将会沿着环路永远地在交换机之间传递。一旦物理上连接成了环路,环路中的数据帧将会以指数形式成倍增加,继而造成网络障碍。
当然,网络中的环路也有好处,即提供冗余性。如果某条链路故障,流量仍可使用其余路径到达目的地。为了充分发挥冗余性的优势而不受物理环路的限制,这就引出了一种叫做生成树(STP)的协议。生成树的规范定义于IEEE 802.1D标准中。
生成树协议的作用是用来识别并临时阻塞网段或VLAN中的环路。一旦网络中的交换机都运行了生成树,就会选举出一个根桥或根交换机。其他交换机会衡量自身到根交换机的距离。如果到达根交换机有多条路径,就说明网络存在环路。接着,交换机会使用STP算法来确定哪个或哪些端口需要被阻塞(block)以中断环路。生成树是动态的,如果网段中的某条链路发生故障,先前被阻塞的端口有可能恢复成为正常的转发(forward)模式。
生成树在本书后面章节还会继续涉及。下一节介绍如何在单个端口上传输多个VLAN流量。
1.1.10 Trunk
Trunk是一种可以使多个VLAN独立运行于多台交换机间的十分常用的技术。当然路由器和服务器也可以使用Trunk技术,可使其同时处于多个VLAN中。如果网络中只有一个VLAN,那大可不必考虑Trunk;如果网络中有多个VLAN,那么就应该考虑Trunk技术的优势了。
一台交换机上的一个端口通常只属于一个VLAN;所有在这个端口发送或接收的流量都会认为属于端口配置的这个VLAN。不过可以将端口配置成Trunk模式来发送或接收更多的VLAN流量。为了区分不同的VLAN,Trunk技术会给每个数据帧贴上VLAN信息,这一过程称为打标签(tagging)。此外,Trunk需要同时配置在链路两端,因为对端端口也必须能够区分VLAN信息才能保证通信的正确。同前面小节的风格一致,更多的内容会在本书后续章节中呈现。
1.1.11 端口聚合
端口聚合(port channel)是一种将多条物理链路逻辑上捆绑到一起的技术,捆绑后的多条链路作为一条逻辑链路存在,而不再各自独立工作。当有多条链路连接到相同的设备时常会用到。聚合端口会将流量分布给组内的所有链路来提高冗余性,当某条链路发生故障时,流量会自动分配给其余正常链路。聚合链路两端的设置必须保持一致。正常情况下,在设备之间建立多条平行连接会造成物理环路,生成树会阻塞部分端口以消除环路,但当配置端口聚合技术后,生成树会将聚合端口看做是一个逻辑端口来运行生成树,不会阻塞聚合端口。后面章节会继续介绍端口集合的更多内容。
1.1.12 多层交换
多层交换(MLS)是一种可让交换机基于3层或4层头部信息转发数据帧的技术。几乎所有Cisco Catalyst 3500平台以上及最新的交换机都支持MLS技术。如今MLS一词正逐渐变成一种历史技术,因为当今几乎所有交换机都能支持MLS。MLS最重要的一点是交换机使用专用的硬件来路由或交换数据帧,从而使其性能达到线速(wire-rate)。在交换机中有效地引入路由功能可以使交换机能够在核心网中的VLAN之间进行路由选择。下一章还会介绍更多的MLS技术。