假设部署了两个 ESG,以便在物理环境中提供具有 2 向 ECMP 上行链路的 DLR 实例。

具有 ECMP 的简要 ESG 和 DLR 数据包流 显示了在两个 ESG 和物理基础架构之间启用等价多路径 (ECMP) 路由时的 ESG 和 DLR 数据包流。

因此,与具有单个 ESG 的部署相比,虚拟机 1 可以获得 2 倍的双向吞吐量。

VM1 连接到具有 VNI 5000 的逻辑交换机。

DLR 具有两个 LIF - VNI 5000 上的内部 LIF 以及 VNI 5001 上的上行链路 LIF。

DLR 启用了 ECMP,并通过动态路由协议(BGP 或 OSPF)从一对 ESG(ESG A 和 ESG B)中接收到 VLAN 20 的 IP 子网的等价路由。

两个 ESG 连接到与 VLAN 10 关联且支持 VLAN 的 dvPortgroup,还会在其中连接提供到 VLAN 20 的连接的物理路由器。

ESG 通过动态路由协议从物理路由器中接收 VLAN 20 的外部路由。

进行交换的物理路由器从两个 ESG 中获悉与 VXLAN 5000 关联的 IP 子网,并对传输到该子网中的虚拟机的流量执行 ECMP 负载均衡。

图 1. 具有 ECMP 的简要 ESG 和 DLR 数据包流
该图以环绕的文本进行了说明。

DLR 可以接收最多 8 个等价路由并在这些路由之间均衡流量。图中的 ESG A 和 ESG B 提供了两个等价路由。

ESG 可以执行到物理网络的 ECMP 路由,假设存在多个物理路由器。为简单起见,该图显示单个物理路由器。

不需要在 ESG 上配置到 DLR 的 ECMP,因为所有 DLR LIF 位于 ESG 所在的同一主机“本地”。在 DLR 上配置多个上行链路接口并不会带来额外的好处。

在需要更多北-南带宽的情况下,可以将多个 ESG 放在不同的 ESXi 主机上以通过 8 个 ESG 纵向扩展到大约 80Gbps。

ECMP 数据包流(不包括 ARP 解析):
  1. 虚拟机 1 将数据包发送到物理服务器,数据包将发送到 ESXi 主机 A 上的虚拟机 1 IP 网关(它是 DLR LIF)。
  2. DLR 为物理服务器的 IP 执行路由查找,并发现它不是直接连接的,而是与从 ESG A 和 ESG B 中收到的两个 ECMP 路由相匹配。
  3. DLR 计算 ECMP 哈希,确定下一跃点(可能是 ESG A 或 ESG B),然后将数据包从 VXLAN 5001 LIF 中发出。
  4. DVS 将数据包传送到选定的 ESG。
  5. ESG 执行路由查找,并发现可以通过 VLAN 10 上的物理路由器 IP 地址访问物理服务器的子网,它直接连接到 ESG 的某个接口。
  6. 数据包是通过 DVS 发出的,在使用 VLAN ID 10 的相应 801.Q 标记标记后,DVS 将数据包传送到物理网络。
  7. 数据包穿过物理交换基础架构以到达物理路由器,物理路由器执行查找以发现物理服务器直接连接到 VLAN 20 上的接口。
  8. 物理路由器将数据包发送到物理服务器。
在相反方向上:
  1. 物理服务器将数据包发送到虚拟机 1,并将物理路由器作为下一跃点。
  2. 物理路由器为虚拟机 1 的子网执行查找,并发现到该子网的两个等价路径,下一跃点分别为 ESG A 和 ESG B 的 VLAN 10 接口。
  3. 物理路由器选择其中的一个路径,然后将数据包发送到相应的 ESG。
  4. 物理网络将数据包传送到 ESG 所在的 ESXi 主机,然后将其传送到 DVS,DVS 解封数据包并在与 VLAN 10 关联的 dvPortgroup 上将其转发到 ESG。
  5. ESG 执行路由查找,并发现可以通过与 VXLAN 5001 关联的接口访问虚拟机 1 的子网,下一跃点是 DLR 的上行链路接口 IP 地址。
  6. ESG 将数据包发送到与 ESG 相同的主机上的 DLR 实例。
  7. DLR 执行路由查找,并发现可以通过 VXLAN 5000 LIF 访问虚拟机 1。
  8. DLR 将数据包从其 VXLAN 5000 LIF 发送到 DVS,DVS 执行最终传送。