随着网络中计算机的数量越来越多,传统的以太网络开始面临冲突严重、广播泛滥以及安全性无法保障等各种问题。
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同VLAN间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性。
简单而言,就是通过VLAN技术将大的交换网络划分为多个小的交换网络,并且同属一个小交换网络之间的设备可以进行通信,但是不同小的交换网络之间无法进行通信。
VLAN
传统网络
随着主机数量的增加,共享网络中的冲突会越来越严重,交换网络中的广播也会越来越多。
因为有CSMA/CD协议的存在,实际上并不会冲突(可通过百度查看该协议)。
但是如图2所示,假设此时我们有一台主机需要去访问另一台主机,但是,它只知道它的IP地址,不知道MAC地址,此时,它需要发送ARP请求(广播)另一台主机的MAC地址。然后该广播包就会进行泛洪,会造成网络堵塞等一些列的问题。
VLAN技术
VLAN能够隔离广播域。
路由器也可以隔离广播域,但是给每个网段加一个路由器是不现实的。图中所示,VLAN与VLAN之间通过编号来区分。缺省情况下同属VLAN1。如图所示,VLAN2的设置就只能访问VLAN2的设备。所以即使它发送广播包,也只是在本虚拟网络上进行广播,无法传递到别的虚拟网络。
VLAN帧
通过Tag区分不同VLAN。
可以看到VLAN帧格式中有一个tag字段,其实VLAN ID表明该报文所属的VLAN。
链路类型
用户主机和交换机之间的链路为接入链路,交换机与交换机之间的链路为干道链路。
Access:只允许一个VLAN通过
Trunk:允许多个VLAN通过
PVID
PVID表示端口在缺省情况下所属的VLAN。
缺省情况下,X7系列交换机每个端口的PVID都是1。
端口类型-Access
假设此时主机A和主机B同属VLLAN10,主机A和主机B通信。主机A发送的数据包最开始是没有VLAN tag 的,在到达交换机以后,交换机会给该数据打上VLAN tag,交换机发现该主机要去的是主机B,于是从G0/0/2转发该数据报文,并且在转发的时候将VLAN tag去掉。因为主机需要接收的是不带VLAN tag的报文。
假设此时主机C并不属于VLAN 10,主机A发送去往主机C的报文,交换机不会给予转发。
Access端口在收到数据后会添加VLAN Tag,VLAN ID和端口的PVID相同。
Access端口在转发数据前会移除VLAN Tag。
端口类型–Trunk
当Trunk端口收到帧时,如果该帧不包含Tag,将添加上端口的PVID;如果该帧包含Tag,则不改变。
当Trunk端口发送帧时,该帧的VLAN ID在Trunk的允许发送列表中:若与端口的PVID相同时,则剥离Tag发送;若与端口的PVID不同时,则直接发送。
端口类型-Hybrid
Hybrid除了可以连接主机以外,还可以连接交换机。
同时Hybrid可以允许带tag 也可以允许不带tag 的数据包通过。
Hybrid可以达到什么效果呢?假设主机A属于VLAN 2,主机B属于VLAN 3 ,服务器属于VLAN 100。Hybrid可以实现VLAN2和VLAN 3之间无法通信,但是VLAN 2和VLAN 3可以同时和VLAN 100进行通信。Hybrid端口为图中标识处。
VLAN划分方法
其中,基于端口划分是最常见的。
下面是实验部分。
VLAN实验
如图将IP地址和端口类型标注出来了。下面是配置命令,IP配置省略。
<Huawei>undo terminal monitor // 个人习惯配置时将提醒关掉。也可选择不关
<Huawei>sys //进入系统视图
[Huawei]sys SW1 //改名
[SW1]vlan batch 2 3 //首先第一步要创建VLAN
[SW1]int e 0/0/1 //进入接口模式
[SW1-Ethernet0/0/1]port link-type access //将接口设置为access模式
[SW1-Ethernet0/0/1]port default vlan 2 //将接口划入VLAN 2
[SW1]int e 0/0/2
[SW1-Ethernet0/0/2]port link-type access
[SW1-Ethernet0/0/2]port default vlan 3 //将接口划入VLAN 3
[SW1-Ethernet0/0/2]int e 0/0/3
[SW1-Ethernet0/0/3]port link-type trunk // 将接口定义为Trunk
[SW1-Ethernet0/0/3]port trunk allow-pass vlan 2 3 //允许VLAN 2 VLAN 3通过
SW2配置同理
可用display vlan查看vlan状态。
基本配置完成,现在开始测试,首先是VLAN2与VLAN 2通信。
使用PC1 PING PC3
然后再测试不同VLAN之间是否可以通信。
很明显,是无法进行通信的,此时可以进行抓包分析。
发送了ARP请求但是依旧无法通信。
【注意】一般情况下,不同VLAN之间配置的是不同网段,但是此处为了演示。就设置成了同一网段。
Hybrid实验
拓扑依旧采用上图拓扑,直接修改配置。
SW1
实现的效果为,PC 1 属于VLAN 2、PC 2属于VLAN 3 ,PC 5属于VLAN 100。VLAN 2 和 VLAN 3之间无法通信,但是VLAN 2 和VLAN 3可以和VLAN 100通信。
修改E 0/0/1
[SW1]int e 0/0/1
[SW1-Ethernet0/0/1]port default vlan 1
[SW1-Ethernet0/0/1]undo port link-type //首先修改为缺省状态
[SW1-Ethernet0/0/1]port link-type hybrid //定义接口为hybrid端口
[SW1-Ethernet0/0/1]port hybrid pvid vlan 2 //划入VLAN 2
[SW1-Ethernet0/0/1]port hybrid untagged vlan 2 100 //允许VLAN 2 VLAN 100通过
同时需要在SW1、SW2上添加VLAN 100,以及在Trunk链路中修改。
interface Ethernet0/0/3
[SW1-Ethernet0/0/3]undo port trunk allow-pass vlan 2 to 3 100
[SW1-Ethernet0/0/3]undo port link-type
[SW1-Ethernet0/0/3]port link-type hybrid
[SW1-Ethernet0/0/3]port hybrid tagged vlan 2 3 100 //允许VLAN 2 3 100通过
修改E 0/0/2
[SW1]int e 0/0/2
[SW1-Ethernet0/0/2]port default vlan 1
[SW1-Ethernet0/0/2]undo port link-type
[SW1-Ethernet0/0/2]port link-type hybrid
[SW1-Ethernet0/0/2]port hybrid pvid vlan 3
[SW1-Ethernet0/0/2]port hybrid untagged vlan 3 100
SW2配置同理
#
sysname SW2
#
vlan batch 2 to 3 100
#
interface Ethernet0/0/1
port hybrid tagged vlan 2 to 3 100
#
#
interface Ethernet0/0/4
port hybrid pvid vlan 100
port hybrid untagged vlan 2 to 3 100
测试:
实验成功。这里有一个需要注意的地方。就是交换机与交换机之间的线路配置的是不剥离tag进行传递的,交换机与主机之间配置的是剥离tag传递。注意观察命令。原因在上面有讲。
Voice VLAN
通过配置Voice VLAN可以区分语音流量和业务流量,使语音流量优于业务流量,从而为语音流量提供服务保证。
注意配置是MAC地址。