一、VLAN技术简介
1、虚拟局域网(Virtual Local Area Network,VLAN)是一种将局域网lan从逻辑上划分(注意不是从物理上划分)成一个个网段(或者说更小的局域网),从而实现虚拟交换组的数据交换技术。之所以开发出VLAN技术,主要有一下三方面的考虑:
(1)基于网络性能考虑:主要解决局域网中无法限制广播域的问题,划分了VLAN后,每个VLAN就是一个广播域,广播域被限制在一个VLAN内,不影响其他的VLAN。
(2)基于安全性的考虑:一个VLAN内的单播和广播流量都不会转发到其他VLAN中,即使两个VLAN有着相同的ip子网,只要他们没有相同的VLAN号,他们各自的广播流量就不会相互转发。
(3)基于组织结构考虑:由于是逻辑而不是物理的划分,可以讲在不同地域的有相同需要的计算机划分到一个VLAN中。
2、valn的原理
假设有vlan10和valn20,其中计算机A位于vlan10中,计算机B位于vlan20中,现在计算机A发出一个广播帧,交换机接收到这个广播帧后会查询自己的地址表(地址表中记录了每台计算机对应的vlan号和端口号),发现该广播帧是从端口1接收,为vlan10的广播,那么交换机就会按照地址表(上面记录了所有vlan10的主机地址)向所有vlan10的主机发送这个广播帧,而不会向vlan20发送,从而实现隔离广播。
再假设计算机A想要和计算机B通信,计算机不知计算机B的地址,计算机发出arp广播请求,希望获得计算机B的MAC地址,但是交换机根本不会将这个arp转发给计算机B,也就无法获得B的地址,当然没法通信。另外即使A知道了B的地址,计算机A发出一个目的地址是B的单播帧出来,这个单播帧到达交换机后,交换机根据MAC地址也会发现,这个单播帧是VLAN10发出的,而且MAC地址是VLAN20,那么交换机也不会转发这个单播帧。
3、VLAN主要优点及注意事项
优点:
(1)控制广播风暴
(2)提高网络整体安全性
(3)企业LAN中的部门组织结构不再受物理地域的限制
(4)增强网路管理
注意事项:
(1)不同交换机平台、不同的IOS版本支持的VLAN最大数量不同
(2)VLAN1不能创建、删除或重命名,交换机出厂时VLAN1默认创建
(3)一些与广播有关的协议技术与VLAN有冲突,如DHCP服务
(4)VLAN之间互访需要三层设备,在一定程度上会造成网路延时
4、VLAN划分方式
(1)基于端口划分VLAN
(2)基于MAC地址划分VLAN
5、单台交换机VLAN的配置
(1)在没有进行配置的情况下,查看VLAN情况
Switch>en
Switch#show vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig1/1, Gig1/2
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1 enet 100001 1500 - - - - - 0 0
1002 fddi 101002 1500 - - - - - 0 0
1003 tr 101003 1500 - - - - - 0 0
1004 fdnet 101004 1500 - - - ieee - 0 0
1005 trnet 101005 1500 - - - ibm - 0 0
--More--
从上面可以看出默认情况下,所有的端口都属于VLAN1.
(2)创建VLAN的命令如下所示
Switch(config)#vlan 100
//创建vlan100,并进入vlan配置模式,no vlan100是删除vlan100
Switch(config-vlan)#name cao1
//为vlan100指定名称cao1
Switch(config-vlan)#
(3)将交换机的端口添加到对应的vlan
Switch(config-vlan)#exit
Switch(config)#interface range fastethernet 0/1-5
//从全局模式进入到端口范围配置模式
Switch(config-if-range)#switchport access vlan 100
//设置交换机端口fastethernet0/1、0/2、0/3、0/4、0/5允许访问vlan100,即1-5号端口添加到vlan100中,no switchport access vlan 100可以从vlan100删除端口成员.
Switch(config-if-range)#exit
Switch(config)#
(4)通过以上配置,可以通过show vlan命令来验证VLAN配置结果,部分结果如下:
(5)Switch#show vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/6, Fa0/7, Fa0/8, Fa0/9
Fa0/10, Fa0/11, Fa0/12, Fa0/13
Fa0/14, Fa0/15, Fa0/16, Fa0/17
Fa0/18, Fa0/19, Fa0/20, Fa0/21
Fa0/22, Fa0/23, Fa0/24, Gig1/1
Gig1/2
10 VLAN0010 active
100 cao1 active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
可以看到刚才创建的cao1,并且相应的端口也已经加入到了这个vlan中。
6、IEEE802.1q和跨交换机的配置
(1)不同的交换机可以划分相同的VLAN,可以将有相同VLAN的交换机通过Trunk端口互连,处于不同交换机、但具有相同VLAN定义的主机可以相互通信,TRUNK链路的含义就是骨干链路或主干链路,该链路上可以运载多个VLAN信息。
(2)过程解析
交换机A上有一个VLAN10,主机C1就在这个VLAN10上,交换机B上也有一个VLAN10,主机C2在B这个VLAN10上,交换机A和交换机B通过trunk连接,现在C1想要和C2通信,C1发出的数据帧并不带有VLAN信息,数据帧到了交换机A后,由交换机负责对这个数据帧进行标识,标识是数据帧是VLAN10的数据帧,然后通过Trunk链路再将数据帧交付给交换机B,这样当交换机B收到数据帧后,交换机B就可以根据交换机B的MAC地址表来决定是否将数据帧转发给主机C2.
在数据帧中加入VLAN标识,这项技术就是帧标记法,现在主要有两种帧标记法,一种是ISL,是思科专用的帧标记法,另一种是IEEE802.1q,现在大部分的网络产品厂商都能遵循IEEE802.1q,主要的就是这一个。
7、跨交换机的vlan配置
注:1.10主机连接到交换机f0/1,1.20主机连到f0/20,1.30连到f0/1,1.40连到f0/10
交换机A上的配置
Switch(config)#vlan 10
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#exit
Switch(config)#interface range fastethernet 0/1-10
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#exit
Switch(config)#interface range fastethernet 0/11-20
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#interface GigabitEthernet1/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#
交换机B上的配置
Switch(config)#vlan 10
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#exit
Switch(config)#interface range fastethernet0/1-5
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#exit
Switch(config)#interface range fastethernet0/6-10
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#interface gigabitethernet1/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 10,20
Switch(config-if)#exit
Switch(config)#exit
在pc机上进行测验:
拿1.10ping1.30:
PC>ping 192.168.1.30
Pinging 192.168.1.30 with 32 bytes of data:
Reply from 192.168.1.30: bytes=32 time=94ms TTL=128
Reply from 192.168.1.30: bytes=32 time=94ms TTL=128
可以ping通,虽然在两个交换机上,但是都在vlan10,通过trunk可以连接。
拿1.10ping1.40:
PC>ping 192.168.1.40
Pinging 192.168.1.40 with 32 bytes of data:
Request timed out.
不可以ping通,因为属于不同的vlan。