交换机不应该根据计算机的子网和插入的端口来标记网络流量吗?为什么物理Window的机器似乎在没有额外设置的情况下处理VLAN,但是Linux物理机需要新的接口配置来查看流量?物理交换机不应该像vSwitch为我们的虚拟机那样执行此操作吗?
我只是希望Android设备使用来自VM和Windows机器的服务,但我甚至无法ping它们或网关,因为无法在设备上手动设置VLAN.
解决方法
Shouldn’t the switch be responsible for tagging the network traffic based on a machine’s subnet and the ports it is plugged into?
VLAN是第2层构造,IP地址是第3层构造. VLAN和IP地址之间没有直接关系.
对我来说,就像你将交换机端口配置为VLAN的标记端口一样,你可能不应该将它们配置为这样.当交换机端口被标记时,交换机在帧中插入VLAN标记,并且连接到该交换机端口的端点负责处理该VLAN
标签.通常,除交换机上的中继端口外,您不需要或不需要VLAN标记.大多数VLAN流量都会使交换机无标记.交换机知道流量属于哪个VLAN,并根据VLAN适当地在交换机端口之间移动它. Trunk端口通常在交换机之间承载多个VLAN的流量,因此需要对这些帧进行标记,以便接收交换机知道流量属于哪个VLAN.
听起来您在ESXi vSwitch上使用VST(虚拟交换机标记),这可以解释您的虚拟机工作原因. vSwitch正在处理VLAN标记.
我怀疑Windows机器连接到原始/默认VLAN,这是未标记的,这解释了它们工作的原因.
总结一下我的假设:
您的物理Windows计算机正在运行,因为它们已连接到本机/默认VLAN中的交换机端口(未标记),并且它们的NIC配置中不需要VLAN标记.
您的虚拟机正常工作,因为ESXi vSwitch正在管理VLAN标记.
您的其他设备无法正常工作,因为它们不在本机/默认VLAN中,并且您已将VLAN端口配置为已标记,并且这些计算机的NIC配置未配置相应的VLAN ID,因此无法处理VLAN标记的流量.