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,多上行链路之间不会形成环路阻塞,而是由绑定策略决定流量分布。
二、端口组与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可确认端口组与上行链路状态。
通过上述配置,标准交换机在单主机层面实现了VLAN隔离、流量分离和上行链路冗余。理解端口组与上行链路策略的对应关系,是后续排查虚拟机网络不通、丢包或带宽不均问题的关键基础。