Home

【vCenter】VMware vSwitch 水平分割的上联接口

这篇文章解释 VMware vSwitch 为什么在连接多个上联端口、且这些端口都接入同一个二层网络时,通常不会像传统交换网络那样直接形成二层环路。核心原因就在于 vSwitch 对上联口和下联口采用了不同的转发逻辑,其中最关键的一点就是“水平分割”。

现象说明

在 ESXi 中,如果一个 vSwitch 挂了两个或更多上联端口,并且这些端口都连到同一台交换机或同一个二层广播域,即使没有额外启用 LACP 或 STP,看起来也不会直接把自己绕成环。

这并不是因为物理交换机替它兜底,而是 VMware 自己在虚拟交换机层面就做了限制。

为什么这个问题容易被误解

很多人第一次接触 ESXi 网络时,会下意识把 vSwitch 理解成“虚拟版二层交换机”。这样一来,只要看到多个上联接进同一个广播域,就会自然联想到二层环路和 STP

vSwitch 的行为模型和传统交换机并不完全一致。它不是把所有端口当成平等的交换端口来处理,而是对“连接物理网络的上联口”和“连接虚拟机的下联口”分别施加了不同的转发规则。

适用范围

这里说的转发特性,适用于:

  • 虚拟标准交换机 VSS
  • 虚拟分布式交换机 VDS

示例

如图所示,vSwitch0 有多个上联接口连接到物理交换机,且没有配置 LACP 或 STP。正常情况下,虚拟机流量会按负载均衡策略分担到不同上联;当某条物理链路故障时,也可以自动切换到其他可用上联。

也就是说,即使没有依赖物理交换机上的特殊协议,vSwitch 仍然能实现:

  • 避免二层环路
  • 上联链路负载分担
  • 物理故障切换

VMware vSwitch 的几个关键特性

1. 上联口和下联口不是“同等端口”

传统以太网交换机通常把各个端口看成同一类转发实体,但 vSwitch 不一样。它会明确区分:

  • 上联接口:连接物理网络
  • 下联接口:连接虚拟机的虚拟网卡

也正因为这种强定义,vSwitch 才能对不同方向的流量实施不同规则。

2. 不依赖 MAC 地址学习

ESXi 主机本身就知道这台宿主机里运行了哪些虚拟机,也知道它们的 MAC 地址,因此不像传统交换机那样必须依靠动态学习表项来决定怎么转发。

3. 默认忽略 STP

vSwitch 本身不运行生成树协议,也不会主动发送 STP BPDU。收到的 STP BPDU 通常也不会参与普通交换决策。

这意味着连接 ESXi 的物理交换机端口,更应该按接入口或边缘端口来配置,并配合 BPDU 保护,避免因为误接线而在物理网络侧形成环路。

4. 水平分割转发

这是最核心的机制。

通过某一个上联口进入 vSwitch 的报文,不会再被转发到其他上联口。也就是说:

  • 上联口收到的流量,可以下发给本地虚拟机
  • 但不会再从另一个上联口继续转发出去

正是这条规则,阻止了 vSwitch 在多个上联之间帮你“桥接成环”。

5. 广播和组播不会在所有上联上泛洪

由虚拟机发起的广播或组播流量,会发给同一端口组中的其他虚拟机,同时只会通过一个上联口发往外部网络,而不是在所有上联上各发一份。

反过来,如果广播或组播是从上联口进入的,它会被转发给符合 VLAN 条件的虚拟机,但不会再复制到其他上联口。

6. 没有未知单播泛洪

虚拟机发给未知 MAC 的单播报文,vSwitch 也只会按当前负载均衡策略通过一个上联发出去,而不是像传统交换网络那样做泛洪。

如果某个未知单播是从上联口进来的,vSwitch 通常会直接丢弃。

7. 基于源 MAC 的反向检查

物理交换机可能会把某些广播、组播或泛洪流量通过其他上联再送回来。为了避免这些流量再次被错误转发,vSwitch 会检查通过上联收到的数据包源 MAC。

如果发现这个源 MAC 本来就是本地主机上某台虚拟机的地址,那么这样的报文会被静默丢弃。

默认负载均衡方式

当一个 vSwitch 挂了多个启用状态的物理网卡时,VMware 默认常见的做法是按虚拟端口 ID 把流量分配给某一条上联链路。

这意味着单个虚拟机的某个虚拟端口,通常只会稳定使用被分配到的那条上联,而不会在多条上联之间同时收发。

总结

VMware vSwitch 之所以在多上联场景下不会像普通交换网络那样轻易形成二层环路,关键不在于它支持了 STP,而在于它根本没有按传统交换机的方式转发。上联口的水平分割、有限泛洪、未知单播处理和源 MAC 检查,共同决定了它的行为模型。

如果你把它理解成“一个普通交换机的虚拟版”,就很容易误判;更准确的理解应该是,它是一个对上联和下联有强约束的虚拟交换平面。

运维上的实际意义

理解“水平分割”之后,很多现象就更容易判断:

  • 多个上联并不等于可以随意当普通交换机那样互桥
  • 没有启用 STP,也不代表 vSwitch 就一定会自发成环
  • 物理交换机侧仍然要按接入口或边缘端口思路配置,不能因此放松物理侧的环路防护

参考

https://blog.ipspace.net/2010/11/vmware-virtual-switch-no-need-for-stp.html

https://fastreroute.com/vsphere-esxi-networking-guide-standard-switches

VMware 网络