发送网桥协议数据单元 (BPDU) 帧的虚拟机(如 VPN 客户端)会导致某些连接到相同端口组的虚拟机断开连接。传输 BPDU 帧可能也会断开主机或父 vSphere HA 集群的连接。

问题

应发送 BPDU 帧的虚拟机导致发送到同一个端口组中虚拟机的外部网络的流量被阻止。

如果虚拟机在属于 vSphere HA 集群的主机上运行,则主机会在特定条件下处于网络隔离状态,您会发现集群中的主机上发生拒绝服务 (DoS)。

原因

最佳做法是,连接到 ESXi 主机的物理交换机端口启用“端口快速”和 BPDU 防护,以强制执行生成树协议 (STP) 的边界。标准交换机或 Distributed Switch 均不支持 STP,而且不会发送任何 BPDU 帧至交换机端口。但是,如果受影响的虚拟机中的任何 BPDU 帧到达面向 ESXi 主机的物理交换机端口,则 BPDU 防护功能将停用该端口,以阻止这些帧对网络的生成树拓扑产生影响。

在某些情况下,虚拟机应发送 BPDU 帧(例如,在部署 VPN 通过 Windows 网桥设备或网桥功能连接时)。如果与物理适配器(处理从此虚拟机传出的流量)配对的物理交换机端口具有 BPDU 防护,则该端口不会出现错误,而且虚拟机和使用主机物理适配器的 VMkernel 适配器无法再与外部网络通信。

如果端口组的绑定和故障切换策略包含更多活动的上行链路,则 BPDU 流量将移至下一个活动上行链路的适配器。新的物理交换机端口将被停用,而且更多的工作负载无法与网络交换数据包。最终,ESXi 主机上几乎所有实体都可能无法访问。

如果虚拟机在属于 vSphere HA 集群的主机上运行,而且主机由于所连接的大多数物理交换机端口被停用而处于网络隔离状态,则集群中处于活动状态的首选主机会将 BPDU 发送器虚拟机移至另一台主机。虚拟机开始禁用连接到新主机的物理交换机端口。在 vSphere HA 集群中的迁移最终将导致整个集群中的 DoS 累加。

解决方案

  • 如果 VPN 软件必须继续在虚拟机上运行,则允许从虚拟机传出流量并单独配置物理交换机端口以传递 BPDU 帧。
    网络设备 配置
    Distributed Switch 或标准交换机

    将端口组上的“伪信号”安全属性设置为接受,以允许 BPDU 帧离开主机并访问物理交换机端口。

    通过将虚拟机置于单独的端口组中并将物理适配器分配给组,可以隔离 VPN 流量的设置和物理适配器。

    小心: 将“伪传输”安全属性设置为 接受以启用主机来发送 BPDU 帧,此操作会带来安全风险,因为被攻击的虚拟机可以执行欺骗性攻击。
    物理交换机
    • 将“端口快速”保持启用状态。
    • 对于单个端口启用 BPDU 筛选器。BPDU 帧到达端口时,将被筛选出。
    注: 请勿全局启用 BPDU 筛选器。如果全局启用 BPDU 筛选器,则“端口快速”模式将被停用,并且所有物理交换机端口将执行 STP 的全套功能。
  • 要在均连接到第 2 层网络的两个虚拟机网卡之间部署网桥设备,请允许从虚拟机中传出 BPDU 流量并取消激活“端口快速”和 BPDU 循环阻止功能。
    网络设备 配置
    Distributed Switch 或标准交换机

    将端口组上安全策略的“伪信号”属性设置为接受,以允许 BPDU 帧离开主机并访问物理交换机端口。

    通过将虚拟机置于单独的端口组中并将物理适配器分配给组,可以隔离网桥流量的设置以及一个或多个物理适配器。

    小心: 将“伪传输”安全属性设置为 接受以启用网桥部署,此操作会带来安全风险,因为被攻击的虚拟机可以进行欺骗性攻击。
    物理交换机
    • 对虚拟网桥设备的端口停用“端口快速”,以便在其上运行 STP。
    • 对于面对网桥设备的端口停用 BPDU 防护和筛选器。
  • 任何情况下,通过在 ESXi 主机或物理交换机上激活 BPDU 筛选器可保护环境不受 DoS 攻击。
    • 在未实施客户机 BPDU 筛选器的主机上,对虚拟网桥设备的物理交换机端口启用 BPDU 筛选器。
      网络设备 配置
      Distributed Switch 或标准交换机 将端口组上安全策略的“伪信号”属性设置为拒绝
      物理交换机
      • 保持“端口快速”配置。
      • 对单个物理交换机端口启用 BPDU 筛选器。BPDU 帧到达物理端口时,将被筛选出。
      注: 请勿全局启用 BPDU 筛选器。如果全局启用 BPDU 筛选器,则“端口快速”模式将被停用,并且所有物理交换机端口将执行 STP 的全套功能。