回忆L2/L3交换器的原理

回忆L2/L3交换器的原理

<汤普金斯: 转载请注明原链接
欢迎讨论: shexiaoming@yahoo.com.cn>

今天突然想起三层交换机,回忆了一下以前自己做L2/L3交换器的原理:

可以认为三层交换机就是一个多端口的路由器,L2交换机理解成一个多端口的网桥。

 随着企业内部网络的进一步扩到,主机增加到成百上千台,网络第三层的广播风暴成为了问题(权威的说法:一个TCP/IP网段上的主机数量不要超过300台)。传统的交换机工作在网络第二层,不能隔离三层的广播。一个的解决办法是在交换机上做VLAN隔离,再将VLAN上汇聚到上级路由器上,由路由器实现不同网段(3层网段)之间的路由转发。这就是最初的路由+交换模型,典型的产品是CISCOCatalyst 5500路由交换机。路由+交换是一个过渡产品,今天的三层交换机在体系结构上已有很大的改观,路由和交换通过ASIC充分揉合,第一个包经过路由算法确定路径后,后续的数据包交由交换引擎实现线速度交换。("一次路由,多次交换")当然,把所有的路由算法都固化还很困难,这就是今天的三层交换机要么不能100%实现线速交换,要么只能支持有限的简单的路由协议的原因。

 1)L2switch中的MAC-Port表相当简单,主要标明某个MAC地址是在哪个端口上发现的,所以当交换机接收到一个数据封包时,它会检查该封包的目的MAC地址,核对一下自己的地址表以决定从哪个端口发送出去。

2)但是,对于二层广播报文,二层交换机会在各网络节点上进行广播;同时,对于二层交换机无法识别的MAC地址,也必须在广播域内进行广播。==>这样L2switch仍然会冲突,MAC-Port表基于某种策略(???需求证),肯定大小有限,并且一定按照aging time老化时间来更新没有使用的表项。所以二层交换机低下连着过多的PC(像我们这样用Hub连到L2Switch),那么过多的MAC肯定会竞争MAC-Port表项。所以造成某些时候这些MAC占据着表项,某些时候那些MAC占据着表项,当某个MAC的包进入L2SWITCH时,没有查到对应表项(可能刚被竞争掉),就只有广播了,这样L2switch一个端口下连着的PC越多,广播就越容易发生。

为了避免在大型交换机上进行的广播所引起的广播风暴,需要在一个二层交换网络内进一步划分为多个虚拟网(VLAN)。在一个虚拟网(VLAN)内,由一 个工作站发出的信息只能发送到具有相同虚拟网号(VLANID)的其他站点,其它虚拟(VLAN)的成员收不到这些信息或广播帧。采用虚拟网(VLAN)可以控制网络上的广播风暴和增加网络的安全性。不同虚拟网(VLAN)之间的通信必须通过路由器进行。

 和二层转发由MAC地址对应到出端口的道理一样,三层转发也可以直接由IP地址对应到出端口IP地址的路由可以通过ARP来学习,同样需要老化。这样,VLAN间转发除第一个包需要通过ARP获得主机路由外,其它的报文直接根据IP地址就能够查找到出端口,转发速度远远高于路由器转发的速度。

三层交换机是在二层交换机的基础上增加三层交换功能,但它不是简单的二层交换机加路由器,二而是采用了不同的转发机制。路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,。而三层交换机的路由查找是针对流的,它利用CACHE技术,很容易采用ASIC实现,因此,可以大大的节约成本,并实现快速转发。

 L3独有的"一次路由,多次交换"(一次路由就可以记录IP-Port的关系了)使三层交换像二层一样迅速,但场合是汇聚层。我们看到,在汇聚层,面向三层交 换机直接下挂的主机,因为能够获得其主机路由,所以三层交换机能够实现快速查 找;而对于通过其它路由器连接多个子网后到达的主机,三层交换机和路由器的处 理是一样的,同样采用最长匹配的方法查找到下一跳,由下一跳路由器进行转发。


 和csdn的网友讨论了一下,比较清楚了:

三层转发表主要包含目的地址、掩码长度、下一条地址、出接口索引等信息

三层交换机由于一般采用首包处理机制,适合于规模较小的网络,但是直接接入Internet的时候,会造成转发表的强烈震荡,引起性能严重下降。三层交换机的转发表容量一般不大,而InternetIP太多,于是不停地刷新转发表。由于三层交换机首包是CPU转发,结果CPU也受不了。

 三层交换机的转发:

 以太网报文MAC不是本网段,去掉MAC头,交给三层模块转发表中找到,交换报文到另一个网段,加上MAC新的以太网报文发出

 三层交换查的是转发表,二层转发才查询MAC

转发表和PORT没有关系,MAC表中才有关系。

三层转发的时候,MAC头部必须改变,在查询转发表的的时候,原有的MAC首部已经去掉了。

 三层交换机与路由器并没有本质的区别,实际上,高端路由器也是采用三层交换芯片的,只不过CPU强大太多。另外,一般三层交换机只支持单一的链路层协议,而路由器支持的范围很广。

“一次路由,多次交换”是三层交换机最普通的工作方式。由于是硬件转发,所以速度是很快的。但是一般硬件的FIB表容量有限制,所以三层交换机适合放在网络的边缘。MAC表是二层交换的东西,在三层转发前已经处理。

 1.三层交换机的路由是怎么用ARP来获得的?ARP不是MAC-IP翻译吗?与路由是什么关系

个人认为其实L3的路由转发是如何查找的与交换机自己的实现有关系。不同的厂家不同型号的交换机它查找的表项是不一样的。有的会查找ARP表项,有的会查找FDB表项,反正都是硬件转发,这一点是肯定的。

 2."路由器的转发采用最长匹配的方式"是什么意思

举个例子:路由表项中有两条

1.1.0.0/16  下一跳是10.10.10.10

1.1.1.0/24 下一跳是20.20.20.20

如果有1.1.1.10这样一个目的地址的报文,肯定会匹配到第二条表项去转发,而不会匹配第一条表项去转发。这就是最长匹配,就是尽量匹配长的掩码

 3."三层交换机的路由查找是针对流的"流是指什么

这样理解吧,可以把从某一源地址发出的或是要发往某一目的地址的报文定义成一个流规则。所谓一个流在它的传送上是有一些共性的。交换机都是针对流的转发。

 BTW:还记得L2交换机的MDI么?二层交换机 MDI/MDI-x 是双绞线绞与不绞的问题。自己做了那么久的交换机,连这个都忘了。

—从网上再转一点三层交换机和路由器的区别

1)三层交换机 连接各个LAN
主要用途还是提供快速数据交换功能,满足局域网数据交换频繁的应用特点。

而三层交换机通过硬件执行数据包交换。三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。同时,三层交换机的路由查找是针对数据流的,它利用缓存技术,很容易利用ASIC技术来实现,因此,可以大大节约成本,并实现快速转发

2)路由器  连接WAN之间
它的路由功能更多的体现在不同类型网络之间的互联上,如局域网与广域网之间的连接、不同协议的网络之间的连接等
路由器一般由基于微处理器的软件路由引擎执行数据包交换
而路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,转发效率较低。

综上所述,三层交换机与路由器之间有着非常大的本质区别。在局域网中进行多子网连接,最好选用三层交换机,特别是在不同子网数据交换频繁的环境中。路由器虽然路由功能非常强大,但它的数据包转发效率远低于三层交换机,更适合于数据交换不是很频繁的不同类型网络的互联。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值