2. vSphere标准交换机原理与配置

vSphere标准交换机(vSphere Standard Switch,简称vSwitch)是ESXi主机内部由Hypervisor直接管理的二层虚拟交换机。它不依赖外部物理交换机即可完成同一主机内虚拟机之间的帧转发,同时通过上行链路(Uplink)把虚拟机流量接入物理网络。理解vSwitch的关键,是把它看成“主机内部的端口集合 + 转发决策 + 物理出口”三部分:虚拟机网卡(vNIC)连接到端口组,端口组归属某个vSwitch,vSwitch再通过物理网卡(vmnic)连到接入交换机。本节围绕架构、端口组、VLAN标记与上行链路绑定策略展开,并给出一个可复现的流量隔离与冗余配置案例。

一、vSwitch的架构与转发逻辑

标准交换机由ESXi内核实现,没有独立的控制平面,配置随主机保存在本地。它的核心构件包括:

  • 虚拟端口(Virtual Port):每个虚拟端口可挂接一个虚拟网卡或一个VMkernel接口,端口数量由交换机端口数上限决定,默认通常为128或更高。
  • 端口组(Port Group):一组具有相同策略的虚拟端口集合,是虚拟机接入网络的“逻辑入口”,也是VLAN、安全策略、流量整形的配置边界。
  • 上行链路(Uplink):vSwitch与物理网卡之间的连接,负责把虚拟端口流量送出主机。一个vSwitch可绑定多块物理网卡形成冗余。
  • MAC地址表:vSwitch学习虚拟机和上行链路侧MAC地址,决定帧从哪个端口转发;未知单播、广播和组播会向同VLAN内所有端口泛洪。

转发逻辑可以概括为:虚拟机发出帧 → 进入所属端口组 → vSwitch查MAC表 → 命中则从对应端口转发,未命中则泛洪 → 若目的在物理网络,则经上行链路送出。由于vSwitch本身不参与STP,多上行链路之间不会形成环路阻塞,而是由绑定策略决定流量分布。

vSphere标准交换机架构与流量路径 虚拟机 VM-A vNIC VLAN 10 VM-B vNIC VLAN 20 VM-C vNIC VLAN 10 VMkernel 管理/存储 端口组 PG-Prod VLAN ID 10 PG-Dev VLAN ID 20 PG-vMotion VLAN ID 30 PG-Mgmt VLAN ID 99 vSwitch0 MAC表 / 泛洪 虚拟端口 VLAN标记 安全策略 流量整形 上行链路 vmnic0 活动 vmnic1 活动 vmnic2 备用 物理交换机 Trunk 流量路径:vNIC → 端口组(VLAN标记)→ vSwitch转发 → 上行链路 → 物理交换机

二、端口组与VLAN标记

端口组是vSwitch上最重要的配置单元。创建端口组时需要指定名称、VLAN ID和策略。VLAN标记方式有三种:

  • VLAN ID = 0(外部交换机标记,EST):vSwitch不插入802.1Q标签,由物理交换机端口决定VLAN。适合物理交换机已配置Access口或需要由外部设备统一管理VLAN的场景。
  • VLAN ID = 1~4094(虚拟交换机标记,VST):vSwitch在帧进入上行链路前插入对应VLAN标签,物理交换机端口必须配置为Trunk并放行该VLAN。这是最常用的方式,一台主机可通过同一vSwitch承载多个隔离网络。
  • VLAN ID = 4095(VGT,虚拟客户机标记):vSwitch不处理标签,由虚拟机内部自行打标签,适合嵌套虚拟化或需要虚拟机感知VLAN的场景。

端口组还承载安全策略:混杂模式(Promiscuous Mode)、MAC地址更改(MAC Address Changes)、伪传输(Forged Transmits)。默认均为拒绝,生产环境应保持拒绝,仅在IDS/抓包等特殊场景按需开启混杂模式。

三、上行链路绑定策略

当vSwitch绑定多块物理网卡时,需要选择负载均衡策略。常见策略包括:

策略分发依据适用场景
基于源虚拟端口按虚拟端口ID分配上行链路默认策略,配置简单,单虚拟机流量不跨链路
基于源MAC哈希源MAC哈希后选链路虚拟机数量多且分布均匀时较均衡
基于IP哈希源/目的IP哈希需物理交换机配置EtherChannel/LACP
基于物理网卡负载按上行链路实时负载无需交换机配合,动态调整
使用显式故障切换仅活动/备用,不负载均衡需要严格主备路径时

故障检测可通过“仅链路状态”或“信标探测”实现。链路状态检测依赖物理网卡Link状态,信标探测则在上行链路间发送探测帧,能发现链路状态正常但上游交换机故障的情况。生产环境建议启用信标探测并设置合理的探测间隔。

四、配置案例:流量隔离与冗余

假设一台ESXi主机有4块物理网卡vmnic0~vmnic3,需要承载生产、开发、vMotion和管理四类流量,并要求任一网卡故障时业务不中断。规划如下:

vSwitch0(生产+开发+管理)
  端口组 PG-Prod    VLAN 10   活动: vmnic0,vmnic1   备用: vmnic2,vmnic3
  端口组 PG-Dev     VLAN 20   活动: vmnic2,vmnic3   备用: vmnic0,vmnic1
  端口组 PG-Mgmt    VLAN 99   活动: vmnic0,vmnic1   备用: vmnic2,vmnic3
  负载均衡: 基于源虚拟端口
  故障检测: 信标探测

vSwitch1(vMotion专用)
  端口组 PG-vMotion VLAN 30   活动: vmnic2,vmnic3   备用: vmnic0,vmnic1
  负载均衡: 基于源虚拟端口
  故障检测: 信标探测

配置要点:物理交换机连接vmnic0~vmnic3的端口均配置为Trunk,放行VLAN 10、20、30、99。PG-Prod与PG-Dev使用不同的活动上行链路,使生产与开发流量在物理层面尽量分离;PG-Mgmt与PG-vMotion各自独立,避免vMotion大流量影响管理通道。每块网卡都出现在其他端口组的备用列表中,实现N+1冗余。

验证方法:在虚拟机内执行ping持续测试,然后通过ESXi主机客户端或esxcli network nic down模拟断开vmnic0,观察PG-Prod流量是否在数秒内切换到vmnic1,ping丢包应控制在1~2个以内。使用esxcli network vswitch standard portgroup list和esxcli network nic list可确认端口组与上行链路状态。

若物理交换机不支持LACP,不要选择“基于IP哈希”策略,否则可能因哈希算法不一致导致流量黑洞。此时优先使用“基于源虚拟端口”或“基于物理网卡负载”。
VLAN ID 4095(VGT)要求虚拟机内部自行配置VLAN标签,若虚拟机未配置,流量将无法正确进入目标VLAN。除非有明确需求,否则生产环境建议使用VST方式由vSwitch统一打标。

通过上述配置,标准交换机在单主机层面实现了VLAN隔离、流量分离和上行链路冗余。理解端口组与上行链路策略的对应关系,是后续排查虚拟机网络不通、丢包或带宽不均问题的关键基础。