交换(二):VLAN
虚拟局域网(Virtual LAN,VLAN):
由于交换机是工作在链路层的网络设备,连接在同一台交换机的终端处于同一个三层网中,同时也处于同一个广播域。当交换机接入较多的终端时,任意一台终端发送广播报文时(例如:ARP请求),报文都会传遍整个网络。对于规模较大的组网场景,广播报文的泛滥对于网络通信将会造成较大的影响。VLAN技术为这一问题提供了解决方案,VLAN将同一物理上的网络划分为多个逻辑上的虚拟子网,并规定当收到广播报文时,仅仅在其所在VLAN中进行广播从而防止广播报文泛滥。VLAN技术在链路层的层次中实现了广播域的隔离。
在基于以太网的通信中,必须在数据帧中指定目标MAC地址才能正常通信,因此计算机A必须先广播“ARP请求(ARP Request)信息”,来尝试获取计算机B的MAC地址。
交换机1收到广播帧(ARP请求)后,会将它转发给除接收端口外的其他所有端口,也就是洪范(Flooding)了。接着,交换机2收到广播帧后也会Flooding。交换机3、4、5也还会洪范(Flooding)。最终ARP请求会被转发到同一网络中的所有客户机上。
如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗。
常见的广播通信:
1)ARP请求:建立IP地址和MAC地址的映射关系。
2)RIP:一种路由协议。
3)DHCP:用于自动设定IP地址的协议。
4)NetBEUI:Windows下使用的网络协议。
5)IPX:NovellNetware使用的网络协议。
6)Apple Talk:苹果公司的Macintosh计算机使用的网络协议。
VLAN转发流程:
VLAN间通信:
VLAN技术把用户划分成多个逻辑的网络(group),组内可以通信,组间不允许通信,二层转发的单播、组播、广播报文只能在组内转发。
在LAN内的通信,必须在数据帧头中指定通信目标的MAC地址。而为了获取MAC地址,TCP/IP协议下使用的是ARP。ARP解析MAC地址的方法,则是通过广播。也就是说,如果广播报文无法到达,那么就无从解析MAC地址,亦即无法直接通信。计算机分属不同的VLAN,也就意味着分属不同的广播域,自然收不到彼此的广播报文。因此,属于不同VLAN的计算机之间无法直接互相通信。为了能够在VLAN间通信,需要利用OSI参照模型中更高一层——网络层的信息(IP地址)来进行路由。
路由器和交换机的接线方式,大致有以下两种:
1)将路由器与交换机上的每个VLAN分别连接。
2)不论VLAN有多少个,路由器与交换机都只用一条网线连接。
子接口(Sub Interface):
子接口是通过协议和技术将一个物理接口(Interface)虚拟出来的多个逻辑接口。在VLAN虚拟局域网中,通常是一个物理接口对应一个 VLAN。在多个 VLAN 的网络上,无法使用一个物理接口实现 VLAN 间通信。 子接口的产生正是为了打破物理接口的局限性,它允许单个物理接口通过划分多个子接口的方式,实现多个VLAN间的路由和通信。
VLAN ID:
VLAN ID | 功能 |
1 | 管理VLAN |
2-1001 | 可用VLAN |
1002-1005 | 保留VLAN |
1006-4094 | 扩展VLAN |
4095 | 保留VLAN |
交换机VLAN端口类型:
1)Access:
用于连接主机,仅仅允许VLAN ID与端口的PVID相同的数据帧通过本端口。如果该端口收到的对端设备发送的帧是untagged,交换机将强制加上该端口的PVID。Access端口发往对端设备的以太网帧永远是untagged frame。很多型号的交换机默认端口类型是access,PVID默认是1,VLAN 1由系统创建,不能被删除。
2)Trunk:
用于连接交换机,在交换机之间传递tagged frame,可以自由设定允许通过的多个VLAN ID,这些ID可以与PVID相同,也可以不同。
Trunk端口发送Tagged frame向其它设备时,规则如下:
该Tagged frame中的VLAN ID取值未出现在VLAN permitted列表中,则丢弃该帧。如果在列表中,则:该Tagged frame中的VLAN ID取值与本端口的PVID相同,则移除标签后发往其它设备。由于每个端口的PVID取值是唯一的,因此仅仅在这一种情况下,Trunk端口发往其它设备的帧是untagged frame;该Tagged frame中的VLAN ID取值与本端口的PVID不同,则不做任何改变,发往对端设备。
本征VLAN:
本征VLAN即在Trunk链路上不带Tag标签的VLAN。
三层交换机:
三层交换机,本质上就是“带有路由功能的(二层)交换机”。路由属于OSI参照模型中第三层网络层的功能,因此带有第三层路由功能的交换机才被称为“三层交换机”。
三层交换机与路由器的区别:
交换机使用被称为ASIC(ApplicationSpecified Integrated Circuit)的专用硬件芯片处理数据帧的交换操作,在很多机型上都能实现以缆线速度(Wired Speed)交换。而路由器,则基本上是基于软件处理的。即使以缆线速度接收到数据包,也无法在不限速的条件下转发出去,因此会成为速度瓶颈。就VLAN间路由而言,流量会集中到路由器和交换机互联的汇聚链路部分,这一部分尤其特别容易成为速度瓶颈。
加速VLAN间通信的手段:
使用FTP(File Transfer Protocol)传输容量为数MB以上的较大的文件时,由于MTU的限制,IP协议会将数据分割成小块后传输、并在接收方重新组合。这些被分割的数据,“发送的目标”是完全相同的。发送目标相同,也就意味着同样的目标IP地址、目标端口号(注:特别强调一下,这里指的是TCP/UDP端口)。自然,源IP地址、源端口号也应该相同。这样一连串的数据流被称为“流”(Flow)。只要将流最初的数据正确地路由以后,后继的数据理应也会被同样地路由。
据此,后继的数据不再需要路由器进行路由处理;通过省略反复进行的路由操作,可以进一步提高VLAN间路由的速度。
同一个流的第二块以后的数据到达交换机后,直接通过查询先前保存在缓存中的信息查出“转发端口号”后就可以转发给目标所连端口了。这样一来,就不需要再一次次经由内部路由模块中继,而仅凭交换机内部的缓存信息就足以判断应该转发的端口。