誉天Cisco/RHCE/RHCA认证 http://www.51chongdian.net/bbs
端口 1 2 3 4 5 6 MAC地址 A B C D - R VLAN 1 1 2 2 - 汇聚
首先考虑计算机A与同一VLAN内的计算机B之间通信时的情形。
计算机A发出ARP请求信息,请求解析B的MAC地址。交换机收到数据帧后,检索MAC地址列表中与收信端口同属一个VLAN的表项。结果发现,计算机B连接在端口2上,于是交换机将数据帧转发给端口2,最终计算机B收到该帧。收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成。
同一VLAN内的通信,处理均在交换机内部完成 1 交换机 2 连接红色VLAN路由器端口的的子接口 MAC地址:R 192.168.1.100/24 连接蓝色VLAN的子接口
192.168.2.100/24 3 4 5 6
汇聚链接
源MAC:A;目标MAC:B 源IP:192.168.1.1/24 目标IP:192.168.1.2/24 数据帧 A 192.168.1.1/24
B 192.168.1.2/24
C 192.168.2.1/24
D 192.168.2.2/24
GW192.168.1.100 GW192.168.1.100 GW192.168.2.100 GW192.168.2.100
不同VLAN间通信时数据的流程
接下来是这一讲的核心内容,不同VLAN间的通信。让我们来考虑一下计算机A与计算机C之间通信时的情况。
誉天思科红帽权威培训中心 http://www.yutianedu.com
誉天Cisco/RHCE/RHCA认证 http://www.51chongdian.net/bbs
连接红色VLAN的子接口,192.168.1.100/24
连接蓝色VLAN的子接口,192.168.2.100/24 ② 路由器端口的MAC地址:R ③ 数据帧 数据帧 1 交换机 ① 源MAC:A;目标MAC:R 源IP:192.168.1.1/24 目标IP:192.168.2.1/24 2 3 4 5 6 ④ 源MAC:R;目标MAC:C 数据帧 数据帧 源IP:192.168.1.1/24 目标IP:192.168.2.1/24 A 192.168.1.1/24
B 192.168.1.2/24
C 192.168.2.1/24
D 192.168.2.2/24
GW192.168.1.100 GW192.168.1.100 GW192.168.2.100 GW192.168.2.100
计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。因此会向设定的默认网关(Default Gateway,GW)转发数据帧。在发送数据帧之前,需要先用ARP获取路由器的MAC地址。
得到路由器的MAC地址R后,接下来就是按图中所示的步骤发送往C去的数据帧。①的数据帧中,目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最终要通信的对象C的地址。这一部分的内容,涉及到局域网内经过路由器转发时的通信步骤,有机会再详细解说吧。
交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项。由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发。
从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。
接着,根据路由器内部的路由表,判断该向哪里中继。 由于目标网络192.168.2.0/24是蓝色VLAN,,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。 交换机收到③的数据帧后,根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧除去VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。
进行VLAN间通信时,即使通信双方都连接在同一台交换机上,也必须经过:
发送方——交换机——路由器——交换机——接收方
誉天思科红帽权威培训中心 http://www.yutianedu.com
誉天Cisco/RHCE/RHCA认证 http://www.51chongdian.net/bbs
这样一个流程。
三层交换机(1)
使用路由器进行VLAN间路由时的问题
现在,我们知道只要能提供VLAN间路由,就能够使分属不同VLAN的计算机互相通信。但是,如果使用路由器进行VLAN间路由的话,随着VLAN之间流量的不断增加,很可能导致路由器成为整个网络的瓶颈。
交换机使用被称为ASIC(Application Specified Integrated Circuit)的专用硬件芯片处理数据帧的交换操作,在很多机型上都能实现以缆线速度(Wired Speed)交换。而路由器,则基本上是基于软件处理的。即使以缆线速度接收到数据包,也无法在不限速的条件下转发出去,因此会成为速度瓶颈。就VLAN间路由而言,流量会集中到路由器和交换机互联的汇聚链路部分,这一部分尤其特别容易成为速度瓶颈。并且从硬件上看,由于需要分别设置路由器和交换机,在一些空间狭小的环境里可能连设置的场所都成问题。
三层交换机(Layer 3 Switch)
为了解决上述问题,三层交换机应运而生。三层交换机,本质上就是“带有路由功能的(二层)交换机”。路由属于OSI参照模型中第三层网络层的功能,因此带有第三层路由功能的交换机才被称为“三层交换机”。
关于三层交换机的内部结构,可以参照下面的简图。
路由模块
三层交换机
交换模块
内部是汇聚链路
在一台本体内,分别设置了交换机模块和路由器模块;而内置的路由模块与交换模块相同,使用ASIC硬件处理路由。因此,与传统的路由器相比,可以实现高速路由。并且,路由与交换模块是汇聚链接的,由于是内部连接,可以确保相当大的带宽。
三层交换机(2)
使用三层交换机进行VLAN间路由(VLAN内通信)
在三层交换机内部数据究竟是怎样传播的呢?基本上,它和使用汇聚链路连接路由器与交换机时的情形相同。
假设有如下图所示的4台计算机与三层交换机互联。当使用路由器连接时,一般需要在LAN接口上设置对应各VLAN的子接口;而三层交换机则是在内部生成“VLAN接口(VLAN Interface)”。VLAN接口,是用于各VLAN收发数据的接口。(注:在Cisco的Catalyst系列交换机上,VLAN Interface被称为SVI——Switched Virtual Interface)
誉天思科红帽权威培训中心 http://www.yutianedu.com
誉天Cisco/RHCE/RHCA认证 http://www.51chongdian.net/bbs
红色VLAN接口 192.168.1.100/24 蓝色VLAN接口 192.168.2.100/24
路由模块 VLAN内通信在交换模块内部完成 1 源MAC:A;目标MAC:B 源IP:192.168.1.1 目标IP:192.168.1.2 交换模块 2 3 4 A(MAC)
192.168.1.1/24 GW192.168.1.100
B(MAC)
192.168.1.2/24 GW192.168.1.100
C(MAC)
192.168.2.1/24 GW192.168.2.100
D(MAC)
192.168.2.2/24 GW192.168.2.100
为了与使用路由器进行VLAN间路由对比,让我们同样来考虑一下计算机A与计算机B之间通信时的情况。首先是目标地址为B的数据帧被发到交换机;通过检索同一VLAN的MAC地址列表发现计算机B连在交换机的端口2上;因此将数据帧转发给端口2。
使用三层交换机进行VLAN间路由(VLAN间通信)
接下来设想一下计算机A与计算机C间通信时的情形。针对目标IP地址,计算机A可以判断出通信对象不属于同一个网络,因此向默认网关发送数据(Frame 1)。
交换机通过检索MAC地址列表后,经由内部汇聚链接,将数据帧转发给路由模块。在通过内部汇聚链路时,数据帧被附加了属于红色VLAN的VLAN识别信息(Frame 2)。
路由模块在收到数据帧时,先由数据帧附加的VLAN识别信息分辨出它属于红色VLAN,据此判断由红色VLAN接口负责接收并进行路由处理。因为目标网络192.168.2.0/24是直连路由器的网络、且对应蓝色VLAN;因此,接下来就会从蓝色VLAN接口经由内部汇聚链路转发回交换模块。在通过汇聚链路时,这次数据帧被附加上属于蓝色VLAN的识别信息(Frame 3)。
交换机收到这个帧后,检索蓝色VLAN的MAC地址列表,确认需要将它转发给端口3。由于端口3是通常的访问链接,因此转发前会先将VLAN识别信息除去(Frame 4)。最终,计算机C成功地收到交换机转发来的数据帧。
誉天思科红帽权威培训中心 http://www.yutianedu.com
誉天Cisco/RHCE/RHCA认证 http://www.51chongdian.net/bbs
红色VLAN接口 192.168.1.100/24 Frame 2 附加红色VLAN识别信息 源MAC:A;目标MAC:R 源IP:192.168.1.1 目标IP:192.168.2.1
路由模块 蓝色VLAN接口 192.168.2.100/24 Frame 3 附加蓝色VLAN识别信息 交换模块 源MAC:R;目标MAC:C 1 2 3 4 源IP:192.168.1.1 目标IP:192.168.2.1 Frame 1 源MAC:A;目标MAC:R 源IP:192.168.1.1 目标IP:192.168.2.1 Frame 4 源MAC:R;目标MAC:C 源IP:192.168.1.1 目标IP:192.168.2.1 A(MAC)
192.168.1.1/24 GW192.168.1.100
B(MAC)
192.168.1.2/24 GW192.168.1.100
C(MAC)
192.168.2.1/24 GW192.168.2.100
D(MAC)
192.168.2.2/24 GW192.168.2.100
整体的流程,与使用外部路由器时的情况十分相似——都需要经过发送方→交换模块→路由模块→交换模块→接收方。
加速VLAN间通信的手段
流(Flow)
根据到此为止的学习,我们已经知道VLAN间路由,必须经过外部的路由器或是三层交换机的内置路由模块。但是,有时并不是所有的数据都需要经过路由器(或路由模块)。 例如,使用FTP(File Transfer Protocol)传输容量为数MB以上的较大的文件时,由于MTU的限制,IP协议会将数据分割成小块后传输、并在接收方重新组合。这些被分割的数据,“发送的目标”是完全相同的。发送目标相同,也就意味着同样的目标IP地址、目标端口号(注:特别强调一下,这里指的是TCP/UDP端口)。自然,源IP地址、源端口号也应该相同。这样一连串的数据流被称为“流(Flow)”。
只要将流最初的数据正确地路由以后,后继的数据理应也会被同样地路由。
据此,后继的数据不再需要路由器进行路由处理;通过省略反复进行的路由操作,可以进一步提高VLAN间路由的速度。
誉天思科红帽权威培训中心 http://www.yutianedu.com