简单地讲,VLAN是指那些看起来好像在同一个物理局域网中能够相互通信的设备的集合。对于以端口划分的VLAN而言,任何一个端口的集合(甚至交换机上的所有端口)都可以被看作是一个VLAN。VLAN的划分不受硬件设备物理连接的限制,用户可以通过命令灵活地划分端口,创建定义VLAN。使用VLAN的优点如下:
一、VLAN描述
简单地讲,VLAN是指那些看起来好像在同一个物理局域网中能够相互通信的设备的集合。对于以端口划分的VLAN而言,任何一个端口的集合(甚至交换机上的所有端口)都可以被看作是一个VLAN。VLAN的划分不受硬件设备物理连接的限制,用户可以通过命令灵活地划分端口,创建定义VLAN。使用VLAN的优点如下:
VLAN能帮助控制流量
在传统网络中,不管是否必要,大量广播数据被直接送往所有网络设备,从而导致网络堵塞。而VLAN的设置能够使每个VLAN只包含那些必须相互通信的设备,从而减少广播、提高网络效率。
VLAN提供更高的安全性
每个VLAN中的设备只能与本VLAN中的设备通信。例如,如果VLAN Market的设备要和VLAN Sales的设备通信,则只有通过路由器才能进行,在没有三层路由设备的情况下两个部门不能直接通信,从而提高了网络安全性能。
VLAN使网络设备的变更和移动更加方便
在传统网络中,网络管理员不得不在网络设备的变更和移动上花费大量的时间和精力。如果用户移动到另一个不同的子网,那么每个终端的地址都得重新设置。而使用VLAN则不需要这些复杂繁琐的设置。
1.1.1 VLAN的分类
用户可以根据以下标准创建VLAN:
1. 以端口划分的VLAN
在一个Port-Based VLAN(基于端口的VLAN)中,用一个VLAN的名字来代表交换机中的一个或多个端口组成的一组端口。不同VLAN中的成员不能相互通信,即使它们在物理上属于同一个交换机的同一个I/O模块。如果要互相通信就必须通过三层交换机进行路由。这就意味着每一个VLAN的IP地址必须唯一,且不属于相同网段。
例如,在交换机上,端口1、9和15属于VLAN Market,端口3和14属于VLAN Finance,端口 6、18-21属于VLAN Sales。
2. 以标签划分的VLAN
标签就是在以太网帧中插入的特定标记,称为tag,它也是某个指定VLAN的标识号VLANID。
|
使用802.1Q标签的数据包可能导致数据包长度比现行的IEEE 802.3以太网帧的最大字节数1518稍微大一点,这可能导致其他设备中的数据包计数错误,使得在含有非802.1Q网桥或路由器的网络中有可能导致连接出现问题。 |
3. Tagged VLAN的应用
标签(Tagging)最常应用在跨交换机创建VLAN的情况,此时交换机之间的连接通常称为中继。使用标签后,可以通过一个或多个中继创建跨多个交换机的VLAN。一个VLAN可以很轻易地通过中继跨多个交换机。
使用Tagged VLAN的另一个好处就是一个端口可以属于多个VLAN。这一点在某个设备(例如服务器)必须属于多个VLAN的时候特别有用,此设备必须有支持802.1Q的网络接口卡。
4. 指定VLAN标签
每个VLAN都可被赋予一个802.1Q VLAN tag。当向一个由802.1Q标签定义的VLAN中添加端口时,可以决定该端口是否使用这个VLAN的标签。缺省模式是所有端口都属于一个名叫default的VLAN,其VLANID为2047。
并不是所有端口都必须使用标签。当数据流从交换机的一个端口输出时,交换机实时决定是否需将该VLAN的标签加入到数据包中。交换机根据每个VLAN端口的配置情况决定加上或者去掉数据包中的标签。
|
如果交换机收到带tag标记的数据包,当这个tag值与接收数据端口的tag值不同时,说明这个数据包来自其他VLAN,因此交换机将丢弃该数据包。 |
为使用Tag(tagged)和未使用Tag(untagged)划分VLAN的网络物理结构图。
图1-1 以tagged和untagged划分VLAN
交换机1的端口1和交换机2的端口1同时属于VLAN Market和VLAN Sales,且两个端口之间有中继线连接。跨交换机的VLAN Market和VLAN Sales通过这条中继线相连,从而实现跨交换机的VLAN通信。其中:
- 中继端口都为tagged。
- 连接到交换机1端口9上的Server须含有支持802.1Q Tagged的网络接口卡(NIC)。
- 连接Server的交换机1的端口9必须同时属于VLAN Market和VLAN Sales。
- 除了连接Server的交换机1的端口8和两台交换机的端口1是tagged以外,其他端口都是untagged。
- 当数据转发到交换机的端口时,交换机决定数据送达到目的端口是否需要加标签(tagged)。所有Server收发的数据都是加标签的(tagged);从其余终端工作站收和发的数据都是untagged。
1. 混合使用Tagged VLAN和Port-Based VLAN
可以混合使用Tagged VLAN和Port-Based VLAN。一个给定的端口可以属于多个VLAN,前提是该端口只能在一个VLAN中是未加标签的(Untagged)。换句话说,一个端口同时能属于一个Port-Based VLAN和多个Tagged VLAN。
|
出于VLAN分类的目的,如果交换机收到一个含802.1Q标签的数据包,但是该802.1Q标签所含的VLANID的值为0,那么交换机会把该数据包当作是未加标签的(untagged)。 |
1.1.2 配置VLAN的有关规则
VLAN配置要求遵循一定的规则,对VLAN的命名、端口的添加、IP Address的配置、Tag值的范围等有一定的要求。
1. 缺省VLAN
交换机出厂时有一个缺省的VLAN,该VLAN有以下属性:
- VLAN 的名字是default
- 它包含所有端口
- default VLAN的所有端口都是untagged的
- default VLAN的VLANID是2047
2. VLAN的名字
每个VLAN的名字可以是由以字母开头的1至29个字符组成,这些字符只能是字母、数字或者下划线“_”。空格符、逗号、引号等字符都是不合法的。
VLAN的名字只是本地标志。也就是说,在一台交换机上设置的VLAN的名字只对该交换机有意义。如果另一台交换机(Switch2)与该交换机(Switch1)相连,那么这个交换机(Switch1)的VLAN的名字对那台交换机(Switch2)来讲毫无意义。
1.2 配置VLAN
1.2.1 配置步骤
配置VLAN包括以下步骤:
配置步骤
步骤1 |
create vlan |
创建VLAN并给该VLAN取名 |
步骤2 |
config vlan tag <1-4094> |
给VLAN指定一个Tag,或者使用创建时系统分配的Tag |
步骤3 |
|
如果需要的话给该VLAN分配IP地址和子网掩码 |
步骤4 |
config vlan [add|delete] port [tagged|untagged] |
在VLAN中加入端口,可以指定是否使用802.1Q tag |
步骤5 |
show vlan {}*1 |
查看VLAN配置信息 |
使用命令delete vlan可以删除VLAN。使用命令no vlan ip可以删除VLAN的IP地址。
使用命令config port [add|delete] vlan也可以将一个或多个端口以tagged方式加入一个或多个vlan中,或从vlan中删除。参见“配置端口”一章。
1.2.2 配置案例
案例描述
在交换机上创建一个名为development的VLAN,给该VLAN分配IP地址202.106.15.3和子网掩码255.255.255.0,然后加入端口3,6,17-20,并指定端口为untagged模式。
配置步骤
步骤1 |
创建一个VLAN,名称为development |
|
Harbour(config)#create vlan development |
步骤2 |
给该VLAN分配IP地址192.168.0.232/24 |
|
Harbour(config)# config vlan development ipaddress 192.168.0.232/24 |
步骤3 |
分配给该VLAN的VLANID是128 |
|
Harbour(config)#config vlan development tag 128 |
步骤4 |
给该VLAN加入端口3,6,17-20,并指定端口为untagged模式 |
|
Harbour(config)#config vlan development add port 3,6,17-20 untagged |
步骤5 |
查看VLAN的配置信息 |
|
Harbour(config)#show vlan development
VLAN ID : 128
Name : development
IP Address : 192.168.0.232/24
MAC address : 00:45:32:65:98:72
Tagged Ports :
Untagged Ports : 3 6 17 18 19 20
|
步骤6 |
向development添加一个以IEEE 802.1Q tagged模式属于该VLAN的端口3 |
|
Harbour(config)#config vlan development add port 3 tagged |
步骤7 |
查看VLAN的配置信息,此时,端口3以IEEE 802.1Q tagged模式属于development,所以untagged ports中就没有端口3了 |
|
Harbour(config)#show vlan development
VLAN ID : 128
Name : development
MAC address : 00:45:32:65:98:72
Tagged Ports : 3
Untagged Ports : 6 17 18 19 20 |