BPDU (Bridge Protocol Data Unit) フレーム (たとえば VPN クライアント) を送信する仮想マシンによって、同じポート グループに接続する一部の仮想マシンの接続が失われることがあります。BPDU フレームの転送によってホストまたは親の vSphere HA クラスタの接続が切断される場合もあります。

問題

BPDU フレームを送信する仮想マシンにより、同じポート グループ内の仮想マシンの外部ネットワークへのトラフィックが遮断されます。

vSphere HA クラスタの一部であるホストで仮想マシンが実行され、ホストが特定の状況下でネットワークから隔離されていた場合、クラスタ内のホストでサービス拒否 (DoS) が発生します。

原因

ベスト プラクティスとして、ESXi ホストに接続している物理スイッチ ポートで Port Fast および BPDU ガードを有効にしてスパニング ツリー プロトコル (STP) の境界を強化します。標準スイッチまたは Distributed Switch は STP をサポートしていないため、BPDU フレームをスイッチ ポートに送信することはありません。ただし、侵害された仮想マシンからの BPDU フレームが ESXi ホストに接している物理スイッチ ポートに到達した場合、BPDU ガード機能はポートを無効にして、フレームがネットワークのスパニング ツリー トポロジに影響を与えないようにします。

仮想マシンが BPDU フレームを送信することが想定されていることがあります。たとえば、Windows のブリッジ デバイスまたはブリッジ機能を介して接続された VPN をデプロイするときなどです。仮想マシンからのトラフィックを処理する物理アダプタとペアになった物理スイッチ ポートで BPDU ガードが有効な場合、ポートはエラーにより無効となり、ホストの物理アダプタを使用する仮想マシンと VMkernel アダプタは外部ネットワークと通信できなくなります。

ポート グループのチーミングおよびフェイルオーバー ポリシーにより多くのアクティブなアップリンクがある場合は、BPDU トラフィックは次にアクティブなアップリンクのアダプタに移動します。新しい物理スイッチ ポートが無効になり、より多くのワークロードでネットワークとパケットを交換できなくなります。最終的に、ESXi ホストのほとんどすべてのエンティティにアクセスできなくなることがあります。

vSphere HA クラスタの一部であるホストで仮想マシンが実行されている場合に、ホストに接続している物理スイッチ ポートのほとんどが無効であるためにホストがネットワークから隔離されると、クラスタのアクティブなプライマリ ホストは BPDU を送信している仮想マシンを別のホストに移動します。仮想マシンは新しいホストに接続された物理スイッチ ポートの無効化を開始します。最終的に、vSphere HA クラスタ内の移行はクラスタ全体の DoS の累積につながります。

解決方法

  • VPN ソフトウェアが仮想マシンでの動作を継続する必要がある場合、仮想マシンから送信されるトラフィックを許可し、物理スイッチ ポートを個別に構成して BPDU フレームを通過するようにします。
    ネットワーク デバイス 構成
    Distributed Switch または標準スイッチ

    ポート グループの [偽装転送] セキュリティ プロパティを [承諾] に設定して、BPDU フレームがホストから離脱して物理スイッチ ポートに到達できるようにします。

    仮想マシンを分離されたポート グループに配置し、グループに物理アダプタを割り当てることによって、VPN トラフィックの設定と物理アダプタを隔離できます。

    注意: [偽装転送] セキュリティ プロパティを [承諾] に設定してホストで BPDU フレームを送信可能にすると、侵害された仮想マシンでなりすまし攻撃を実行できるようになるため、セキュリティ上のリスクが生じます。
    物理スイッチ
    • Port Fast を有効のままにします。
    • 各ポートの BPDU フィルタを有効にします。BPDU フレームがポートに到達すると、除外されます。
    注: BPDU フィルタをグローバルに有効にしないでください。BPDU フィルタをグローバルに有効にすると、Port Fast モードが無効になり、すべての物理スイッチ ポートがすべての STP 機能セットを実行します。
  • 同じレイヤー 2 ネットワークに接続する 2 つの仮想マシン NIC の間にブリッジ デバイスをデプロイするには、仮想マシンから送信される BPDU トラフィックを許可し、Port Fast および BPDU のループ防止機能を無効にします。
    ネットワーク デバイス 構成
    Distributed Switch または標準スイッチ

    ポート グループのセキュリティ ポリシーの [偽装転送] プロパティを [承諾] に設定して、BPDU フレームがホストから離脱して物理スイッチ ポートに到達できるようにします。

    仮想マシンを分離されたポート グループに配置し、グループに物理アダプタを割り当てることによって、ブリッジ トラフィックの設定と 1 つ以上の物理アダプタを隔離できます。

    注意: [偽装転送] セキュリティ プロパティを [承諾] に設定してブリッジをデプロイ可能にすると、侵害された仮想マシンでなりすまし攻撃を実行できるようになるため、セキュリティ上のリスクが生じます。
    物理スイッチ
    • 仮想ブリッジ デバイスへのポートで STP を実行するために Port Fast を無効にします。
    • ブリッジ デバイスに接したポートでの BPDU ガードおよびフィルタを無効にします。
  • ESXi ホストまたは物理スイッチ上で BPDU フィルタをアクティブ化することによって、いかなる場合でも DoS 攻撃から環境を保護します。
    • ESXi 4.1 Update 3、ESXi 5.0 Patch 04 以降の 5.0 リリース、ESXi 5.1 Patch 01 以降を実行しているホストで、次のいずれかの方法でゲスト BPDU フィルタを有効にして、ホストを再起動します。
      • vSphere Web Client のホストの [設定] タブにある [システムの詳細設定] テーブルで、Net.BlockGuestBPDU プロパティを 1 に設定します。
      • ホストへの ESXi Shell で、次の vCLI コマンドを入力します。
        esxcli system settings advanced set -o /Net/BlockGuestBPDU -i 1
    • ゲスト BPDU フィルタが実装されていないホスト上で、仮想ブリッジ デバイスへの物理スイッチ ポートの BPDU フィルタを有効にします。
      ネットワーク デバイス 構成
      Distributed Switch または標準スイッチ ポート グループのセキュリティ ポリシーの [偽装転送] プロパティを [拒否] に設定します。
      物理スイッチ
      • Port Fast の構成をそのままにします。
      • 各物理スイッチ ポートの BPDU フィルタを有効にします。BPDU フレームが物理ポートに到達すると、除外されます。
      注: BPDU フィルタをグローバルに有効にしないでください。BPDU フィルタをグローバルに有効にすると、Port Fast モードが無効になり、すべての物理スイッチ ポートがすべての STP 機能セットを実行します。