底层 VPC 网络、第 2 层 MAC 学习和 DNS
本文档介绍了 VMware solution on Google Cloud中的底层虚拟私有云 (VPC) 网络、第 2 层广播模拟、IP 地址管理 (IPAM) 和域名系统 (DNS) 架构。
在 VMware 解决方案中,主机级网络会将 VMware ESXi VMkernel 接口映射到 Compute Engine 主要和动态虚拟网络接口 (vNIC)。每个主机都使用专用虚拟私有云 (VPC) 子网、802.1Q VLAN 标记、第 2 层 MAC 学习和内部 IPAM。
核心子网和流量细分
如需在 VMware Cloud Foundation (VCF) 中隔离网络流量类别,您必须预配专用底层子网,如下图所示(点击可放大):
标准 VCF 集群至少需要四个专用 VPC 子网,如下表所示:
| 子网类别 | 流量类型 | VLAN 映射 | 用途 |
|---|---|---|---|
管理 (MGMT)
|
底层控制 | 原生(未添加代码) | 承载 ESXi 主机管理流量 (vmk0),并托管 SDDC Manager、vCenter Server 和 NSX Manager 节点。 |
| vSAN | 存储空间 | 已标记(例如 VLAN 2) | 在 ESXi 本地 NVMe SSD (vmk2) 之间传输存储复制流量。 |
| vMotion | 实时迁移 | 已标记(例如 VLAN 3) | 在 ESXi 主机 (vmk1) 之间传输实时虚拟机迁移流量。 |
| NSX TEP | Geneve 叠加层 TEP | 已标记(例如 VLAN 4) | 承载主机到主机 Geneve 叠加隧道封装流量 (vmk10)。 |
Dynamic NIC 和 VLAN 配置
为了在裸金属主机接口之间对多个流量类别进行分段,Compute Engine 使用与主网络接口关联的 Dynamic NIC(虚拟子接口):
- 主接口 (
nic0):在未加标记的管理子网上预配。此接口处理初始主机启动、ESXi 直接控制台界面 (DCUI) 和vmk0管理流量。 - 动态接口 (
nic0.VLAN_ID):在实例预配期间,通过显式--vlan元数据附加到主接口,并映射到相应的 VPC 子网。 - VMware 虚拟分布式交换机 (VDS) 对齐:在 ESXi 主机上,VDS 上的端口组会标记匹配的 802.1Q VLAN ID。由 Hypervisor 标记的出站帧会直接映射到相应的 Compute Engine 动态接口,以便在 VPC 网络中转发。
物理网络冗余
虽然 Compute Engine 裸金属实例向 ESXi 主机操作系统呈现单个网络接口(nic0 / vmnic0),但此单个接口是 Google Cloud 软件定义网络 (SDN) 层提供的抽象。
在底层物理基础设施中,网络路径是冗余的,并使用多路径光纤连接到数据中心交换结构。由于物理传输层不依赖于单路径硬件,因此您无需为物理路径冗余配置 Hypervisor 级 NIC 组合。如果发生主机级硬件事件,工作负载可用性会受到 vSphere 高可用性 (HA) 和节点替换工作流的保护。
第 2 层模拟:ARP 广播和自定义 MAC 学习
标准 Compute Engine 虚拟机实例使用固定的、通过算法派生的 MAC 地址 (42:01:ac:...)。相比之下,VMware ESXi 主机、VMkernel 端口和虚拟设备会从 VMware 组织唯一标识符 (OUI) 范围(例如 00:50:56:... 或 00:0c:29:...)生成自定义 MAC 地址。
为了原生支持自定义 VMware MAC 地址和客户机广播流量,VMware 解决方案要求 VPC 网络的子网将解析子网掩码属性设置为仅通过学习广播主要范围 (--resolve-subnet-mask=ARP_BROADCAST_PRIMARY_RANGE_WITH_LEARNING),以支持基于 VLAN 的网络。如需将项目的第 2 层网络连接列入许可清单,请在 Google Cloud 控制台支持中心中提交支持服务工单,并提供以下信息:
- 产品:Google Cloud VMware Engine
- 优先级:P2
- 类别:Network Connectivity
- 业务影响:常规技术问题
- 提供更多详细信息:
Allowlist L2 network connectivity for my project,以及您的项目 ID、项目编号和部署的目标区域和可用区
子网广播模式
Compute Engine 支持以下子网 ARP 广播模式:
ARP_BROADCAST_PRIMARY_RANGE:在连接到子网的所有实例中广播 ARP 和免费 ARP (GARP) 查询。拥有目标 IP 地址的实例会直接响应。ARP_BROADCAST_PRIMARY_RANGE_WITH_LEARNING:VMware 解决方案必需。除了 ARP 广播之外, Google Cloud还会动态学习和缓存 IP 到自定义 MAC 的映射。获知映射后, Google Cloud 会将自定义 VMware MAC 地址用作发送到该 IP 地址的流量的 MAC 目标地址。如果端点的主 IP 地址不存在自定义映射, Google Cloud会回退到默认的 Google Cloud分配的 MAC 地址;发送到任何其他未映射 IP 地址的数据包都会被丢弃。
MAC 学习方法
Google Cloud 通过两种机制填充和更新自定义 MAC 地址缓存:
- 免费 ARP (GARP):监控子网中由 ESXi VMkernel 端口和迁移虚拟设备发出的 GARP 通告。
- 主动探测:探测子网主要 CIDR 范围内的 IP 地址,并使用主机 ARP 响应填充 MAC 缓存。
限制条件和规范
使用 ARP 广播和 MAC 学习配置子网时,存在以下限制:
- 不可变性:您必须在创建子网时指定
--resolve-subnet-mask标志。创建子网后,您将无法修改此设置。 - 子网用途和 IP 版本:仅在用途为
PRIVATE且仅限 IPv4 的 CIDR 范围的子网上受支持。 - 主要范围大小:仅在
/24或更小(例如/24、/25或/26)的主要 IPv4 CIDR 范围上支持 MAC 学习。次要 CIDR 范围不支持 MAC 学习。 - 端点配额:启用了广播模式的子网最多支持 64 个已连接的虚拟机网络接口。
- 广播子网配额:每个 VPC 网络在每个区域最多支持 64 个启用了广播的子网。此限制不支持增加配额。
- ARP 请求限制:在 64 实例子网中,如果 ARP 和 GARP 请求超过每秒 16 次查询 (QPS),则会被丢弃,以维持网络结构的稳定性。
- DHCP 和元数据服务器:不支持从自定义 MAC 地址发送的动态主机配置协议 (DHCP) 请求,这些请求会被丢弃。Compute Engine 元数据服务器仅公开默认的Google Cloud分配的 MAC 地址,而不公开自定义已知 MAC 地址。
- 目标实例:目标实例无法引用启用了 ARP 广播的子网中的网络接口。
- VPC MTU:将 VPC 网络最大传输单元 (MTU) 设置为
8896字节,并配置 VMware VDS、VMkernel 适配器和 NSX 配置文件,使其与8896字节匹配。如需了解详情,请参阅已知问题。
如需使用 Google Cloud CLI 创建启用了 ARP 广播、MAC 学习和专用 Google 访问通道的管理子网,请运行以下命令:
gcloud compute networks subnets create SUBNET_NAME \
--network=VPC_NAME \
--region=REGION \
--range=SUBNET_RANGE \
--resolve-subnet-mask=ARP_BROADCAST_PRIMARY_RANGE_WITH_LEARNING \
--enable-private-ip-google-access
在运行该命令之前,请替换以下内容:
SUBNET_NAME:新 VPC 子网的名称。VPC_NAME:目标 VPC 网络的名称。REGION:您要在该 Google Cloud 区域创建子网。SUBNET_RANGE:/24或更小的主 IPv4 CIDR 范围(例如10.200.0.0/24)。
IP 地址管理 (IPAM)
VMware 解决方案支持 VPC 网络中的三种 IP 地址分配方法:
- 临时(自动):从 VPC 子网池动态租用,并绑定到裸金属实例的生命周期。注意:在 VCF 集群启动和扩展期间,VCF 安装程序会按顺序对 vMotion 和 vSAN IP 地址进行排序和分配。首选自定义或预留 IP 分配,以保持可预测的主机到 IP 顺序。如需了解详情,请参阅已知问题。
- 临时(自定义):在实例或 Dynamic NIC 预配期间,从子网范围内的未分配地址中明确指定。
- 预留的静态 IP 地址:分配的 VPC IP 地址对象,无论实例状态如何,这些对象都会在项目中保持预留状态。为 ESXi 主机接口和浮动管理设备(vCenter Server、SDDC Manager 和 NSX Manager VIP)使用预留 IP 地址,以防止在维护和故障切换事件期间发生 IP 地址冲突。
DNS 架构和域名解析
VCF 要求对所有裸金属 ESXi 主机、管理虚拟设备和集群端点进行正向 (A) 和反向 (PTR) DNS 解析。正向或反向 DNS 记录缺失或配置错误会导致 SDDC Manager 启动和证书验证检查失败。
底层 DNS 解析(主机和管理设备)
为裸金属 ESXi 主机和底层托管的管理设备(vCenter Server、SDDC Manager 和 NSX Manager)配置 DNS 解析,如下所示:
- Cloud DNS 内部解析器 (
169.254.169.254):底层 ESXi 主机和管理虚拟机可以查询 Google Cloud 元数据 DNS 解析器 (169.254.169.254),以解析 Google Cloud 资源和在 Cloud DNS 中管理的专用区域。 入站 DNS 服务器政策:如果您的组织通过 Cloud Interconnect 或 Cloud VPN 使用集中式企业 DNS 服务器,请在 VPC 内的标准(非第 2 层广播)子网中配置 Cloud DNS 中的入站服务器政策。底层节点可以查询入站转发器 IP 地址,以解析专用 Google Cloud 记录和本地网域。
反向 (
PTR) 区域:在 Cloud DNS 中创建专用私有反向查找区域(例如,10.200.0.0/24管理子网的0.200.10.in-addr.arpa.),以便所有 ESXi 主机和管理设备 FQDN 都能双向解析。
叠加层客户虚拟机 DNS 解析
部署在 NSX 叠加层中的工作负载虚拟机位于 Geneve 封装的逻辑网络中,这些网络与 VPC 底层网络分离:
- 企业 DNS 服务器或入站转发器政策:将客户虚拟机配置为查询企业 DNS 服务器或可通过 NSX Tier-0 网关访问的 Cloud DNS 入站服务器政策的静态 IP 地址。
- 链路本地元数据地址限制:NSX 叠加层中的客户机虚拟机无法直接查询链路本地元数据解析器 (
169.254.169.254),因为链路本地地址不会通过 Geneve 叠加层隧道进行路由。
后续步骤
- 如需了解区域级负载均衡器如何实现管理设备故障切换,请参阅适用于 VCF 设备的高可用性负载均衡。
- 在 NSX 叠加层和边缘路由中探索叠加层路由选项。
- 在已知问题中查看常见的网络和 DNS 问题。