一、什么是VLAN
VLAN(virtual LAN)虚拟局域网:是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,同一VLAN设备相互之间的通信就好像它们在同一个物理网段中一样,不同VLAN设备不能直接通信。VLAN工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
(此图选择华为公司PPT)
二、VLAN是如何实现的
VLAN是IEEE组织定义的IEEE802.1Q协议实现的。IEEE802.1Q协议是定义数据帧添加TAG(标签)来实现VLAN技术,下图中有两种数据帧Untagged frame是传统的以太网数据帧,Tagged frame是带标签的数据帧。Tagged frame中TPID(标签协议标示)起到的作用和TYPE字段类似,是指明此数据帧为带vlan标签的数据帧;VLAN ID字段是指明vlan的号码,占12比特,换算成十进制为1-4094。
打标签和去除标签的操作一般是在交换机上完成,和普通的客户端无关(也可以说对客户端是透明的),也有一些服务器操作系统经过配置后可以识别标签。
交换机添加VLAN标签用的最多的是基于端口进行添加,当然也可以是基于子网、基于协议和基于MAC地址。
(此图选择华为公司PPT)
三、交换机上VLAN数据帧转发流程
(此图选择华为公司PPT)
四、端口类型
华为公司的交换机根据不同应用类型,把接口分为3种,Access、Trunk和Hybrid。
1、Access接口
Access接口一般用来连接PC。交换机的接口再收到数据包后,先查看数据包打没有打标签,如果没有打标签,则打此接口所属vlan标签;如果收到的数据包已经打标签,看看是否和此接口所属vlan标签一致,一致允许通过,不一致则丢弃。
(图片来自H3C公司ppt)
\创建VLAN命令
[SWA]vlan 3
\配置接口类型命令
[SWA-Ethernet0/0/1]port link-type access
\设置接口PVID命令
[SWA-Ethernet0/0/1]port default vlan 3
2、Trunk端口
一般是交换机(交换机上有多个vlan情况下)之间端口使用Trunk端口。交换机Trunk端口也会属于某个vlan,这就是Trunk端口的PVID,还可以明确哪个vlan可以通过此接口。交换机的Trunk端口接收数据包时,先看数据包打没有打标签,没有的话打上PVID标签,有的话查看是否允许此vlan通过此trunk接口,不允许就会丢弃数据包;交换机的Trunk端口发送数据包时,缺省vlan的数据把标签去掉,允许通过的其他vlan的标签不变。
华为公司交换机的TRUNK端口有一个特色,就是vlan1的数据不管有没有明确允许在TRUNK端口通过,vlan1的数据都能通过TRUNK端口,是因为一些管理数据帧在vlan1中发送。而TRUNK端口上的缺省vlan如果没有明确允许则不能通过。
(图片来自H3C公司ppt)
\配置端口类型命令:
[SWA-Ethernet0/0/3]port link-type trunk
\配置Trunk-Link端口PVID命令:
[SWA-Ethernet0/0/3]port trunk pvid vlan 3
\配置Trunk-Link所允许通过的VLAN(permitted VLAN)命令:
[SWA-Ethernet0/0/3] port trunk allow-pass vlan 2-5
3、Hybrid端口
Hybrid端口允许多个VLAN通过,可以接收和发送多个VLAN的数据帧,可以非常灵活的设置端口是否打标签。Hybrid端口允许多个VLAN的以太网帧不带标签,Trunk端口只允许缺省VLAN的以太网帧不带标签。
Hybrid端口的应用环境:一般是多个PC之间不能互访,而这些PC又能同时访问一台服务器,又不想利用路由器实现这个目的的环境。
例如在下图中,PCA属于vlan10和vlan30,缺省vlan是vlan10;PCB属于vlan20和vlan30,缺省vlan是vlan20;PCC属于vlan10、vlan20和vlan30,缺省vlan是vlan30;这样PCA能和PCC通信,PCB能和PCC通信,而PCA和PCB不能通信。当然PCC也可以作为上行端口到达网关。
(图片来自H3C公司ppt)
五、验证VLAN原理的实验环境
实验拓扑环境:
通过对下图的拓扑环境连接,并按图示配置vlan接口后,所有PC设置的IP地址在同一网段。如果Access接口配置正确,PC10和PC4能ping通,PC1、PC2、PC3和PC4之间不能ping通,则证明同一交换机中同一vlan能直接通信,不同vlan不能直接通信。如果交换机间接口设置为Trunk接口,配置PVID为2,仅允许vlan3通过,如果配置正确就可以实现PC1和PC5能ping通,PC2和PC6不能ping通,PC3和PC7能ping通,PC4和PC8不能ping通,也就验证了华为公司交换机的TRUNK端口中vlan1的数据不管有没有明确允许,vlan1的数据都能通过TRUNK端口,而缺省vlan数据没有明确允许则不能通过。
注意:上面的实验环境中的配置是为了验证VLAN的特性,在真实的实验环境中,vlan1、vlan2、vlan3和vlan4的IP地址不能设置为同一地址段,这4个vlan应该分别设置为像192.168.1.0、192.168.2.0、192.168.3.0、192.168.4.0。他们之间的通信,是通过路由器或三层交换机转发,然后才能通信的。
来源:51CTO
作者:crazy_qiao
链接:https://blog.51cto.com/25167/2120193