当前位置:首页 > 路由交换 > 正文

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

在早期的文章中,我们曾经利用ESXi的虚拟交换机完成了全国SRv6骨干网的模拟在ESXi上安装vCenter配置部署SRv6组网教程,当时的做法是新建了一台vSwitch虚拟交换机SRv6,然后使用端口组模拟连线,并为端口组指定对应的VLAN ID来隔离业务流量,如下图所示:

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

这种做法我用了这么多年没发现有什么不妥,知道测试Panabit时才发现带标签的VLAN流量问题异地多VLAN互通难?Panabit iWAN二层交换方案深度解析,遇到粉丝点拨,我才发现竟然还有个特殊的VLAN 4095,那我们今天也一块学习一下。

首先,在ESXi网络中,最常用的应该就是物理网卡、虚拟交换机和端口组这三个组件了。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

物理网卡这里主要是被其他模块调用,我们先创建一个标准虚拟交换机VLAN-test。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

上线链路是可选配置,我们先选上vmnic3,因为没有接线,所以现在是关机状态;如果不需要,也可以点后面的叉号删掉。链路发现模式保持默认即可。安全配置的三个功能,简单说一下:

1、混杂模式,用于允许虚拟机的网络适配器接收虚拟交换机上所有流量,而不仅仅是目标为该虚拟机的数据包。此模式可以绕过虚拟交换机的过滤机制,常用于网络监控、入侵检测或流量分析场景。在生产环境中建议保持【拒绝】状态,若需启用,推荐仅在特定端口组(而非全局虚拟交换机)开启,并限制仅授权虚拟机使用。

2、MAC地址更改,用于控制虚拟机是否可以在系统内部修改其网络适配器的MAC地址。如果设置为拒绝】,当虚拟机尝试更改MAC地址时,ESXi会阻止并丢弃相关流量。在生产环境中建议保持拒绝】状态,防止未经授权的MAC地址篡改。

3、伪传输,用于检查虚拟机发送的数据包源MAC地址是否与注册的MAC地址一致。当设为【拒绝】时,ESXi会丢弃源MAC不匹配的流量,防止虚拟机伪装成其他设备。在生产环境中建议保持拒绝】状态,降低ARP欺骗、MAC泛洪攻击或非法流量转发等风险。

当然,我这测试环境就可以随便搞了,直接全部选择【接受】。

接下来,我们就可以在这个虚拟交换机下添加端口组了。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

新建端口组时,我们需要指定一个端口组名称,设置VLAN ID,选择虚拟交换机,同时配置安全选项。如前所述,安全选项推荐在虚拟交换机中设置为默认拒绝,端口组使用默认的【从vSwitch继承】即可实现默认拒绝的效果;如果有特殊需求,再单独修改为【接受】,或者视实际情况进行调整。

接下来,我们着重看一下这个VLAN ID。

其实,从ESXi中看VLAN ID不太明显,如果使用vCenter来配置,就能看到VLAN的区别了。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

可以看到,这里将VLAN ID分为了三种类型:0、4095和其他。其中:

VLAN 0又称为EST(External Switch Tagging,外部交换机标记)模式,当ESXi端口组的VLAN ID设置为0时,报文不携带VLAN标签,由ESXi连接的外部物理交换机打上接口的VLAN标签,参考VLAN设置网络之路24:VLAN基础实验,适用于简单网络环境。

VLAN 4095又称为VGT(Virtual Guest Tagging,虚拟客户机标记)模式,允许虚拟机自行处理标签,当ESXi端口组的VLAN ID设置为4095时,虚拟交换机在转发数据包时,会保留数据的所有VLAN标签,ESXi连接的外部物理交换机一般需要设置为trunk或hybrid模式,适用于虚拟机多VLAN接入等高级网络需求环境。

其他手工指定的VLAN(1-4094)又称为VST(Virtual Switch Tagging,虚拟交换机标记)模式,由虚拟交换机处理端口组VLAN ID为1-4094的VLAN标签,适用于大多数场景。

验证也比较简单,我们结合之前的VLAN教程再测试一下(网络之路24:VLAN基础实验,测试拓扑如下。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

首先,我们将端口组的VLAN ID设置为0,并在交换机设备上创建所有VLAN。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

可以看到,对于交换机而言,VLAN 0和4095为协议保留值,可以配置的VLAN范围也是1-4094,接口默认属于VLAN 1,接口链路类型默认为ACCESS。

那交换机接口使用默认配置,能通信吗?

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

没有问题,那我们将一端的VLAN切换到VLAN 2再试一下。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

因为ACCESS接口类型本身就不带VLAN标签,接下来,我们换成Trunk接口带上VLAN标签试一下。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

可以看到,当两端都使用VLAN 2标签进行通信时,ESXi虚拟交换机会直接丢弃带VLAN标签的业务报文,导致两端设备无法通信。

那如果我们将端口组的VLAN ID设置为2呢?按照虚拟交换机的处理逻辑,它会在收到报文之后剥离VLAN 2的标签,然后转发到其他虚拟机。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

而在实际测试中,是无法通信的。这是因为SW223发出的报文携带了VLAN 2的标签,经虚拟交换机剥离VLAN标签之后,发送给SW224;SW224收到后,认为其是VLAN 1的流量,处理之后再从VLAN 1转发出去。而VST的处理机制是不给发送到虚拟机的报文打标签,所以当报文回到SW223时,也进入了VLAN 1。如此一来,流量就不通了。

按照VST的处理机制,应该是始终只有两台设备发出的不带VLAN标签的流量能够通信,那我们可以配置SW223的PVID为223,配置SW224的PVID为224,测试一下。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

果然,VST始终允许两台设备发出的不带VLAN标签的流量通信,跟端口组配置的VLAN ID没有关系。

最后,我们测试一下VGT模式的VLAN 4095,首先将VLAN ID修改为4095。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

然后配置两台交换机使用VLAN 222进行通信。

从SRv6到Panabit测试:揭秘ESXi虚拟交换机VLAN 0-4095的终极用法

可以看到,在保持SW223的PVID为223、SW224的PVID为224的情况下,两台交换机使用VLAN 222通信成功,也就说明VGT模式允许虚拟机之间携带VLAN标签进行通信。


相关文章:

文章已关闭评论!