0 引言
网络上的节点发送一个数据帧或包,传输到本地网段上的所有节点就是广播,而该网段上所有设备的集合就称为广播域。在TCP/IP协议中,很多协议会频繁地使用广播,例如以RIP作为路由协议时,每隔30秒路由器就会向邻近的其它路由器广播一次路由信息。随着网络技术的发展、应用需求的增加,通过交换机在局域网中接入的设备逐渐增多,交换机会将广播转发到所有的网段,形成一个大的广播域,而过大的广播域会带来以下问题:
(1)广播域过大,网络中需要广播的数据会急剧增加,急剧增加的广播包在占用网络带宽的同时,也使设备频繁地处于对广播包的响应和处理过程中,降低正常业务的处理效率。当广播数据超出负载能力时,容易形成广播风暴,导致网络瘫痪。
(2)单纯地将所有用户划分到同一个广播域中,很难对本地网络中特定的设备接入进行限制,不仅带来安全隐患,而且限制了网络的灵活性。
综上,当局域网内的接入设备达到一定数量后,一种有效的做法是进行虚拟局域网划分,将一个完整的网络划分为多个能够隔离广播的逻辑组,将一个大的广播域划分为若干个小的广播域,从而减少广播效应带来的损害。
1 VLAN及划分方式
在IEEE802.1Q标准中,虚拟局域网VLAN(Virtual Local Area Network)的定义为: VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,这些网段具有某些共同需求<sup>[1]</sup>。
每一个VLAN帧都有一个明确的标识符,标示出发送该帧的工作站是属于哪一个VLAN。以IEEE802.1Q为例(帧格式如图1所示),交换机会在该帧的源地址字段和类型字段之间插入一个4字节的标记字段,并重新计算FCS。交换机根据该字段值就可以将数据帧转发到同一VLAN上。
图1.1 IEEE802.1Q帧格式
常见的VLAN划分方式有[2-3]:
(1)基于端口的VLAN划分。该方式按照交换机上的端口进行逻辑组划分,可以在一台交换机上划分,也可以跨越多台交换机划分。信息只在相同的VLAN端口间传送,便于监控,但缺乏灵活性,一旦成员设备位置发生端口调整时,必须重新进行配置。
(2)基于MAC地址的VLAN划分。该方式依据网卡的MAC地址进行逻辑组划分。管理员根据用户MAC地址及VLAN需求进行配置。由于划分不依赖于端口,当成员设备位置发生端口改变时,设备逻辑组成员资格不会发生改变,具有一定灵活性。但当有新的设备接入网络或设备的网卡发生改变时,必须重新进行维护。
(3)基于策略的VLAN划分。该方式可以通过VLAN交换机端口、MAC地址、IP地址、网络层协议等多种方式进行逻辑组划分,每种方式都可以视为一种策略,这些策略还可以组合为新的策略。该方式具有较强的灵活性,成员设备可以在网络中自由移动而不需要重新配置,可以减少由于协议转换造成的网络通信延迟,但此法配置相对复杂,对网络主干设备要求较高。
(4)基于IP组播VLAN划分。该方式将IP组播组作为逻辑组的划分依据。设备通过对IP组播组的回应获取成员资格,同一组播组内的所有设备视为同一VLAN成员。以这种方式定义的VLAN具有较强的灵活性和动态性,具有跨越路由器、跨越广域网的能力,适用于将不同地理范围内的用户组成一个VLAN。
2 VLAN划分应用
实际工程中,通常应根据应用不同考虑如何定义VLAN,为跨越多台交换机的VLAN通信和跨越多个VLAN的通信选择合理有效的通信方式。要尽可能将接入资源与集中使用需求方的设备规划于同一VLAN中,使得设备在物理层上集中的同时,保证服务逻辑上靠近用户,减少对跨越VLAN通信的依赖。
在无法避免跨越VLAN通信的情况下,选择合适的方式,尽可能减少路由器的跳数。不同VLAN端口不能直接访问,VLAN间数据帧的传递,也需要使用相应设备进行路由。这个设备可以是一个三层交换机,也可以是一个路由器,但过多设备的使用会增加数据帧的传输延迟,造成性能瓶颈。
应避免创建无用的VLAN。虽然交换机本身能够支持一定数量的VLAN,但过多的VLAN同样会给路由器和其它网络设备带来额外开销,降低网络效能。
下面以Cisco 3550为例简单介绍如何进行静态VLAN划分。Cisco的VLAN成员关系分为静态VLAN和动态VLAN。所谓静态VLAN是指管理员根据划分规划要求在交换机上建立与VLAN的对应关系后,交换机始终维护这种配置关系,直到管理员手动改变端口的分配;而动态VLAN可以是基于MAC地址、协议甚至是应用程序来创建的,当管理员正确配置后,交换机能够自动地将动态变化的设备分配到正确的VLAN中。
(1)创建并命名VLAN。下列指令进入3550终端配置模式,启用vlan 2并配置其别名为sce,然后启用vlan 3配置其别名为osce。
cisco35506>enable
cisco35506#config terminal
cisco35506 (config)#vlan 2
cisco35506 (config-vlan)#name sce
cisco35506 (config-vlan)#vlan 3
cisco35506 (config-vlan)#name osce
cisco35506 (config-vlan)#exit
(2)配置端口类型并将端口指定到VLAN。下列指令进入3550终端配置模式,将端口fastethernet 0/7的链路类型配置为访问端口,并将该端口划分到vlan 2中,成为vlan 2的成员。
cisco35506#config terminal
cisco35506 (config)#interface fastethernet 0/7
cisco35506 (config-if)#switchport mode access
cisco35506 (config-if)#switchport access vlan 2
在Cisco的交换网络环境下,存在着访问端口(ACCESS LINK)和中继端口(TRUNK LINK)两种不同的链路类型,这对Cisco的VLAN配置至关重要,其中访问端口是配置中普遍应用的链路类型,在不涉及“辅助VLAN”的情况下,访问端口一旦被指派给某一个VLAN,就只能承载该VLAN的通信。总是假定到达该端口的数据包属于该端口的VLAN,不会携带VLAN标记。而中继端口可以存在于交换机与交换机之间、交换机与路由器之间或是交换机与服务器之间的链路上,可以同时指派一个中继端口到多个VLAN,承载来自多个VLAN的通信。中继端口用来实现跨VLAN通信或同一VLAN的跨交换机通信。需要注意的是Cisco的中继端口只能用于100Mb/s以上的链
路。
3 结语
合理、适当地划分VLAN,使所有广播都限制在同一虚拟局域网内进行,减少了广播对网络带宽的占用,能有效提高网络整体性能,避免广播风暴的产生。由于VLAN间不能直接进行数据交换,因而,通过VLAN的实现,可以有效防止特定设备和敏感数据被非授权用户访问,提高网络安全性<sup>[4]</sup>。借助相应的网管软件,获取VLAN内以及VLAN间的通信状态信息,可以辅助管理,使网络管理变得更加简单、有效。
参考文献:
[1] 谢希仁.计算机网络[M].第4版.北京:电子工业出版社,2005.
[2] 崔北亮.CCNA学习与实验指南[M].北京:电子工业出版社,2012.
\[3\] TODD LAMMLE.CCNA学习指南[M].第7版.北京:人民邮电出版社,2012.