第五章

网络虚拟化:虚拟交换机与隔离

第四层 · vSwitch/VLAN/vDS 虚拟交换机与 VLAN 隔离

一、VM 之间的"网线"怎么接

小陈看着 VM 配置里的"网络"一栏,发出灵魂提问:"师傅,VM 是一台'虚拟电脑',它没有真实的网线插口,那它是怎么上网的?"

老周笑了,画了一张图:

物理网络 vs 虚拟网络:

物理网络:                          虚拟网络:
┌────────┐                         ┌──────────────────────┐
│ 电脑1  │──网线──┐                │  VM1   VM2   VM3     │
└────────┘        │                │   │     │     │      │
┌────────┐   ┌────┴───┐            │   └──┬──┘     │      │
│ 电脑2  │───│ 物理交换机 │          │   ┌──┴───┐    │      │
└────────┘   └────────┘            │  │ vSwitch(虚拟交换机)│
                                   │   └──┬───┘    │      │
                                   ├──────┼─────────┼──────┤
                                   │     物理网卡     │      │
                                   └──────┼─────────┘      │
                                          ▼                 │
                                    (连到真实网络)          │
                                   └──────────────────────┘

"虚拟交换机(vSwitch, Virtual Switch)是运行在 ESXi 里的'软件交换机'——VM 的虚拟网卡插到 vSwitch 的端口上,vSwitch 负责在 VM 之间转发数据,就像物理交换机在电脑之间转发一样。VM 之间互相通信根本不需要出物理机,直接在 vSwitch 内部就完成了。"


二、vSwitch 的结构:端口组与上行链路

"vSwitch 有两个关键部件:端口组上行链路。"老周说:

vSwitch 结构:
  ┌───────────────────────────────┐
  │  vSwitch0(第一个虚拟交换机)    │
  │  ┌───────────┬──────────────┐ │
  │  │ 端口组A    │ 端口组B       │ │  ← 端口组 = 一组"插孔"
  │  │ (VM网络)   │ (管理网络)    │ │
  │  └───────────┴──────────────┘ │
  │  ┌─────────────────────────┐  │
  │  │  上行链路(Uplink)        │  │  ← 连物理网卡
  │  └────────────┬────────────┘  │
  └───────────────┼────────────────┘
                  ▼
            物理交换机(真实网络)

端口组(Port Group):
  一组虚拟端口,定义了"这个网络的属性"(VLAN、策略)
  VM 网卡连到哪个端口组,就加入哪个"虚拟局域网"

上行链路(Uplink):
  vSwitch 连到物理网卡的口
  没有上行链路 = VM 只能内部互连,出不了这台物理机

"核心概念:端口组(Port Group)就是 VM 接入网络的'插座'。 你在 vCenter 里给 VM 配网卡时,选的就是一个端口组——选对了,VM 就加入了对应的网络。"


三、标准交换机 vs 分布式交换机

"vSwitch 分两种,考试和实战都要区分。"老周说:

标准交换机(vSS, Standard Switch):
  - 每台 ESXi 各自独立配置
  - 缺点:3 台 ESXi 要配 3 遍(还容易配得不一样)
  - 适合:单机、小规模

分布式交换机(vDS, Distributed Switch):
  - 由 vCenter 统一配置,所有 ESXi 共享同一个配置
  - 一台 vDS 管整个集群的网络(配一次,全部生效)
  - 功能更强(网络 IO 控制、端口镜像等)
  - 适合:多台 ESXi 的集群(生产标准)

云间书店:上了 vCenter + 多台 ESXi 之后,改用 vDS

"小规模用 vSS,集群必须 vDS——这是 VMware 网络规划的基本功。vDS 让整个集群的网络配置'一处修改,处处生效',还能精细控制每台 VM 的网络带宽。"


四、VLAN:把一个大网络切成"隔离的小房间"

