PowerEdge:QLogic FastLinQ 45XXXおよび41XXXアダプターのNPARの制限事項
概要: この記事では、QLogic FastLinQ 45XXXおよび41XXXアダプターでネットワーク パーティショニング(NPAR)を構成する際の重要な考慮事項について説明します。
手順
背景
ネットワーク パーティション(NPAR)モードでは、QLogic FastLinQ 45XXX/41XXXアダプターが複数のEthernetデバイスとしてOSに表示されます。これは、物理ポートで複数のネットワーク インターフェイス カード(NIC)パーティションを有効にすることで可能になりますが、ユニキャスト*トラフィックの送信元と宛先が同じホストに存在する場合は、ブロードキャスト ドメイン*を慎重に設計する必要があります。
同じ物理ポート上の 2 つのパーティション間の通信を可能にするために、アダプターは Tx スイッチングと呼ばれる機能を提供します。この機能の目的は、ソースとデスティネーション間のルーティングに依存するのではなく、2つの論理パーティション間でトラフィックを内部的に転送することです。Txスイッチングは、NICパーティションに設定されたMACフィルタリング ルールに基づいて行われます。OSは、レイヤー2(MacからMacまたはBUMトラフィック*)データパスをプログラムします。ESXi環境では、NetworkIoChainがトラフィックを管理し、より正確には(トラフィックが仮想スイッチを離れるとき)MACアドレスのソースと宛先に基づいて特定のアップリンクへのデータパスを作成する「ロード バランシング」チーミング エンジンを管理します
この動作により、TxスイッチングがNetworkIochainのデータパスに記録されていないチーム内のアップリンクにパケットを転送するため、パケットがドロップされます*。
ユニキャスト トラフィック* = スイッチ上の MAC アドレス テーブルの観点から見た既知の MAC 送信元と既知の MAC 宛先(仮想または物理)
ブロードキャスト ドメイン* = 仮想スイッチ、物理スイッチ、VLAN、およびサブネットはすべてブロードキャスト ドメイン(レイヤ 2)の一部です
BUM* = ブロードキャスト、不明なユニキャスト、マルチキャスト、トラフィック。仮想スイッチを離れる必要があるレイヤー2トラフィック。NetworkIOChain* = https://blogs.vmware.com/vsphere/2018/12/understanding-the-esxi-network-iochain.html
1.同じポートのパーティションを使用しながら、同じホスト上の2つの仮想マシン(VM)間で通信する(「図1」を参照)
図 1 に示すように、この設定には VM1(ユニキャスト MAC M1)と VM2(ユニキャスト MAC M2)の 2 つの VM があります。VM1は仮想スイッチVS1の背後にあり、VM2はVS2の背後に配置されています。VS1にはアップリンクとしてPF0があり、VS2にはアップリンクとしてPF2とPF1があります。PF0 と PF2 は QLogic FastLinQ 41XXX/45XXX アダプターのポート 1 の 2 つの区画であり、PF1 はポート 2 の区画です。VS2 PF1はチーム内のアクティブ インターフェイスで、PF2はパッシブ(スタンバイ)インターフェイスです。NetworkIOChainは、P0でMAC M1のデータパスを作成し、PF1およびPF2でM2のIoChainをプログラムします。トラフィック フローは VS1 と VS2 の観点からは不明なユニキャストと見なされるため (VS1 は自身の VM の MAC アドレスしか認識しておらず、VS2 にも同じことが当てはまる)、NetworkIOchain はそのトラフィックに BUM としてフラグを立て、アップリンク ポート PF0 を VM1 に、PF1 を VM2 に使用するデータパスを記録します
VMkernel は P0 で MAC M1 のフィルタをプログラムし、PF1 と PF2 で M2 の MAC フィルタをプログラムします。VMkernel が PF1 と PF2 の両方で M2 の MAC フィルターをプログラムしているため、NPAR Tx スイッチング トラフィックは VM1(送信元 MAC M1)から発信され、VM2(宛先 MAC M2)宛てのトラフィックは常に PF2 を介してループバックします。PF2 で MAC フィルターが一致したため、トラフィックはネットワークに送信されません。ただし、PF2に到着するトラフィックは、予想されるVMの仮想NICに到達するための一致ルールのない内部ポートに向かうため、vSwitchによって破棄されます。
考えられる解決策:
I)別のアダプターを使用します。このような構成作業を行うには、チーム内で物理的に分離された2つのネットワーク アダプターのポートを使用する必要があります。また、ネットワーク パスに同じ物理ポートからの2つのPFが含まれていないことも確認する必要があります。「図2」を参照してください
II)外部ルーティングとともにNPAR Txスイッチングを無効にします。上記の問題は、NPAR Txスイッチングを無効にすることで対処できます。ただし、NPAR Tx スイッチングを無効にするだけでは、トラフィックを同じポート上の論理区画にルーティングする必要がある場合があるため、問題が完全に解決されるわけではありません。NPAR Txスイッチングが無効になっている場合は、外部ルーティングが必要です。「図3」は、このフローを詳しく説明しています。NPAR Txスイッチングを無効にした場合の制限事項については、以下の問題#4も参照してください
III)TXスイッチングパラメータを無効にする方法:
NPAR Txスイッチングを無効にする必要がある場合は、モジュールパラメータを設定することでこれを行うことができます npar_tx_switching を 0.
に変更ESXiの例:
[root@esxi03:~] esxcfg-module -s 'npar_tx_switching=0' qedentv
2.チーム内の同じ物理ポートからの 2 つの PF の使用
この構成は、回復性やパフォーマンスを提供しないため、推奨されません。物理ポート上のリンクがダウンすると、そのポート上の両方のPFが影響を受けます。したがって、この構成は役に立たないため、推奨されません。
3.LACPなどのスイッチ依存チーミング モード
IEEE 802.3adリンク アグリゲーション(LACP)などのスイッチ依存チーミング モードは、PCI機能(別名物理機能)やPFレベルの単位ではなく、ポート単位で動作します。したがって、NPARが有効になっている場合、一部のパーティション(PF0とPF1など)でLACPを構成し、残りのパーティションを他の目的に使用することは推奨されません。LACPステート マシンはホストとスイッチで実行され、アグリゲートの状態を判断します。LAGの一部ではないその他のパーティションは、ステート マシンの変更やLAGに関する決定を認識しません。スイッチで設定されたロード バランシング ポリシーは、スイッチから送信されるすべてのフローに適用されます。スイッチはNPAR設定を認識しないため、LAGの一部ではない他のPFに属するトラフィックは、LAGの一部であるパーティションを対象とした設定の対象となります。これにより、パケットが誤ったPFに転送されたり、LACPステートマシンの動作によるトラフィックへの予期しない影響が発生したりするなどの副作用が発生する可能性があります。発生する可能性のある動作の一部は、スイッチ側でのLACPの実装によって異なりますが、一般的には望ましくない副作用が発生する可能性があることに注意してください。
4.ブリッジングまたは L2VPN を使用して、レイヤー 2 イーサネット フレーム QnQ または vlan を vni などに変更します (NSX などの NFV ソリューション)
これがループに繋がります。トラフィックをブリッジする予定の場合は、NPAR が無効になっていることを確認します。そうしないと、トラフィックフローが NetworkIOChainとなります。