一文读懂VLAN和VXLAN技术

vlan(virtual local area network)的中文名为“虚拟局域网”。vlan是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的数据交换技术。这一技术主要应用于交换机和路由器中,但主流应用还是在交换机之中。但又不是所有交换机都具有此功能,只有vlan协议的第二层以上交换机才具有此功能。802.1q的标准的出现打破了虚拟网依赖于单一厂商的僵局,从一个侧面推动了vlan的迅速发展。
1、交换机端口工作模式简介
交换机端口有三种工作模式,分别是access,hybrid,trunk。
access类型的端口只能属于1个vlan,一般用于连接计算机的端口;
trunk类型的端口可以允许多个vlan通过,可以接收和发送多个vlan的报文,一般用于交换机之间连接的端口;
hybrid类型的端口可以允许多个vlan通过,可以接收和发送多个vlan的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
hybrid端口和trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:hybrid端口可以允许多个vlan的报文发送时不打标签,而trunk端口只允许缺省vlan的报文发送时不打标签。
2、基本概念(tag,untag,802.1q)
untag就是普通的ethernet报文,普通pc机的网卡是可以识别这样的报文进行通讯;
tag报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan tag头;一般来说这样的报文普通pc机的网卡是不能识别的
下图说明了802.1q封装tag报文帧结构
带802.1q的帧是在标准以太网帧上插入了4个字节的标识。其中包含:
2个字节的协议标识符(tpid),当前置0x8100的固定值,表明该帧带有802.1q的标记信息。
2个字节的标记控制信息(tci),包含了三个域。
priority域,占3bits,表示报文的优先级,取值0到7,7为最高优先级,0为最低优先级。该域被802.1p采用。
规范格式指示符(cfi)域,占1bit,0表示规范格式,应用于以太网;1表示非规范格式,应用于token ring。
vlan id域,占12bit,用于标示vlan的归属。
3、交换机接口出入数据处理过程
3-1、端口接收报文时的处理:
acess端口收报文:
收到一个报文,判断是否有vlan信息:如果没有则打上端口的pvid,并进行交换转发,如果有则直接丢弃(缺省)
trunk端口收报文:
收到一个报文,判断是否有vlan信息:如果没有则打上端口的pvid,并进行交换转发,如果有判断该trunk端口是否允许该 vlan的数据进入:如果允许则报文携带原有vlan标记进行转发,否则丢弃该报文。
hybrid端口收报文:
收到一个报文,判断是否有vlan信息:如果没有则打上端口的pvid,并进行交换转发,如果有则判断该hybrid端口是否允许该vlan的数据进入:如果可以则转发,否则丢弃。
备注:pvid为port-base vlan id,也就是端口的虚拟局域网id号,关系到端口收发数据帧时的vlan tag 标记。
3-2、端口发送报文时的处理
acess端口发报文:
将报文的vlan信息剥离,直接发送出去
trunk端口发报文:
比较端口的pvid和将要发送报文的vlan信息,如果两者相等则剥离vlan信息,再发送,否则报文将携带原有的vlan标记进行转发。
hybrid端口发报文:
判断该vlan在本端口的属性
如果是untag则剥离vlan信息,再发送,如果是tag则比较端口的pvid和将要发送报文的vlan信息,如果两者相等则剥离vlan信息,再发送,否则报文将携带原有的vlan标记进行转发。
4、示例讲解
多交换机的情况下,vlan是怎么工作的呢?下图所示的这种情况,两个交换机vlan相同,都是默认vlan 1,即两个交换机之间的联系同在vlan 1之内。路由器是所有节点的出口。
这时单播,多播和广播数据自由传输,所有节点属于同一ip地址。这时节点之间的通信不会有问题,因为交换机的sat显示它们在同一vlan。
而下面这种连接方式就会有问题。由于vlan在连接端口的主机之间创建了三层边界,它们将无法通信。
仔细看上图,这里有很多问题。第一,所有主机都在同一ip网,尽管连接到不同的vlan。第二,路由器在vlan 1,因此与所有节点隔离。最后,两台交换机通过不同的vlan互连。每一点都会造成通信阻碍,合在一起,网络各元素之间会完全无法通信。
交换机用满或同一管理单元物理上彼此分离的情形是很常见的。这种情况下,vlan需要通过trunk延伸至相邻交换机。trunk能够连接交换机,在网络间传载vlan信息。如下图所示:
对之前的拓扑的改进包括:
pc 1和pc 2分配到192.168.1.0网段以及vlan 2。
pc 3和pc 4分配到192.168.2.0网段以及vlan 3。
路由器接口连接到vlan 2和vlan 3。
交换机间通过trunk线互连。
注意到trunk端口出现在vlan 1,他们没有用字母t来标识。trunk在任何vlan都没有成员。现在vlan跨越多交换机,同一vlan下的节点可以物理上位于任何地方。
再次解释下什么是trunk:
trunk是在两个网络设备之间承载多于一种vlan的端到端的连接,将vlan延伸至整个网络。没有vlan trunk,vlan也不会非常有用。vlan trunk允许vlan数据流在交换机间传输,所以设备在同一vlan,但连接到不同交换机,能够不通过路由器来进行通信。
一个vlan trunk不属于某一特定vlan,而是交换机和路由器间多个vlan的通道。如下图所示,交换机s1和s2,以及s1和s3之间的链路,配置为传输从vlan10,20,30以及90的数据流。该网络没有vlan trunk就无法工作。
当安装好trunk线之后,帧在trunk线传输是就可以使用trunk协议来修改以太网帧。这也意味着交换机端口有不止一种操作模式。缺省情况下,所有端口都称为接入端口。当一个端口用于交换机间互连传输vlan信息时,这种端口模式改变为trunk,节点也路由器通常不知道vlan的存在并使用标准以太网帧或“untagged”帧。trunk线能够使用“tagged”帧来标记vlan或优先级。
因此,在trunk端口,运行trunk协议来允许帧中包含trunk信息。如下图所示:
pc 1在经过路由表处理后向pc 2发送数据流。这两个节点在同一vlan但不同交换机。步骤如下:
以太网帧离开pc 1到达switch 1。
switch 1的sat表明目的地是trunk线的另一端。
switch 1使用trunk协议在以太网帧中添加vlan id。
新帧离开switch 1的trunk端口被switch 2接收。
switch 2读取trunk id并解析trunk协议。
源帧按照switch 2的sat转发至目的地(端口4)。
5、工程实践
我们利用cisco packet trace工具来对上述描述的vlan的技术点进行工程实践,内容包括通过四台pc、两台交换机,通过一个trunk链路建立两个vlan的过程。
1、通过cisco packet trace我们首先建立一个如下图的网络拓扑结果。pc1接switch1的0/1端口;pc2接switch1的0/2端口;laptop0接switch2的0/1端口;laptop1接switch2的0/2端口;trunk链路有两台交换机的普通端口0/3互联。
2、分别为四台pc分配静态的ip。如图所示pc3为192168.10.1;根据vlan规划,pc2的ip为192.168.20.1;laptop0的ip192.168.20.1;laptop1的ip192.168.20.2;
3、配置switch1,命令如下
switch》enable
switch#configure terminal
switch(config)#hostname sa
sa(config)#vlan 10
sa(config-vlan)#exit
sa(config)#vlan 20
sa(config-vlan)#exit
sa(config)#interface fa0/1
sa(config-if)#switchport access vlan 10
sa(config-if)#exit
sa(config)#interface fa0/2
sa(config-if)#switchport access vlan 20
sa(config-if)#exit
sa(config)#interface fa0/3
sa(config-if)#switchport mode trunk
sa(config-if)#switchport trunk allowed vlan all
通过测试
4、配置switch2,命令如下
switch》enable
switch#configure terminal
switch(config)#hostname sb
sb(config)#vlan 10
sb(config-vlan)#exit
sb(config)#vlan 20
sb(config-vlan)#exit
sb(config)#interface fa0/1
sb(config-if)#switchport access vlan 10
sb(config-if)#exit
sb(config)#interface fa0/2
sb(config-if)#switchport access vlan 20
sb(config-if)#exit
sb(config)#interface fa0/3
sb(config-if)#switchport mode trunk
sb(config-if)#switchport trunk allowed vlan all
通过测试
5、检查vlan间的互通性,从pc3(192.168.10.1)ping pclaptop0和laptop1情况如下:

卧式剥离试验机,你知道有哪些品牌制造厂家吗?科准、星汇、新淮
C++基础语法知识之链接装载库中Linux 的共享库
计算机系统讲解(上)
电源设备中噪声滤波器的作用
如何修改CAD快捷键?
一文读懂VLAN和VXLAN技术
总金额约1.27亿元!四方光电收到欧洲著名主机厂项目定点通知书
恩智浦推出L4101T新固态照明解决方案
华为5G基站受禁令的影响并不大,因其所需的芯片储备充足
靠图像检测来报警的检测方式
基于单片机的数码管静态及动态显示
人工智能结合医疗给医疗行业注入新的血液
乌兹别克斯坦发布电力2030计划,将部署300兆瓦储能设施
TCL黄金曲面电视55P3:画质表现出众,是一款值得推荐的主流大屏电视
人工智能在医疗健康行业的哪些方面发挥着重要作用
什么是DIY?
AppCAD计算天线信号线特性阻抗
水污染治理的措施分析
三星发布全新 Neo QLED 电视系列:采用量子 Mini LED 面板,最高 8K 分辨率
新增人脸识别是华为Mate 10系列的一大加分项