"现在到最烧脑的部分:VLAN。"老周说,"云间书店现在 7 台 VM 都在一个网络里,谁都看得见谁。但如果 Web 服务器被攻破,黑客就能顺着网络摸到数据库——太危险了!我们需要隔离。"

VLAN(Virtual LAN,虚拟局域网):
  在物理网络里"切"出多个逻辑隔离的虚拟网络
  不同 VLAN 之间默认不通(要通,得经过路由器/防火墙)

云间书店的 VLAN 规划:
  VLAN 10:DMZ(对外服务)→ web-01(Nginx)
  VLAN 20:内部业务     → db-01、cache-01、mq-01、file-01
  VLAN 30:AI/管理      → ai-01、monitor-01
  VLAN 99:管理网络     → ESXi 管理口(只有管理员能进)

隔离效果:
  黑客攻破 web-01(VLAN 10)→ 想连数据库(VLAN 20)?
  → 默认不通!必须过防火墙放行特定端口。

"VLAN 的三种用法(配端口组时选):"

① VLAN 1(默认):不打标签,所有端口一个广播域
② VLAN 标准:端口组指定一个 VLAN ID(如 VLAN 20)
③ VLAN 中继(Trunk):一个物理端口带多个 VLAN 标签(给路由/防火墙用)

在 vSphere 里:
  - 普通 VM 端口组:指定 VLAN ID(VM 感知不到,ESXi 自动打标签)
  - 这叫"VLAN 标签由 vSwitch 处理"(VGT/VST 模式)

"记住一句话:VLAN 是虚拟化网络安全的'第一道墙'——把 Web、数据库、管理网隔开,黑客攻破一台也不至于横着走遍全内网。"


五、网络规划实战:云间书店的虚拟网络设计

小陈在老周指导下,给云间书店设计了第一版虚拟网络:

云间书店 vSphere 网络规划(vSS 阶段):
  vSwitch0:
    ├── 端口组 DMZ(VLAN 10)   → web-01(对外)
    ├── 端口组 业务(VLAN 20)   → db/cache/mq/file
    └── 端口组 管理(VLAN 99)   → ESXi 管理口(VMkernel)
  上行链路:2 块物理网卡(teaming 冗余:一块挂了另一块顶上)

  安全规则:
    DMZ 只能访问业务网的"数据库端口 3306"
    业务网不能主动访问 DMZ(防数据库被外网直接打到)
    管理网只允许管理员 IP 访问

"师傅,为什么要 2 块物理网卡?"小陈问。

"网卡冗余(NIC Teaming)——一块物理网卡坏了,另一块自动顶上,网络不断。虚拟化里'冗余'是常态:网卡要冗余、存储要冗余、主机要冗余(下章)。记住:单点 = 风险,冗余 = 专业。"


六、章末:老周的第四层总结

第四层:网络虚拟化
├── vSwitch:ESXi 里的"软件交换机"(VM 之间内部转发)
├── 端口组:VM 接入网络的"插座"(配 VLAN/策略的地方)
├── 上行链路:vSwitch 连物理网卡的"出口"
├── vSS vs vDS:单机用标准,集群用分布式(一处配,处处生效)
├── VLAN:逻辑隔离的虚拟网络(Web/数据库/管理网分开)
└── NIC Teaming:网卡冗余(单点=风险,冗余=专业)

"小陈,网络讲完了,你现在有 7 台 VM、分好了 VLAN、配好了冗余——但你还只有一台 ESXi。 还记得第一章说的'单点风险'吗?这台 ESXi 要是挂了,7 台 VM 全灭。"

"那怎么办?"小陈问。

"再买两台服务器,组成集群(Cluster)。"老周说,"三台 ESXi 组成一个集群:一台挂了,虚拟机在另外两台自动重启(HA);负载不均?自动平衡(DRS);要维护物理机?VM 不停机迁移(vMotion)。下一章,是虚拟化最核心、最值钱的一层——集群与高可用。"

✌ 语言