2007-05-07

三层交换机

(文章搜集)
=============================
为什么用三层交换机
=============================

交换的基本功能在于将输入输出端口连接起来从而实现业务流转发,以往的二层报文交换使用MAC地址来判别数据包的去向,也就是说二层交换是转发基于第二层地址的业务流。三层交换则是转发基于第三层地址的业务流,除了还可以进行与二层交换相似的交换、认证、报文过滤等功能外,三层交换机还可以进行路由处理,这也是三层交换机特点所在。
我们知道二层交换是基于MAC寻址,但是对于我们想要联系的设备来说,MAC地址只是物理地址而不是逻辑地址,而实际应用中我们则需要比简单的物理地址更多的地址来达到应用的要求,而基于第三层的IP地址则比MAC更能合乎要求。TCP/IP是目前很多应用程序的通讯接口,它标明了实际通讯目标所拥有的逻辑地址,也是我们想要联系的设备的地址。我们连接网络的NIC都具有自己独一无二的MAC 地址,而在数据传输过程中MAC地址并不是应用程序所能够直接理解的地址,在数据的传输过程中物理地址不断的变化但是保持完整的是逻辑地址。为了更方便快捷地工作,我们使用可移动的寻址方式(IP)来获得数据目的地的信息而不用考虑下层信息,而且使用IP地址则拥有更好的扩展性能。

LAN交换机不但使用简单、费用较低,而且它的性能也非常不错,但是我们却不能把一个大型网络全部构建在交换机上。一个完全构建在交换机上的 LAN看上去就象一个广播网络,碰撞、堵塞以及通信问题会使你的网络变得一团糟。使用路由器则可以将网络划分为多个子网,通过路由所具备的功能来有效的进行安全控制策略以及避免堵塞等。数据报文以及数据包只能由路由在子网之间传输,因为子网地址是一种第三层地址,在这方面路由的功能是不能被取代的。路由另外一个功能就在于连接不同协议的网络。如果你拥有一个以太网和令牌环的组合网络,那么使用网桥和交换机是不能将其组合使用,而路由器则具备同时处理多个协议的能力。

在具备出色功能的同时,路由器也具备自己无法避免的缺点。路由的很多功能都是由软件所实现,这就不可避免的造成它成为网络的瓶颈,在速度上路由是无法与交换相比的,而通过使用三层交换机(路由交换机),我们就可以解决路由的速度问题。

三层交换机通过使用硬件交换机构实现了IP的路由功能,从而取代了以往的软件路由。三层交换机可以提供二层交换的网络速度以及每个连接端口的IP 路由功能。当基于MAC层的报文被三层交换机所接收,如果其目的地址属于已知地址,那么就直接以二层交换的速度进行交换;如果地址属于其他网络则进行路由。

简单的说三层交换机可以进行二层、三层的综合处理,其价格和性能可以达到以往二层交换机的位置,而又可以部分取代传统的路由器。相对于二层交换机,三层交换机具有连接大型网络的能力。


===================================================
三层交换
===================================================
三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈等问题。
三层交换原理

一个具有三层交换功能的设备,相当于是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。

其原理是:假设两个使用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、B或C分属于不同的子网,它们之间也可直接知道对方的MAC地址来进行通信,最重要的是,第三层交换机并没有像其它交换机一样把广播封包扩散,第三层交换机之所以叫三层交换机就是因为它可以看懂三层信息,比如IP地址、 ARP等。所以,三层交换机便能洞悉某一广播封包目的何在,在没有把它扩散出去的情形下,同时满足了发出该广播封包的人的需求(不论它们在任何子网里)。因为第三层交换机没做任何“拆、打”数据包的工作,所有经过它的数据包都不会被修改并以交换的速度传到目的地。所以,应用第三层交换技术即可实现网络路由的功能,又可以根据不同的网络状况做到最优的网络性能。

三层交换机种类

三层交换机可以根据其处理数据的不同而分为纯硬件和纯软件两大类。

(1)纯硬件的三层技术相对来说技术复杂,成本高,但是速度快,性能好,负载能力强。其原理是,采用ASIC芯片,采用硬件的方式进行路由表的查找和刷新。如图1所示。

当数据由端口接口芯片接收进来以后,首先在二层交换芯片中查找相应的目的MAC地址,如果查到,就进行二层转发,否则将数据送至三层引擎。在三层引擎中,ASIC芯片查找相应的路由表信息,与数据的目的IP地址相比对,然后发送ARP数据包到目的主机,得到该主机的MAC地址,将MAC地址发到二层芯片,由二层芯片转发该数据包。

图1 纯硬件三层交换机原理
① 端口A向三层交换模块发出ARP请求 ② 三层交换模块向端口B所在网段广播ARP请求 ③ 端口B的ARP应答 ④ 更新MAC地址表

广州百讯的SPEED ES3224及ES3800都属于这种类型。

(2)基于软件的三层交换机技术较简单,但速度较慢,不适合作为主干。其原理是,采用CPU用软件的方式查找路由表。如图2所示。

当数据由端口接口芯片接收进来以后,首先在二层交换芯片中查找相应的目的MAC地址,如果查到,就进行二层转发否则将数据送至CPU。CPU查找相应的路由表信息,与数据的目的IP地址相比对,然后发送ARP数据包到目的主机得到该主机的MAC地址,将MAC地址发到二层芯片,由二层芯片转发该数据包。因为低价CPU处理速度较慢,因此这种三层交换机处理速度较慢。

图2 软件三层交换机原理
① 端口A向三层交换模块发出ARP请求 ② 三层交换模块向端口B所在网段广播ARP请求 ③ 端口B的ARP应答 ④ 更新MAC地址表

===============================
和路由器的区别
===============================
传统的路由器在网络中有路由转发、防火墙、隔离广播等作用,而在一个划分了VLAN以后的网络中,逻辑上划分的不同网段之间通信仍然要通过路由器转发。由于在局域网上,不同VLAN之间的通信数据量很大,这样,如果路由器要对每一个数据包都路由一次,随着网络上数据量的不断增大,它将成为瓶颈。而第三层交换技术就是将路由技术与交换技术合二为一的技术。在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现。而三层交换机的路由查找是针对流的,它利用CACHE技术,很容易采用ASIC实现,因此,可以大大节约成本,并实现快速转发。

  但从技术上讲,路由器和三层交换机在数据包交换操作上存在着明显区别。路由器一般由基于微处理器的引接执行数据包交换,而三层交换机通过硬件执行数据包交换。因此与三层交换机相比,路由器功能更为强大,像VPN等功能仍无法被完全替代。处于同一个局域网中的各子网的互联,可以用三层交换机来代替路由器,但局域网必须与公网互联以实现跨地域的网络,这时路由器就不可缺少。一个完全构建在交换机上的网络会出现诸如碰撞、堵塞以及通信混乱等问题。使用路由器将网络划分为多个子网,通过路由所具备的功能来有效进行安全控制策略,则可以避这些问题。三层交换机现在还不能提供完整的路由选择协议,而路由器则具备同时处理多个协议的能力。当连接不同协议的网络,像以太网和令牌环的组合网络,依靠三层交换机是不可能完成网间数据传输的。除此之外,路由器还具有第四层网络管理能力,这也是三层交换机所不具备的。

没有评论: