全部博文(10)
分类: 系统运维
2010-12-26 19:47:02
Part II: 3层平台
Part III:3层交换机与路由器的关键区别
】
本文档将解释交换机(Switch)和路由器(Router)之间的区别。文档中提到的交换机,均是指以太网交换机,而不是ATM、帧中继或者语音交换机,并且交换机上运行基于TCP/IP的协议,而不是诸如IPX之类的老的企业类协议。本文档也提供了各种类型的设备应部署在何处的建议,这些建议均基于真实的实践经验。
要理解交换机和路由器之间的区别,我们必须先理解它们的应用环境。交换机设计用于LAN (Local Area Network,局域网),路由器设计用于WAN(Wide Area
Network, 广域网)。因此,它们的平台在设计时对一些基本的参数如软件能力、功能优化、可靠性、性能、扩展性和密度的需求是不一样的。不同环境下的流量模型和需求之间的区别是非常大的,并且可以应用一个近似的规则:局域网环境下的80%流量是本地的,20%流程是外部的,和广域网相比,这一趋势正在改变。此外,局域网流量模型可以以流向为主,并表现出可预测性。例如,FTP服务器、内网服务器和打印资源。这是相对于最大的广域网----公共互联网----网络可以通过不同的路由器互通,流量可非对称地通过了不同的路径返回,流量模式和数量不断变化而言的。从另外一个角度看,局域网中的流是N到1,广域网中的流是N到N。
80/20准则应该被视为一个近似的指导,因为颠覆性的技术、应用和组织不断的出现。例如,由Skype和e-Donkey驱动的p2p流量。这些应用载着点对点的野心,呼应着前互联网时代的ARPA网。
2层交换机实际上是一种具有学习或过滤功能的对局域网内部进行互联的桥,能使流量降低并阻止循环的发生。2层交换机因为扩展性、复杂性、效率和安全性等方面的限制,在广域网中是没有用的。表面上,一个3层交换机类似于路由器。但是,交换机被设计(架构上也为此而优化)用于LAN环境,这导致其在WAN环境中的稍显短缺。关键的短缺有:缺乏延迟带宽缓冲(Delay-bandwidth-buffering),缺乏冲突缓冲和流量控制,路由算法健壮性(robustness)较差,缺乏创建IP服务的能力和较少范围的接口【译注:此处应该是指T1/E1、T3/E3、ATM、POS、FR等接口】。
在本文档中,我们检查交换机和路由器的能力以及LAN和WAN环境的需求。理解了这些需求,我们就会知道在不同的环境下,哪种设备是最合适的。成本更低的3层交换机,堪比路由器的某些特征和功能,适当地了解这些,有助于作出正确的部署决策。
长期以来,业界争论的一个焦点问题是交换机是否有能力通过更加便宜和简单的方式,执行通常用路由器来实现的功能。这在互联网、广域网以及诸如城域以太网(Metro Area Networks, MANs)、”最后一公里”或者访问节点等领域可能是真的,事实上,现在很多服务提供商,在他们的网络中都选择使用城域以太网交换机。
人们都相信,部署以太网将大幅降低服务提供商的运营成本,并给服务提供商及他们的客户带来更好地收益。这种假设是合理的,从历史上可以看出,在企业及局域网中,每以太网端口的成本在持续下降。但是,在广域网中应用局域网技术却不是一件小事,特别是在广域网互联时的可扩展性问题。以太网的物理限制比如在单个冲突域中最多支持1024个节点,尽管可以通过交换机和中继器来扩展此限制。但是在非常大的网络中,这是不切实际的。层次化的网络设计对扩展性的要求尤其重要,这也是为什么IP是适用于全球通信的技术。不管扩展性问题,点到点(全双工)的以太网访问通道被证明在传输2层服务时是非常有效的。
在3层路由占据数据网统治地位之前,广域网中普遍使用2层桥接技术。很多种2层技术变得可用,例如,令牌环(Token Ring)、光纤分布数据接口(FDDI)、局域网仿真(LANE)等,但随着时间的推移,以太网逐渐成为了局域网的首选技术。以太网经历了10Mbps到现在10Gbps【译注:40G/100G以太网标准已经获IEEE批准,详见IEEE 802.3ba】的演变,甚至承担了同步数字传输体系(SONET/SDH)的一些属性,如IEEE802.17弹性分组环(Resilient Packet Ring, RPR)技术所展示的那样。同时,基于IPv4路由协议的互联网,已全面超出了每一个基于2层的基础结构。然而,对于服务提供商网络来说,2层仍然是非常重要的,它提供可信的多服务连接,例如,在帧中继及ATM上的语音。在未来,基于2层的MPLS VPN将成为带来收入的关键技术,通过融合的IP/MPLS基础架构,众多传统的方法将扩展出更多的效益。这些服务对传输客户的旧的非IP的协议同样有益,例如仍在某些特定应用中使用的SNA、IPX、DECNet和Appletalk协议。
现在多数以太网交换机都具有以IP为主的3层能力。在不断提供新的基于IP服务的时候,服务提供商现在比以往任何时候更能感受到降低运营成本的压力。由于3层交换机通常比路由器便宜,很多服务提供商都会问:为什么3层交换机不能代替路由器的位置?问题将在接下来讨论3层平台的章节处理,但交换机和路由器之间的关键区别可以概括为5个方面:扩展性、可靠性、特色、管理和配置问题,以及成本。
在1990年代,术语”2层交换”开始出现在数据网络行业中。它是一个描述局域网平台的,基于MAC层地址来进行高性能帧转发的词。如果这听起来很熟悉,那是因为这正是网桥的基本工作方式,只是性能更高。
当人们说到网桥,他们真正的意思是“过滤式网桥”,或者“侦听式网桥”。出于本文档的目的,术语“网桥”(或者2层交换)即是指这方面的意思。一个网桥将从任意端口接收到的包,中继到与其相连的其他LAN上。如果一个接收到的帧的目的地和此帧在同一个LAN中,则不将它转发到其他的LAN。因为它们只转发广播和非本地流量,通过LAN拓扑可以达到降低流量的目的,基于同样的理由,它们也用于低速WAN链路。这些设备设计用来检查诸如源MAC(Media Access Control)及目的MAC之类的2层信息,并依据它们进行处理。3层交换机和路由器检查ISO 7层模型中更高层的信息,包括源IP及目的IP,并依据它们进行转发。
那么2层交换机和网桥有什么关系呢?一个2层交换机实际上是一组网桥,通常通过星型拓扑进行连接。2层交换机上的每个端口是一个真正的网桥,通过线缆和其他交换机上的其他端口相连。生成树协议是和网桥相关的,它被用在交换机的每一个端口上。这意味着网桥和2层交换机基本上是一回事。
一个以太网交换机在混杂模式下监听所有发往本端口的帧。如果它发现一个帧的目的MAC是它已经从其他地方学习到的地址,则这个帧就被中继至那个地方,并记录下源MAC地址(不像路由器)、广播帧被中继到所有远端端口,同样也记录下源MAC。交换机通过一个发现和交换协议学习和填充它的MAC地址表。因为只有错误帧被丢弃,这个协议的主要目的是为了防止环路发生。这是为了不让帧在网络中一直循环下去,持续地占用资源,直到网络过载。
2层交换机的一个最吸引人的特性是它的协议独立性。这意味着任何3层协议均可通过交换机传输,例如SNA、IPX、DECNet和Appletalk,因为2层交换机不检查3层头。不需要修改帧,不像3层技术,在L3层设备的每一边,独立地处理2层帧头。
复杂性
复杂性和透明性是互斥的,因此必须在2者之间找到平衡。透明性与操作简单和良好的互操作性相关,但是,复杂活性使得特性和功能,有可能是针对特定应用的,要灵活地适应不同的网络条件。尽管2层交换机是透明的,但不是灵活的。一些表明网络有多复杂的例子有:
包分类:这是一种根据数据包高层协议所携带的信息来对数据包进行分类的能力,例如基于应用层的分类。在一个实时IP语音(Voice over IP, VoIP)和文件传输协议会话(File Transfer Protocol, FTP),或者工作于存储转发模式的电子邮件(email)之间是有区别的。2层交换机无法对此进行区分,因为它只看MAC层内容。
优先级队列:这是一种根据数据包的优先级或其他参数(如抖动、延迟等)对数据包进行排序输出的能力。如果一个2层交换机支持IEEE 802.1p标准,它可以基于MAC头中的优先级比特进行调度。但是很少有设备使用此功能,当其被映射到高层应用时就变得很有用了。这是2层交换机做不到的,因为它无法读取或基于3层或更高层信息进行操作。
冲突避免:为了降低冲突和端到端可靠协议的同步效果【译注:例如,TCP同步化现象】,技术之一就是故意地丢弃某些数据包。2层交换机无法参与此过程,因为它不能按数据包类型进行冲突避免。
分片:分片可以将一个数据包分成多个,以便于在低速的广域网链路上传输(通常有着更高的bit错误率)。分片对于诸如VoIP之类的实时应用通过慢速链路传输时,是非常重要的。2层交换机允许分片包通过,但这些分片包在最终的接收端必须被重组。这种灵活性的缺乏导致了额外的处理器负担【译注:这是对于终端而言的,终端必须重组分片】,甚至可能降低吞吐量。
采样:这种能力可以有选择地对传输中的数据包进行统计分析。采样有助于网络规划和设计过程,用来决定是否需要额外的会话数,或者用于检测DOS攻击。2层交换机不能基于数据包类型进行采样,因为它不能读取3层或以上层次的信息,或基于它们进行处理。
策略路由:2层交换机不能基于应用或终端用户来将数据包直接传输到另一个网络。策略路由允许管理员定义的重要流量,拥有更高的优先级或者路径开销,这些通常是路由器才能做到的。
因为2层交换机或网桥受到可扩展性的限制,它不会成为网络互联市场所选择的平台。MAC地址是非层次化的,不能像部署IPv4地址那样可以被聚合。
考虑下互联网不是由路由器而是由2层交换机构筑起来的场景。仅美国而言,它们就需处理超过1亿条的地址表项,每一个2层帧都需要查找一个6字节地址的表项,想象下这需要多大的内存!更重要的是,查找一个表项所需的时间。随着互联网的增长,这种限制只会使事情变得更糟。为适应这样的增长,任何拓扑的改变都需要显著改变2层交换机的地址表,在全球基础上,这种改变将是今日互联网各种拓扑混合时最主要的影响。2层交换机不可能具有这种级别的扩展性。
2层交换机的资源利用不是最有效的。例如,广播包将会洪泛到所有的出端口,这在局域网环境或许是可以接受的,但对于广域网,却是在浪费昂贵且稀有的带宽。因为发送广播是某些应用程序操作的一部分,它们不必穿过广域网链路。
像STP(Spanning Tree Protocol,生成树协议)之类的桥接协议,用于连接无环路的拓扑,它们不能最有效地使用MAN(城域以太网)或WAN带宽。最佳路由计算或者流量工程技术都不是为2层定义的,尽管某些技术,例如IEEE 802.3ad链路共享确实有所区别。
虽然多数交换机缺乏深内存缓冲区(Deep Memory Buffers),他们并不拒绝使用这些。考虑到制造成本等因素,交换机通常不会内建深内存缓冲区,这也是为什么交换机要比路由器便宜的原因之一。深内存缓冲区对于像TCP等有冲突避免的传输层协议在高带宽时延链路上的平滑运行,是比不可少的。带宽延迟缓冲区的必要性的将在3层平台章节详细讨论。
2层交换机提供了一种保证网络可用和可达的方式。如果2个2层交换机属于同一个LAN,通过运行STP协议,其中一个可以作为另一个的备份。冗余链路也是可以使用的,这样如果主链路出了故障,并行的备用链路立即可用。
因为二层交换机提供很少的终端用户保护措施,使用2层交换机的网络容易受到恶意攻击。由于广播包会被发送到所有的外出端口。恶意的或偶然的传播可以导致网络不可用,像DoS(Denial of Service,拒绝服务)攻击一样。
如果发生了一个Dos攻击,交换机将没有机会阻止它,因为它(指交换机)不能读取数据包的3层信息,因此不能对流量进行分类。与此相对,路由器可以基于网络层信息对流量进行分类,并可以过滤出流量,或者应用限速的方式来将DoS攻击的影响最小化。
如果一个窃听者获取了访问网络流量的权限,通过分析MAC地址就可以掌握大量的信息。例如,MAC地址的前3字节代表硬件制造商,甚至可以标示出硬件的类型。
为了防止窃听,最好是能加密网络流量。然而,加密传输LAN流量不具有商业上的可行性,因为2层交换机是一个低成本的平台。由于2层交换机通常不提供加密服务,它们提供了VLAN(Virtual LAN,虚拟局域网),在逻辑上将流量进行隔离。交换机也能够透明地传输加密流量。
操作问题
2层交换机是一个相对简单的设备,然而,这也意味着它们具有某些局限。将MAC地址的分配交给硬件制造商,由其保证MAC地址的非重复性是一个优点,因为不需要公共的机构对MAC地址的使用进行协调。与此相对,互联网地址必须有专门的机构来协调分配。然而,这种表面上的优势实际上是一个限制,因为缺乏地址协调机制意味着资源无法在不同的客户间重用。服务提供商内的资源共享,例如DNS(Domain Name Servers,域名服务器)、email、WWW(World Wide Web,万维网)等等,是互联网能成为关键商业工具的本质原因。
如果服务提供商部署2层家交换机,OSS(Operation Support System,运营支撑系统)的实行必须仔细考虑。例如,没有标准的方式来在不同的客户间共享一个网络管理站点,来监控客户允许监控的设备。这会降低网络的可用性、SLA(Service Level Agreements,服务级别协定)以及计费。