6. VXLAN 部署场景
VXLAN 通常部署在数据中心的虚拟化主机上, 这些主机可能分布在多个机架中. 各个机架可能属于不同的三层网络, 也可能位于同一个二层网络中. VXLAN 段/覆盖网络叠加在这些二层或三层网络之上.
考虑图 3, 其中描绘了连接到三层基础设施的两台虚拟化服务器. 这些服务器可以位于同一机架、不同机架, 也可能跨越同一管理域内的数据中心. 图中有四个 VXLAN 覆盖网络, 分别由 VNI 22、34、74 和 98 标识. 以 Server 1 上的 VM1-1 和 Server 2 上的 VM2-4 为例, 它们位于由 VNI 22 标识的同一个 VXLAN 覆盖网络中. 由于封装和解封装在 Server 1 和 Server 2 上的 VTEP 处透明发生, VM 并不知道覆盖网络和传输方法. 其他覆盖网络及其对应 VM 分别是: Server 1 上的 VM1-2 与 Server 2 上的 VM2-1, 二者位于 VNI 34; Server 1 上的 VM1-3 与 Server 2 上的 VM2-2 位于 VNI 74; 最后, Server 1 上的 VM1-4 与 Server 2 上的 VM2-3 位于 VNI 98.
+------------+-------------+
| Server 1 |
| +----+----+ +----+----+ |
| |VM1-1 | |VM1-2 | |
| |VNI 22 | |VNI 34 | |
| | | | | |
| +---------+ +---------+ |
| |
| +----+----+ +----+----+ |
| |VM1-3 | |VM1-4 | |
| |VNI 74 | |VNI 98 | |
| | | | | |
| +---------+ +---------+ |
| Hypervisor VTEP (IP1) |
+--------------------------+
|
|
|
| +-------------+
| | Layer 3 |
|---| Network |
| |
+-------------+
|
|
+-----------+
|
|
+------------+-------------+
| Server 2 |
| +----+----+ +----+----+ |
| |VM2-1 | |VM2-2 | |
| |VNI 34 | |VNI 74 | |
| | | | | |
| +---------+ +---------+ |
| |
| +----+----+ +----+----+ |
| |VM2-3 | |VM2-4 | |
| |VNI 98 | |VNI 22 | |
| | | | | |
| +---------+ +---------+ |
| Hypervisor VTEP (IP2) |
+--------------------------+
图 3: VXLAN 部署 - 跨三层网络的 VTEP
一种部署场景是隧道终止点是理解 VXLAN 的物理服务器. 另一种场景是 VXLAN 覆盖网络上的节点需要与旧式网络上的节点通信, 这些旧式网络可能基于 VLAN. 这些节点可以是物理节点, 也可以是虚拟机. 为了实现这种通信, 网络可以包含 VXLAN 网关 (见下方图 4, 其中交换机充当 VXLAN 网关), 在 VXLAN 和非 VXLAN 环境之间转发流量.
以下讨论参考图 4. 对于 VXLAN 连接接口上的入站帧, 网关会去除 VXLAN 头部, 并根据内部以太网帧的目的 MAC 地址将其转发到物理端口. 带有内部 VLAN ID 的解封装帧应 (SHOULD) 被丢弃, 除非明确配置为传递到非 VXLAN 接口. 反向来看, 非 VXLAN 接口上的入站帧会根据帧中的 VLAN ID 映射到特定 VXLAN 覆盖网络. 除非明确配置为在封装后的 VXLAN 帧中传递该 VLAN ID, 否则在将帧封装为 VXLAN 之前会移除该 VLAN ID.
这些提供 VXLAN 隧道终止功能的网关可以是 ToR/接入交换机, 也可以是数据中心网络拓扑中更上层的交换机, 例如核心设备, 甚至 WAN 边缘设备. 最后一种情况 (WAN 边缘) 可能涉及在混合云环境中终止 VXLAN 隧道的提供商边缘 (Provider Edge, PE) 路由器. 在所有这些场景中, 需要注意网关功能可以通过软件或硬件实现.
+---+-----+---+ +---+-----+---+
| Server 1 | | Non-VXLAN |
(VXLAN enabled)`<-----+ +---->`| server |
+-------------+ | | +-------------+
| |
+---+-----+---+ | | +---+-----+---+
|Server 2 | | | | Non-VXLAN |
(VXLAN enabled)`<-----+ +---+-----+---+ +---->`| server |
+-------------+ | |Switch acting| | +-------------+
|---| as VXLAN |-----|
+---+-----+---+ | | Gateway |
| Server 3 | | +-------------+
(VXLAN enabled)<-----+
+-------------+ |
|
+---+-----+---+ |
| Server 4 | |
(VXLAN enabled)<-----+
+-------------+
图 4: VXLAN 部署 - VXLAN 网关
6.1. 内部 VLAN 标签处理
VTEP 和 VXLAN 网关中的内部 VLAN 标签处理应符合以下要求:
除非另有配置, 带有内部 VLAN 标签的解封装 VXLAN 帧应 (SHOULD) 被丢弃. 在封装侧, 除非另有配置, VTEP 不应 (SHOULD NOT) 在隧道数据包中包含内部 VLAN 标签. 当带 VLAN 标签的数据包是 VXLAN 隧道化候选对象时, 除非另有配置, 执行封装的 VTEP 应 (SHOULD) 去除 VLAN 标签.