第三层交换技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三层交换技术
纪林
1.引言
在今天的网络建设中,新出现的三层交换机已成为我们的首选。
它以其高效的性能、优良的性能价格比得到用户的认可和赞许。
目前,三层交换机在企业网/校园网建设、智能社区接入等等许多场合中得到了大量的应用,市场的需求和技术的更新推动这种应用向纵深发展。
2.传统交换技术
传统的局域网交换机是一种二层网络设备,它在操作过程中不断收集信息去建立起它本身的一个MAC地址表。
这个表相当简单,基本上说明了某个MAC 地址是在哪个端口上被发现的。
这样当交换机收到一个以太网包时,它便会查看一下该以太网包的目的MAC地址,核对一下自己的地址表以确认该从哪个端口把包发出去。
但当交换机收到一个不认识的包时,也就是说如果目的MAC 地址不在MAC地址表中,交换机便会把该包“扩散”出去,即从所有端口发出去,就如同交换机收到一个广播包一样,这就暴露出传统局域网交换机的弱点:不能有效的解决广播、异种网络互连、安全性控制等问题。
因此,产生了交换机上的VLAN(虚拟局域网)技术。
3.第三层交换技术
三层交换(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的。
众所周知,传统的交换技术是在OSI网络标准模型中的第二层――数据链路层进行操作的,而三层交换技术在网络模型中的第三层实现了分组的高速转发。
简单的说,三层交换技术就是“二层交换技术 + 三层转发”。
三层交换技术的出现,解决了局域网中网段划分之后网段中的子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
一个具有三层交换功能的设备,是一个带有第三层路由功能的第二层交换机,但它是两者的有机结合,而不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。
我们可以通过以下例子说明三层交换机是如何工作的。
假设两个使用IP协议的站点A、B通过第三层交换机进行通信,发送站点A在开始发送时,会先拿自己的IP地址与B站的IP地址进行比较,判断B站是否与自己在同一子网内。
若目的站B 与发送站A在同一子网内,则进行二层的转发。
具体步骤如下:为了得到站点B的 MAC地址,站点A首先发一个ARP广播报文,请求站点B的MAC地址。
该ARP请求报文进入交换机后,首先进行源MAC地址学习,芯片自动把站点A的MAC地址以及进入交换机的端口号等信息填入到芯片的MAC地址表中,然后在MAC地址表中进行目的地址查找。
由于此时是一个广播报文,交换机则会把这个广播报文从进入交换机端口所属的VLAN中进行广播。
B站点收到这个ARP请求报文之后,会立刻发送一个ARP回复报文,这个报文是一个单播报文,目的地址为站点A的MAC地址。
该包进入交换机后,同样,首先进行源MAC地址学习,然后进行目的地址查找,由于此时MAC地址表中已经存在了A站点MAC地址的匹配条目,所以交换机直接把此报文从相应的端口中转发出去。
通过以上一次ARP过程,交换芯片就把站点A和B的信息保存在其MAC地址表中。
以后A、B之间进行通信或者同一网段的其它站点想要与A或B通信,交换机就知道该把报文从哪个端口送出。
还必须说明的一点是,当查找MAC地址表的时候发现找不到匹配表项,该报文又不是广播或多播报文,此时此报文被称为DLF(Destination Lookup Failure)报文,交换机对此类报文的处理就象对收到一个广播报文处理一样,将此报文从进入端口所属的VLAN中扩散出去。
从以上过程可以看出,所有二层转发都是由硬件完成的,无论是MAC地址表的学习过程还是目的地址查找确定输出端口过程都没有软件进行干预。
下面我们看一下两个站点通过三层交换机实现跨网段通信是怎样一个过程。
如上例,站点A、B通过三层交换机进行通信。
站点A和B所在网段都属于交换机上的直连网段,若站点A和站点B不在同一子网内,发送站A首先要向其“缺省网关”发出ARP请求报文,而“缺省网关”的IP地址其实就是三层交换机上站点A所属VLAN的IP地址。
当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,交换机就向发送站A回一个ARP回复报文,告诉站点A交换机此VLAN的MAC地址,同时可以通过软件把站点A的IP地址、MAC地址、与交换机直接相连的端口号等信息设置到交换芯片的三层硬件表项中。
站点A收到这个ARP回复报文之后,进行目的MAC地址替换,把要发给B的包首先发给交换机。
交换机收到这个包以后,同样首先进行源MAC地址学习,目的MAC地址查找,由于此时目的MAC地址为交换机的MAC地址,在这种情况下将会把该报文送到交换芯片的三层引擎处理。
一般来说,三层引擎会有两个表,一个是主机路由表,这个表是以IP地址为索引的,里面存放目的IP地址、下一跳MAC地址、端口号等信息。
若找到一条匹配表项,就会在对报文进行一些操作(例如目的MAC与源MAC替换、TTL减1等)之后将报
文从表中指定的端口转发出去。
若主机路由表中没有找到匹配条目,则会继续查找另一个表――网段路由表。
这个表存放网段地址、下一跳MAC地址、端口号等信息。
一般来说这个表的条目要少得多,但覆盖的范围很大,只要设置得当,基本上可以保证大部分进入交换机的报文都走硬件转发,这样不仅大大提高转发速度,同时也减轻了CPU的负荷。
若查找网段路由表也没有找到匹配表项,则交换芯片会把包送给CPU处理,进行软路由。
由于站点B属于交换机的直连网段之一,CPU收到这个IP报文以后,会直接以B的IP为索引检查ARP缓存,若没有站点B的MAC地址,则根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向交换机回复其MAC地址,CPU在收到这个ARP回复报文的同时,同样可以通过软件把站点B的IP地址、MAC地址、进入交换机的端口号等信息设置到交换芯片的三层硬件表项中,然后把由站点A发来的IP报文转发给站点B,这样就完成了站点A到站点B的第一次单向通信。
由于芯片内部的三层引擎中已经保存站点A、B 的路由信息,以后站点A、B之间进行通信或其它网段的站点想要与A、B进行通信,交换芯片则会直接把包从三层硬件表项中指定的端口转发出去,而不必再把包交给CPU处理。
这种通过“一次路由,多次交换”的方式,大大提高了转发速度。
需要说明的是,三层引擎中的路由表项大都是通过软件设置的。
至于何时设置、怎么设置并不存在一个固定的标准,我们在此也不详细讨论。
一个单波IP报文从进入三层交换机到转发出去一般来说走以下流程:
通过以上流程我们可以了解报文在交换机中的执行过程,同时我们也可以清楚的看出三层交换机是如何充分把传统交换机和路由器的优势有机的结合在一起。
在实际应用的网络环境中,对于跨网段通信的需求不断提高,过去的网络在一般情况下按“80/20分配”规则,即只有20%的流量是通过骨干路由器与中央服务器或企业网的其他部分通信,而80%的网络流量主要仍集中在不同的部门子网内。
而今天,这个比例已经提高到了50%,甚至80%(倒二八,20/80),这是因为今天的网络正在经历着诸多应用的集合影响。
网络应用已经超越了组件和电子信函,新型应用已经如此迅速和深刻地冲击着网络,比如,任何人通过任何一个浏览器便可进行访问设定的网页,支持诸如销售、服务和财务之类商业功能的数据仓库。
这种变化对传统路由器产生了直接的冲击。
因为传统的路由器更注重对多种介质类型和多种传输速度的支持,而目前数据缓冲和转换能力比线速吞吐能力和低时延更为重要。
处于网络核心位置的路由器的高费用、低性能使其成为网络的瓶颈,但由于网络间互连的需求,它又是不可缺少的。
虽然也开发了高速路由器,但是由于其成本太高,所以仅用于Internet主干部分。
三层交换机将二层交换机和三层路由器两者的优势有机而智能化的结合在一起,在各个层次上提供线速性能,从而解决了传统路由器低速、复杂所造成的网络瓶颈问题。
在没有广域网连接需求的场合,用于连接不同子
网的传统路由器正在以极快的速度被三层交换机所代替。
4.小结
三层交换从概念的提出到今天的普及应用,虽然只历经了几年的时间,但其在网络建设中的应用越来越广泛,从最初骨干层、中间的汇聚层一直渗透到边缘的接入层。
三层交换机以其速度
快、性能好、价格低等众多的优势已经把路由器排挤到网络的“边缘”。
凡是没有广域网连接需
求,同时又需要路由器的地方,都可以用三层交换机代替。
随着ASIC硬件芯片技术的发展和实际
应用的推广,三层交换的技术与产品会得到进一步发展。
摘要分析第三层交换技术基本特征,并深入解析第三层交换技术分类、工作原理及实现方法,比较了两类第三层交换技术报文转发特点。
对目前局域网互联中第三层交换机“路由一次,处处交换”或“基于目的MAC地址的第二层交换”这一观点提出质疑。
关键词第三层交换技术传统路由器三层交换机报文到报文交换流交换
随着当今网络业务流量呈几何级数爆炸式增长,并且业务流模式改变为更多的业务流跨越子网边界,穿越路由器的业务流也大大增加,传统路由器低速、复杂所造成的网络瓶颈凸现出来。
第三层交换技术的出现,很好地解决了局域网中业务流跨网段引起的低转发速率、高延时等网络瓶颈问题。
第三层交换设备的应用领域也从最初的骨干层、汇聚层一直渗透到边缘的接入层。
第三层交换设备在网络互联中的应用日益普及。
然而,人们对第三层交换技术及其设备的理解却存在较大差异。
一些专业杂志和科普文摘对第三层交换技术原理的不准确介绍容易引起误导。
第三层交换作为新一代局域网路由和交换技术,其产品在体系结构、所实现的功能和性能上都有别于二层以太网交换机和传统路由器。
本文分析第三层交换技术的基本特征、分类及实现原理,希望能对人们进一步理解和使用第三层交换设备有所裨益。
1 第三层交换技术基本特征
第三层交换技术也称为IP交换技术。
它将第二层交换机和第三层路由器两者的优势结合成为一个有机的整体,是一种利用第三层协议中的信息来加强第二层交换功能的机制,是新一代局域网路由和交换技术。
第三层交换技术具有以当前系统1/10的代价获得传输性能于过去10倍的能力。
既然第三层交换机能够代替路由器执行传统路由器的大多数功能,它应该具有路由的基本特征。
我们知道,路由的核心功能主要包括数据报文转发和路由处理两方面。
数据报文转发是路由器和第三层交换机最基本的功能,用来在子网间传送数据报文;路由处理子功能包括创建和维护路由表,完成这一功能需要启用路由协议如RIP或OSPF来发现和建立网络拓扑结构视图,形成路由表。
路由处理一旦完成,将数据报文发送至目的地就是报文转发子功能的任务了。
报文转发子功能的工作包括检查IP报文头、IP数据包的分片和重组、修改存活时间(TTL)参数、重新计算IP头校验和、MAC地址解析、IP包的数据链路封装以及IP包的差错与控制处理(IC MP)等等。
第三层交换也包括一系列特别服务功能,如数据包的格式转换,信息流优先级别划分,用户身份验证及报文过滤等安全服务,IP地址管理,局域网协议和广域网协议之间的转换。
当第三层交换机仅用于局域网中子网间或VLAN间转发业务流时可以不执行路由处理,只作第三层业务流转发,这种情况下设备可以不需要路由功能。
由于传统路由器是一种软件驱动型设备,所有的数据包交换、路由和特殊服务功能,包括处理多种底层技术和多种第三层协议几乎都由软件来实现,并可通过软件升级增强设备功能,因而具有良好的扩展性和灵活性。
但
它也具有配置复杂、价格高、相对较低的吞吐量和相对较高的吞吐量变化等缺点。
第三层交换技术在很大程度上弥补了传统路由器这些缺点。
在设计第三层交换产品时通常使用下面一些方法:
·削减处理的协议数,常常只对IP;
·只完成交换和路由功能,限制特殊服务;
·使用专用集成电路(ASIC)构造更多功能,而不是采用RSIC处理器之上的软件运行这些功能。
第三层交换产品采用结构化、模块化的设计方法,体系结构具有很好的层次感。
软件模块和硬件模块分工明确、配合协调,信息可为整个设备集中保存、完全分布或高速缓存。
例如,IP报文的第三层目的地址在帧中的位置是确定的,地址位就可被硬件提取,并由硬件完成路由计算或地址查找;另一方面,路由表构造和维护则可继续由RSIC芯片中的软件完成。
总之,第三层交换技术及产品的实现归功于现代芯片技术特别是ASIC技术的迅速发展。
2 第三层交换技术分类、原理及实现方法
目前主要存在两类第三层交换技术:第一类是报文到报文交换,每一个报文都要经历第三层处理(即至少是路由处理),并且数据流转发是基于第三层地址的;第二类是流交换,它不在第三层处理所有报文,而只分析流中的第一个报文,完成路由处理,并基于第三层地址转发该报文,流中的后续报文使用一种或多种捷径技术进行处理,此类技术的设计目的是方便线速路由。
理解第三层交换技术的关键首先需要区分这两类报文的不同转发方式。
报文到报文处理方法的一个显著特征是其能够适应路由的拓扑变化。
通过运行标准协议并维护路由表,报文到报文交换设备可动态地重新路由报文,绕过网络故障点和拥塞点而无需等待高层的协议检测报文丢失。
流交换方法没有这些特征,因为后续报文走捷径而无需第三层处理,这样,它就不能识别标准协议对路由表的改变。
因此,流交换方法可能需要另外的协议取得拓扑变化或拥塞信息,以便到达交换系统正确的地方。
2.1报文到报文交换技术原理及实现方法
报文到报文交换遵循这样一个数据流过程:报文进入系统中OSI参考模型的第一层,即物理接口,然后在第二层接受目的MAC检查,若在第二层能交换则进行二层交换,否则进入到第三层,即网络层。
在第三层,报文要经过路径确定、地址解析及某些特殊服务。
处理完毕后报文已更新,确定合适的输出端口后,报文通过第一层传送到物理介质上。
传统路由器是一种典型的符合第三层报文到报文交换技术的设备,它的完全基于软件的工作机制所产生的固有缺陷已被现代基于硬件的第三层交换设备所克服。
目前各个厂商所提供的第三层交换设备在体系结构上几乎具有相同的硬件结构。
中央硅交换阵列通过CPU接口总线连接CPU模块,通过I/O接口总线连接I/O接口模块,是设备各端口流量汇聚和交换的集中点,由它提供设备各进出端口的并行交换路径,所有跨I/O接口模块的数据流都要通过硅交换阵列进行转发。
每个I/O接口模块包含一个或多个转发引擎,其上的ASIC完成所有的报文*作,包括路由查找、报文分类、第三层转发和业务流决策,这一将报文转发分布于每一个I/O端口的ASIC的方法是第三层交换设备能够线速路由的关键部分。
CPU模块主要完成设备的背景*作,如运行与路由处理相关的各种路由协议、创建和维护路由表、系统配置等,并把路由表信息导入每一个I/O接口模块分布式转发引擎的ASIC中。
这样,各接口模块的分布式转发引擎ASIC直接根据路由表做出报文的转发策略,无需像传统路由器那样所有报文必须经过CPU 的处理。
2.2 流交换技术原理及实现方法
在流交换中,第一个报文被分析以确定其是否标识一个“流”或者一组具有相同源地址或目的地址的报文。
流交换节省了检查每一个报文要花费的处理时间。
同一流中的后续报文被交换到基于第二层的目的地址。
流交换需要两个技巧,第一个技巧是要识别第一个报文的哪一个特征标识一个流,这个流可以使其余报文走捷径,即第二层路径。
第二个技巧是,一旦建立穿过网络的路径,就让流足够长以便利用捷径的优点。
怎样检测流、识别属于特
定流的报文以及建立通过网络的流通路随实现机制的变化而不同。
目前出现了多种流交换技术,如3Com公司的快速IP、由Cisco提交给IETF的多协议标记交换(MPLS)、ATM论坛的多协议(MPOA)以及Ipsilon公司的IP 交换。
我们可将其划分成两个主要类型:端系统驱动流交换和网络中心式流交换。
限于篇幅,现只简单介绍3Com 公司的快速IP工作原理。
3Com公司的快速IP属于端系统驱动流交换技术,其工作原理基于NHRP标准(草案)。
源端主机发送一个快速IP连接请求,该请求就像数据报文一样被路由穿过网络,如果目的端主机也运行快速IP,则它发送一个包含其MAC地址的NHRP应答报文给源端主机,如果源端主机和目的端主机存在二层交换通路,当NHRP应答报文到达源端主机时将在经过的交换机中建立目的端主机MAC地址和端口的映射表,随后源端主机可根据目的端主机MAC地址直接通过交换机二层通路交换数据报文,不再经过路由器;如果两端主机之间没有交换路径而无NHRP应答返回,则报文如前进行路由。
快速IP软件主要运行在源、目的端主机的网络接口卡(NIC)的驱动程序之上。
它与主机的IP协议栈和NIC 驱动程序接口,以协调NHRP交换。
总之,快速IP试图改善在交换网络上完成路由的转发性能,但它没有潜在的灵活性,也不能通过报文过滤提供任何安全保障,而且需要在参与快速IP交换的主机上安装NHRP协议软件。
实际上增加了设备的维护工作量。
多种流交换技术最初是在路由选择比较慢和代价比较大的前提下开发的。
报文到报文交换产品已经证明了情况不再如此。
与报文到报文交换产品相比,流交换方法显得更复杂和难以理解。
在动态网络环境下,成功地标识、建立、管理和撤消大量的流需要哪些措施,仍然是一个有待研究的问题。
目前应用在局域网互联的第三层交换设备多是基于报文到报文交换技术。
流交换更可能在广域网中找到其位置。
3对第三层交换机“路由一次,处处交换”或“基于目的MAC地址的第二层交换”这一观点提出质疑
当前,很多文章对三层交换机的工作原理进行过介绍,在交换机对三层报文转发机制上基本趋向一致观点,那就是“路由一次,处处交换”或“基于目的MAC地址的第二层交换”。
现摘录这些文?斜冉嫌写 硇缘脑 娜缦拢?br />
“第三层交换的原理是,假设两个使用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发送的数据包便全部交给二层交换处理,信息得以高速交换。
由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此第三层交换机的速度很快,接近第二层交换机的速度,同时比相同路由器的价格低很多”。
分析上面这段文章,笔者认为这种观点违背了主机与缺省网关通信的基本原理。
文章提到“当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。
否则三层交换模块根据路由信息向B站广播一个ARP请求”。
实际上,A站向三层交换模块发送网关IP地址的ARP请求时,ARP请求报文并不包含B站IP地址,三层交换模块只会把自己IP地址对应的MAC地址回复给A站,根本不会向发送站A回复B的MAC地址。
这是错误之一。
退一步说,即便三层交换模块回复B站的MAC地址,由于B站和A站不在同一子网,A站也不会把B站的目的MAC地址封装在A站要发送的以太网帧中。
这是错误之二。
再者,三层交换模块接收A站发送到B站的以太网帧,三层交换模块从以太网帧的IP包中提取B站的IP地址,通过查找路由表,寻找到B站的下一跳,若B站与第三层交换机某一接口在同一网段,第三层交换机向B站IP地址广播ARP请求,从B站的ARP应答中可得知B站的MAC地址;若B站与三层交换机某一接口不在同一网段,中间相隔了好几跳,三层交换模块只会向下一跳IP地址广播ARP请求,下一跳ARP应答的应是下一跳IP 地址的MAC地址,三层交换模块无从得知B站的MAC地址。
这是错误之三。
要达到“路由一次,处处交换”或“基于目的MAC地址的第二层交换”的目的,必须改变现存主机与缺省网关的通信机制或第三层交换机的路由规则,换句话说,以一种新的主机与缺省网关的通信机制替代现有的通信机制。
就像前面描述的3Com公司的快速IP技术一样。
实际网络中主机和第三层交换机都工作得很好,无需主机做任何改变,也无需改变原有的网络设施。
在第三层交换机替代传统路由器的场合,子网间的流量转发性能却得到了空前的提高。
这并不是改变了交换机对三层报文转发机制的结果,即“路由一次,处处交换”或“基于目的MAC地址的第二层交换”的结果,而是第三层交换机基于硬件快速转发三层报文的结果。
简单地说,三层交换技术就是:二层交换技术+三层转发技术。
它解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
什么是三层交换
三层交换(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的。
众所周知,传统的交换技术是在OSI网络标准模型中的第二层――数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发。
简单地说,三层交换技术就是:二层交换技术+三层转发技术。
三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
三层交换原理
一个具有三层交换功能的设备,是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。
其原理是:假设两个使用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发送的数据包便全部交给二层交换处理,信息得以高速交换。
由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。
三层交换机种类。