第七章 交换式以太网和虚拟局域网----7.2 交换式以太网
通常,解决共享式以太网存在的问题就是利用“分段”的方法。所谓分段就是将一个大型的以太网分割成两个或多个小型的以太网,每个段(分割后的每个小以太网)使用CSMA/CD介质访问控制方法维持段内用户的通信。段与段之间通过一种“交换”设备可以将一段接收到的信息,经过简单的处理转发给另一段。通过分段,既可以保证部门内部信息不会流至其他部门,又可以保证部门之间的通信。以太网结点的减少使冲突和碰撞的几率更小,网络效率更高。并且,分段之后,各段可按需要选择自己的网络速率,组成性价比更高的网络。
交换设备有多种类型,局域网交换机、路由器等都可以作为交换设备。交换机工作在OSI模型的数据链路层,用于连接较为相似的网络(如以太网和以太网);而路由器工作在OSI模型的网络层,用于实现异构网络的互联(如以太网和帧中继)。
7.2.2 交换式以太网的概念
交换式以太网是指以数据链路层的帧为数据交换单位,以以太网交换机为基础构成的网络。交换式以太网允许多对结点同时通信,每个结点可以独占传输通道和带宽。它从根本上解决了共享以太网所带来的问题。
7.2.3 交换机的工作原理
以太网交换机(以下简称交换机)是工作在OSI参考模型数据链路层的设备,外表和集线器相似。它通过判断数据帧的目的MAC地址,从而将帧从合适的端口发送出去。交换机的冲突域仅局限于交换机的一个端口上。比如,一个站点向网络发送数据,集线器将会向所有端口转发,而交换机将通过对帧的识别,只将帧单点转发到目的地址对应的端口,而不是向所有端口转发,从而有效地提高了网络的可利用带宽。以太网交换机实现数据帧的单点转发是通过MAC地址的学习和维护更新机制来实现的。以太网交换机的主要功能包括MAC地址学习、帧的转发及过滤和避免回路。
以太网交换机可以有多个端口,每个端口可以单独与一个结点连接,也可以与一个共享介质式的以太网集线器(Hub)连接。如果一个端口只连接一个结点,那么这个结点就可以独占整个带宽,这类端口通常被称作“专用端口”;如果一个端口连接一个与端口带宽相同的以太网,那么这个端口将被以太网中的所有结点所共享,这类端口被称为“共享端口”。例如一个带宽为100Mbps的交换机有10个端口,每个端口的带宽为100Mbps。而Hub的所有端口共享带宽,同样一个带宽100Mbps的Hub,如果有10个端口,则每个端口的平均带宽为10Mbps,如图7.4所示。
1. 交换机数据帧的转发
交换机根据数据帧的MAC(Media Access Control)地址(即物理地址)进行数据帧的转发操作。交换机转发数据帧时,遵循以下规则:
l 如果数据帧的目的MAC地址是广播地址或者组播地址,则向交换机所有端口转发(除数据帧来的端口)。
l 如果数据帧的目的地址是单播地址,但是这个地址并不在交换机的MAC地址表中,那么也会向所有的端口转发(除数据帧来的端口)。
l 如果数据帧的目的地址在交换机的MAC地址表中,那么就根据MAC地址表转发到相应的端口。
l 如果数据帧的目的地址与数据帧的源地址在一个网段上,它就会丢弃这个数据帧,交换也就不会发生。
下面,以图7.5为例来看看具体的数据帧交换过程。
① 当主机D发送广播帧时,交换机从E3端口接收到目的地址为ffff.ffff.ffff的数据帧,则向E0、E1、E2和E4端口转发该数据帧。
② 当主机D与E主机通信时,交换机从E3端口接收到目的地址为0260.8c01.5555的数据帧,查找MAC地址表后发现0260.8c01.5555并不在表中,因此交换机仍然向E0、E1、E2和E4端口转发该数据帧。
③ 当主机D与主机F通信时,交换机从E3端口接收到目的地址为0260.8c01.6666的数据帧,查找MAC地址表后发现0260.8c01.6666也位于E3端口,即与源地址处于同一个网段,所以交换机不会转发该数据帧,而是直接丢弃。
④ 当主机D与主机A通信时,交换机从E3端口接收到目的地址为0260.8c01.1111的数据帧,查找MAC地址表后发现0260.8c01.1111位于E0端口,所以交换机将数据帧转发至E0端口,这样主机A即可收到该数据帧。
⑤ 如果在主机D与主机A通信的同时,主机B也正在向主机C发送数据,交换机同样会把主机B发送的数据帧转发到连接主机C的E2端口。这时E1和E2之间,以及E3和E0之间,通过交换机内部的硬件交换电路,建立了两条链路,这两条链路上的数据通信互不影响,因此网络亦不会产生冲突。所以,主机D和主机A之间的通信独享一条链路,主机C和主机B之间也独享一条链路。而这样的链路仅在通信双方有需求时才会建立,一旦数据传输完毕,相应的链路也随之拆除。这就是交换机主要的特点。
从以上的交换操作过程中,可以看到数据帧的转发都是基于交换机内的MAC地址表,但是这个MAC地址表是如何建立和维护的呢?下面我们就来介绍这个问题。
2.交换机地址管理机制
交换机的MAC地址表中,一条表项主要由一个主机MAC地址和该地址所位于的交换机端口号组成。整张地址表的生成采用动态自学习的方法,即当交换机收到一个数据帧以后,将数据帧的源地址和输入端口记录在MAC地址表中。思科的交换机中,MAC地址表放置在内容可寻址存储器(Content-Address able Memory,CAM)中,因此也被称为CAM表。
当然,在存放MAC地址表项之前,交换机首先应该查找MAC地址表中是否已经存在该源地址的匹配表项,仅当匹配表项不存在时才能存储该表项。每一条地址表项都有一个时间标记,用来指示该表项存储的时间周期。地址表项每次被使用或者被查找时,表项的时间标记就会被更新。如果在一定的时间范围内地址表项仍然没有被引用,它就会从地址表中被移走。因此,MAC地址表中所维护的一直是最有效和最精确的MAC地址/端口信息。
以图7.6所示为例,来说明交换机的地址学习过程
(1)最初交换机MAC地址表为空。
(2)如果有数据需要转发,如主机PC1发送数据帧给主机PC3,此时,在MAC地址表中没有记录,交换机将向除向E0/1以外的其它所有端口转发,在转发数据帧之前,它首先检查这个帧的源MAC地址(M1),并记录与之对应的端口(E0/1),于是交换机生成(M1,E0/1)这样一条记录,并加入到MAC地址表内。
交换机是通过识别数据帧的源MAC地址学习到AMC地址和端口的对应关系的。当得到MAC地址与端口的对应关系后,交换机将检查MAC地址表中是否已经存在该对应关系。如果不存在,交换机就将该对应关系添加到MAC地址表;如果已经存在,交换机将更新该表项。
(3)循环上一步,MAC地址表不断加入新的MAC地址与端口对应信息。直到MAC地址表记录完成为止。此时,如主机PC1再次发送数据帧给主机PC3时,由于MAC地址表中已经记录了该帧的目的地址的对应交换机端口号,则直接将数据转发到E0/3端口,不再向其他端口转发数据帧。
3. MAC地址表
交换机的MAC地址表也可以手工静态配置,静态配置的记录不会被老化。由于MAC地址表中对于同一个MAC地址只能有一个记录,所以如果静态配置某个目的地址和端口号的映射关系以后,交换机就不能再动态学习这个主机的MAC地址。
4. 交换机数据转发方式
以太网交换机的数据交换与转发方式可以分为直接交换、存储转发交换和改进的直接交换3类。
(1)直接交换
在直接交换方式下,交换机边接收边检测。一旦检测到目的地址字段,便将数据帧传送到相应的端口上,而不管这一数据是否出错,出错检测任务由结点主机完成。这种交换方式交换延迟时间短,但缺乏差错检测能力,不支持不同输入/输出速率的端口之间的数据转发。
(2)存储转发交换
在存储转发方式中,交换机首先要完整地接收站点发送的数据,并对数据进行差错检测。如接收数据是正确的,再根据目的地址确定输出端口号,将数据转发出去。这种交换方式具有差错检测能力并能支持不同输入/输出速率端口之间的数据转发,但交换延迟时间较长。
(3)改进的直接交换
改进的直接交换方式是将直接交换与存储转发交换结合起来,在接收到数据的前64字节之后,判断数据的头部字段是否正确,如果正确则转发出去。这种方式对于短数据来说,交换延迟与直接交换方式比较接近;而对于长数据来说,由于它只对数据前部的主要字段进行差错检测,交换延迟将会减少。
5. 通信过滤
交换机建立起MAC地址表后,它就可以对通过的信息进行过滤了。以太网交换机在地址学习的同时还检查每个帧,并基于帧中的目的地址做出是否转发或转发到何处的决定。如图7.7所示为两个以太网和三台计算机通过以太网交换机相互连接的示意图。通过一段时间的地址学习,交换机形成了图7.7所示的MAC地址表。
假设主机A需要向主机G发送数据,因为主机A通过集线器连接到交换机的端口1,所以,交换机从端口1读入数据,并通过MAC地址表决定将该数据帧转发到哪个端口。在图7.7中,主机G通过集线器连接到交换机的端口5,于是,交换机将该数据帧转发到端口5,不再向端口1、端口2、端口3和端口4转发。
假设主机A需要向主机B发送数据帧,交换机同样在端口1接收该数据。通过搜索地址映射表,交换机发现主机B与端口1相连,与发送的源主机处于同一端口。这时交换机不再转发,简单地将数据丢弃,数据帧被限制在本地流动。这是交换机和集线器截然不同的地方。
7. STP:生成树协议 (IEEE 802.1D)
集线器可以按照水平或树型结构进行级联。但是,集线器的级联绝不能出现环路,否则发送的数据将在网中无休止地循环,造成整个网络瘫痪。
当交换机通过多条链路连接起来为了实现可靠性和容错提供冗余路径时,环路就可能发生。在这种情况下,以太网交换机除了进行数据帧进行转发外。还执行生成树协议(Spanning Tree,即IEEE 802.1D)。交换机通过实现生成树协议,可以相互交换信息,并利用这些信息将网络中的某些环路断开,从而在逻辑上形成一种树型结构。交换机按照这种逻辑结构转发信息,保证网络上发送的信息不会绕环旋转。
7.2.4 局域网交换机的种类
1. 从广义上来看,交换机分为两种:广域网交换机和局域网交换机。
广域网交换机主要应用于电信领域,提供通信基础平台。而局域网交换机则应用于局域网络,用于连接终端设备,如PC机及网络打印机等。
2. 按照现在复杂的网络构成方式,网络交换机被划分为接入层交换机、汇聚层交换机和核心层交换机。
核心层交换机全部采用机箱式模块化设计,已经基本上都设计了与之相配备的1000Base-T模块。接入层支持1000Base-T的以太网交换机基本上是固定端口式交换机,以10/100M端口为主,并且以固定端口或扩展槽方式提供1000Base-T的上联端口。汇聚层1000Base-T交换机同时存在机箱式和固定端口式两种设计,可以提供多个1000Base-T端口,一般也可以提供1000Base-X等其他形式的端口。接入层和汇聚层交换机共同构成完整的中小型局域网解决方案。
3.从传输介质和传输速度上看,局域网交换机可以分为以太网交换机、快速以太网交换机、千兆以太网交换机、10G以太网交换机、FDDI交换机、ATM交换机和令牌环交换机等多种,这些交换机分别适用于以太网、快速以太网、千兆位以太网、万兆位以太网、FDDI、ATM和令牌环网等环境。
l 以太网交换机:是最普遍和便宜的,它的档次比较齐全,应用领域也非常广泛,在大大小小的局域网都可以见到它们。以太网包括三种网络接口:RJ-45、BNC和AUI,所用的传输介质分别为:双绞线、细同轴电缆和粗同轴电缆。
l 快速以太网交换机:适用于100Mbps快速以太网。目前快速以太网主要是10/100Mbps自适应型的为主。通常所采用的介质是双绞线,有的为了兼顾与其它光传输介质的网络互联,还会留有少数的光纤接口。
l 千兆位以太网交换机、万兆位以太网交换机:一般用于一个大型网络的骨干网段,所采用的介质有光纤和双绞线两个,对应的接口为SC和RJ45接口两种。
l ATM交换机:用于ATM网络的交换机产品。现在只广泛用于电信、邮政网的主干网段。
l FFDI交换机:适用于老式中、小型企业的快速数据交换网络中,接口形式都为光纤接口。
4. 从规模应用上又有企业级交换机、部门级交换机和工作组交换机等。
一般来讲,企业级交换机都是机架式,部门级交换机可以是机架式,也可以是固定配置式,而工作组级交换机则一般为固定配置式,功能较为简单。另一方面,从应用的规模来看,作为骨干交换机时,支持500个信息点以上大型企业应用的交换机为企业级交换机,支持300个信息点以下中型企业的交换机为部门级交换机,而支持100个信息点以内的交换机为工作组级交换机。
5. 按照OSI的七层网络模型,交换机又可以分为第二层交换机、第三层交换机、第四层交换机等,一直到第七层交换机。
基于MAC地址工作的第二层交换机最为普遍,用于网络接入层和汇聚层。基于IP地址和协议进行交换的第三层交换机普遍应用于网络的核心层,也少量应用于汇聚层。部分第三层交换机也同时具有第四层交换功能,可以根据数据帧的协议端口信息进行目标端口判断。第四层以上的交换机称之为内容型交换机,主要用于互联网数据中心。
6.按照交换机的可管理性,又可把交换机分为可管理型交换机和不可管理型交换机,它们的区别在于对SNMP、RMON等网管协议的支持。
可管理型交换机便于网络监控、流量分析,但成本也相对较高。大中型网络在汇聚层应该选择可管理型交换机,在接入层视应用需要而定,核心层交换机则全部是可管理型交换机。
7. 按照交换机是否可堆叠,交换机又可分为可堆叠型交换机和不可堆叠型交换机两种。设计堆叠技术的一个主要目的是为了增加端口密度。
8. 按照最广泛的普通分类方法,局域网交换机可以分为桌面型交换机(Desktop Switch)、工作组型交换机(Workgroup Switch)和校园网交换机(Campus Switch)三类。
桌面型交换机是最常见的一种交换机,使用最广泛,尤其是在一般办公室、小型机房和业务受理较为集中的业务部门、多媒体制作中心、网站管理中心等部门。在传输速度上,现代桌面型交换机大都提供多个具有10/100M自适应能力的端口。工作组型交换机常用来作为扩充设备,在桌面型交换机不能满足需求时,大多直接考虑工作组型交换机。虽然工作组型交换机只有较少的端口数量,但却支持较多的MAC地址,并具有良好的扩充能力,端口的传输速度基本上为100M。校园网交换机的应用相对较少,仅应用于大型网络,且一般作为网络的骨干交换机,并具有快速数据交换能力和全双工能力,可提供容错等智能特性,还支持扩充选项及第三层交换中的虚拟局域网(VLAN)等多种功能。
9. 如果按交换机的端口结构来分,交换机大致可分为:固定端口交换机和模块化交换机两种不同的结构。
l 固定端口交换机:就是它带有的端口是固定的,一般的端口标准是8端口、16端口、24端口、48端口等。在工作组中应用较多,一般适用于小型网络、桌面交换环境。如图7.8所示。
l 模块化交换机:拥有更大的灵活性和可扩充性,用户可任意选择不同数量、不同速率和不同接口类型的模块,以适应千变万化的网络需求。如图7.9所示。
7.2.5交换机之间的连接
交换机之间的连接最简单的一种方法就是采用一根交叉的双绞线(1、2和3、6对调)将它们连接起来。如果下级交换机有Uplink口,也可以接到Uplink口上,用直连线连接。总的来讲,交换机之间的连接有以下几种。
1. 级联
级联扩展模式是最常规、最直接的一种扩展模式。交换机的级联根据交换机的端口配置情况又有两种不同的连接方式:
(1)交换机有“UpLink(级联)”端口
如果交换机备有“UpLink(级联)”端口,如图7.10所示,则可直接采用这个端口进行级联。在级联时,上一级交换机中要连到交换机的普通端口,下层交换机则连到专门的“UpLink(级联)”端口,如图7.11所示。
这种级联方式性能比较好,因为级联端口的带宽通常较高。交换机间的级联网线必须是直通线,不能采用交叉线,而且每端网络不能超过双绞线单段网线的最大长度-100米。
(2)交换机没有“UpLink(级联)”端口
如果交换机没有“UpLink(级联)”端口,那也可以采用交换机的普通端口进行交换机的级联,但这种方式的性能稍差,因为下级交换机的有效总带宽实际上就相当于上级交换机的一个端口带宽。级联方式如图7.12所示。但这时交换机的连接端口都是采用交换机普通端口,交换机间的级联网线必须是交叉线,不能采用直通线,同样单段长度不能超过100米。
级联方式是组建大型LAN的最理想的方式,可以综合各种拓扑设计技术和冗余技术,实现层次化网络结构,被广泛应用于各种局域网中。但为了保证网络的效率,一般建议层数不要超过4层。
2. 冗余连接
在以太网环境下是不允许出现环路的,生成树(Spanning Tree)则可以在交换机之间实现冗余连接又避免出现环路。当然,这要求交换机支持Spanning Tree。
不过,Spanning Tree冗余连接的工作方式是Stand By,也就是说,除了一条链路工作外,其余链路实际上是处于待机(Stand By)状态,这显然影响传输的效率。一些最新的技术,例如FEC(FastEthernet Channel)、ALB(Advanced Load Balancing)和Port Trunking技术,则可以允许每条冗余连接链路实现负载分担。其中FEC和ALB技术是用来实现交换机与服务器之间的连接(Server to Switch),而Port Trunking技术则是实现交换机之间的连接(Switch to Switch)。通过Port Trunking的冗余连接,交换机之间可以实现几倍于线速带宽的连接。
3. 堆叠
提供堆叠接口的交换机之间可以通过专用的堆叠线连接起来。通常,堆叠的带宽是交换机端口速率的几十倍,例如,一台100M交换机,堆叠后两台交换机之间的带宽可以达到几百兆甚至上千兆。
多台交换机的堆叠是靠一个提供背板总线带宽的多口堆叠母模块与单口的堆叠子模块相联实现的,并插入不同的交换机实现交换机的堆叠。上联交换机可以通过上联端口实现与骨干交换机的连接。例如,一台具有24个10M和1个100M端口的交换机,就可以通过100M端口与100M主干交换机实现100M速率的连接。
7.2.6 三层交换技术
1. 什么是三层交换
三层交换(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的。众所周知,传统的交换技术是在OSI模型中的数据链路层进行操作的,而三层交换技术是在OSI模型中的网络层实现了数据报的高速转发。简单地说,三层交换技术就是:二层交换技术+三层转发技术。它解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
2. 三层交换原理
一个具有三层交换功能的设备,是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。
其原理是:假设两个使用IP协议的结点A、B通过第三层交换机进行通信,发送结点A在开始发送时,把自己的IP地址与结点B的IP地址比较,判断结点B是否与自己在同一子网内。若目的结点B与发送结点A在同一子网内,则进行二层的转发。若两个结点不在同一子网内,如发送结点A要与目的结点B通信,发送结点A要向“缺省网关”发出ARP(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块。当发送结点A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道结点B的MAC地址,则向发送结点A回复结点B的MAC地址。否则三层交换模块根据路由信息向结点B广播一个ARP请求,结点B得到此ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给发送结点A,同时将结点B的MAC地址发送到二层交换引擎的MAC地址表中。从这以后,当结点A向结点B发送的数据报便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。
3. 三层交换机种类
第三层交换技术在开始并没有统一的标准,各个网络生产厂家先生产出来使用,后成为规范。目前常见的第三层交换技术有以下几种:
(1)3COM的FastIP技术
采用“路由一次,随后转发”的交换技术,把基于IP地址路由表的路由功能转换成基于端口/MAC地址表的转发功能。从而实现完全的端到端高速交换通信,使网络的性能获得提高。它支持ATM和千兆以太网环境。它在802.1Q标准的支持下,提供良好的服务质量,为实时音视频数据流交换提供所需的带宽,同时可以和WAN互连。
(2)Cisco的标记交换(Tag Switching)
利用交换的路由表为每条路径指定在本地生成的标记(Tag),给每个数据包加上标签,此标签经过交换机是根据标记进行路由查找,判断最佳路径,这样比传统的子网路由交换快得多。它适合于大型的网络结构。
(3)MPOA(Multi-Protocol Over ATM)
它是ATM论坛提出的一种规范,是通过源地址用户的请求,三层交换机执行路由计算后给出最佳传输路径,然后建立一条交换虚电路,越过子网边界,不用再作路由选择。
(4)Cisco的Netflow交换
每个数据分组仍然采用一般的第三层路由,处理之后路由器把第一个数据分组的信息记录在NetFlow高速缓存中,后续的数据分组到达之后就首先在这个高速缓存区中进行匹配查找,如果找到就是用该路由信息(包括下一个主机/中继路由器的MAC地址和本地路由器的输出端口号)直接进行交换转发,否则再进行通常的路由转发。它并不是第二层直通的交换方式。
7.2.7 高层交换技术
为了提高数据的传输速率,又出现了更高层的交换技术,如第四层交换和第七层交换,从而更好地解决数据流在网络中传递的速度和传输容量。
1. 第四层交换技术
第四层交换技术利用第三层和第四层包头中的信息来识别应用数据流会话,这些信息包括TCP/UDP端口号、标记应用会话开始与结束的标记位以及IP源/目的地址。利用这些信息,第四层交换机可以做出向何处转发会话传输流,它能识别哪个包在前,哪个包在后,可以从头到尾跟踪和维护各个会话,是真正的“会话交换机”。
第四层交换机根据会话和应用层信息做出转发决定。所以用户的请求可以根据不同的规则被转发到最佳的服务器上。因此,第四层交换技术是用于传输数据和实现多台服务器间负载均衡的理想机制。
在发出一个服务请求时,第四层交换机通过判定TCP开始,来识别一次会话的开始。然后它利用复杂的算法来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将会话与一个具体的IP地址联系在一起,并用该服务器真正的IP地址来代替服务器上的虚拟IP地址。每台第四层交换机都保存一个与被选择的服务器相配的源IP地址以及源TCP 端口相关联的连接表,然后第四层交换机向这台服务器转发连接请求,所有后续包在客户机与服务器之间重新影射和转发,直到交换机发现会话为止。
2. 第七层交换技术
在第四层交换大大地提高了网络性能和QoS保证之后,在更高的层次上也引入了交换的概念,可以称之为第七层交换技术,或者高层智能交换。
第七层交换技术可以定义为数据包的传送不仅仅依据MAC地址(第二层交换)或源/目标IP地址(第三层路由)以及依据TCP/UDP端口(第四层地址),而是可以根据内容(表示/应用层)进行。这样的处理更具有智能性,交换的不仅仅是端口,还包括了内容,因此,第七层交换机是真正的“应用交换机”。
这类具有第七层认知的交换机可以应用在很多方面,比如保证不同类型的传输流被赋予不同的优先级。它可以对传输流进行过滤并分配优先级,使你不必依赖于业务或网络设备来达到这些目的,比如,网络电子商务提供商使用80端口提供用户服务,但是对于不同的Web请求他们希望不同对待,比如浏览一般商品的Web请求的级别比用户发出的定购Web请求要低一些,而且处理起来也不一样。这样需要识别80端口中的具体的URL内容来进行判断,赋予不同的优先权交换到不同的处理器上去。更进一步,可能需要对不同级别的用户的Web请求给予不同QoS优先权,这样就需要对数据请求的内容进行识别,这时候对交换机的智能要求就非常高了。