次の方法で共有


LAN のテストの前提条件

このセクションでは、Windows Hardware Lab Kit (Windows HLK) を使用してネットワーク アダプターをテストする前に完了する必要がある LAN (Ethernet) テストの前提条件について説明します。

Note

この内容は、スタンドアロン ネットワーク アダプターと統合ネットワーク デバイスの両方に適用されます。

ドキュメントの用語

デバイス ロール インターフェイスのエイリアス

テスト コンピューター、テスト ターゲット (DUT)

名前は必要ありません。HLK ジョブによって自動的に選択されます

テスト コンピューター、メッセージ デバイス

MessageDevice

サポート コンピューター、サポート デバイス

SupportDevice0

サポート コンピューター、メッセージ デバイス

MessageDevice

LWF ドライバー

NDIS ライト ウェイト フィルター ドライバー

コンピューターのトポロジ

次の図は、推奨されるコンピューターのトポロジを示しています。 これとは異なるトポロジは、テストを正しく実行するために余分な作業が必要になる可能性があるため、お勧めできません。

lan マシン トポロジ

これは、すべての LAN デバイス (QoS および Chimney をサポートするデバイスを含む) に適用されるトポロジです。

ネットワーク アダプター テストのコンピューター トポロジ

タイトルに「Network Adapter」または「テストの名前」がプレフィックスとして付けられている最近開発された HLK テストは単一のコンピューター テストであり、そのコンピューター上に 3 つのネットワーク アダプターが必要です。 インターフェイスのエイリアス名は次のとおりです。

  1. TestDevice: テスト対象のネットワーク デバイスです。
  2. SupportDevice0: TestDevice とバックツーバックで接続された、必要な追加のサポート ネットワーク カードです。
  3. MessageDevice: HLK コントローラーと通信するために使用されます。

次の図は、推奨されるトポロジを示しています。

lan_machine_topology_NetworkAdapter テスト

テスト接続

多くの場合、バックツーバック接続が推奨されますが、これはスイッチがテストに干渉する可能性がなくなるためです (VLAN 構成の誤り、フロー制御パケットなど)。

ネットワーク スイッチが結果に干渉する可能性があるテストでは、バックツーバック接続が必要です。 そのようなテストには、以下のようなものがあります。

  • QoS (別名: QoS)DCB) (優先度フロー制御、LLDP/DCBX 相互運用機能、ETS (一部のスイッチでは 802.1p タグがストリップされる可能性があるため)

  • Tx フロー制御

  • 802.1q タグを送信するテスト (VlanSendRecv、VMQ、1c_priority など)

バックチャネル/企業ネットワーク

バックチャネル スイッチは、テスト コンピューターが HLK コントローラーとの通信に使用するのと同じネットワークにすることをお勧めします。 このネットワークの DHCP を有効にすることをお勧めします。

コンピューターの要件

コンピューターの要件は、多くの場合、テスト対象がサポートする機能によって決まります。 クライアント SKU での認証には 2 つの処理コアが必要ですが、サーバー SKU での認証には 4 つの処理コアが必要です。

Note

コアという用語は、物理処理コア (仮想またはハイパー スレッド コアではない) を指します。 デバイスで以下のような高度な機能がサポートされている場合は、最小システム要件が増加する可能性があります。

  • Wake on LAN: システムが電源管理 (S3) をサポートしている必要があります。

  • RSS: 最大 4 つの物理コアまたはデバイスでサポートされる RSS キューの既定の数のいずれか

    • 例: 1G NIC で 2 つのキューがサポートされている場合、必要なコアの数は 4 になります

    • 例: 10G NIC で 8 つのキューがサポートされている場合、必要なコアの数は 8 になります

  • サーバー/QoS: システムは、最大リンク率の 90% を満たせる必要があります

  • QoS: ストレージ ターゲットは、最大リンク率の 20% で書き込みます

Note

送信/受信パケット損失の問題が頻繁に発生し、テスト全体で発生する場合は、セレクティブ サスペンドの問題ではありません。

Note

サーバーで使用する製品の認定を受けるには、テスト コンピューターが 4 つのプロセッサと 1 GB 以上の RAM をサポートしている必要があります。 これらのシステム機能は、デバイスとドライバーの再調整、D3 状態、および複数のプロセッサ グループの機能をテストするために必要です。 実際に 64 個以上のプロセッサを搭載したコンピューターでなくても、デバイスをテストすることは可能です。 また、デバイスまたはドライバーのテストに使用されるサーバー システムには、テストの前に Server Core がインストールされている必要があります。 詳細については、Windows Server のインストール オプションに関するページを参照してください。

テスト コンピューターのプールを使用してデバイスをテストする場合、プール内の少なくとも 1 台のコンピューターに 4 つのプロセッサと 1 GB 以上の RAM が搭載されている必要があります。 さらに、そのコンピューターには、テスト対象のデバイスとドライバーが含まれている必要があります。 ドライバーがプール内のすべてのコンピューターで同じである場合、システムは、すべてのテスト コンピューターに対して実行するスケジュールを作成します。

ハード ディスク ドライブのテストなど、ドライバーが含まれないテストの場合、Windows HLK スケジューラは、デバイスとドライバーの再調整、D3 状態、および複数プロセッサ グループの機能を検証するテストを、既定のテスト コンピューターでのみ実行されるように制限します。 このコンピューターが複数のプロセッサ グループを持つように手動で構成する必要があります。 既定のコンピューターは、一覧の最初のテスト コンピューターです。 テスト担当者は、一覧の最初のテスト コンピューターがハードウェアの最小要件を満たしていることを確認する必要があります。

Note

(WHCP ポリシーとプロセスに関するドキュメントで定義されている) 準仮想化ドライバーを除き、物理デバイスと関連するドライバーでサーバーの認定または署名をテストするときは、いかなる形式の仮想化も使用できません。 いずれの仮想化製品でも、複数のプロセッサ グループ、デバイス電源管理、デバイス PCI 機能、およびその他のテストに関連するテストに成功するために必要となる基本機能はサポートされていません。

Note

  複数プロセッサ グループの設定には、Windows Server 2008 R2 以降の認定用デバイス ドライバーの Hardware Lab Kit テストに使用するプロセッサ グループのサイズの値を設定する必要があります。 この場合、管理者特権のコマンド プロンプト ウィンドウで、「/set」オプションを使用して bcdedit を実行します。

グループ設定を追加して再起動するためのコマンドは次のとおりです。

bcdedit.exe /set groupsize 2
bcdedit.exe /set groupaware on
shutdown.exe -r -t 0 -f

グループ設定を削除して再起動するためのコマンドは次のとおりです。

bcdedit.exe /deletevalue groupsize
bcdedit.exe /deletevalue groupaware
shutdown.exe -r -t 0 -f

Note

コードの整合性設定

まずサーバー マネージャーを使用して Windows Server 2016 の仮想化ベースのセキュリティ機能 (VBS) を有効にする必要があります。

その後、次のレジストリ キーを作成して設定する必要があります。

HKLM\System\CurrentControlSet\Control\DeviceGuard
HypervisorEnforcedCodeIntegrity:REG_DWORD
0 or 1 (disabled, enabled)

コンピューターの構成

テストによっては、テスト ジョブによって自動的に処理されない、または自動的に処理できない固有の構成が必要になる場合があります。 次の一覧に、固有の構成が必要になるテストの概要を示します。

QosStorageInterop

DUT マシン上のテスト ターゲットは、iSCSI または SMB を使用してネットワーク ベースの記憶域に接続できる必要があります。 テスト コンピューターのトポロジは、テスト ネットワークがバックツーバックであることを意味します。これは、サポート コンピューターもストレージ ターゲットとして機能する必要があることを意味します。 つまり、SUT でソフトウェア iSCSI ターゲットを構成するか、SMB 共有を共有する必要があります。DUT マシンは記憶域ターゲットをドライブ文字にマップする必要があり、ユーザーはこの接続がバックチャネル ネットワークではなくテスト ネットワーク経由で送信されるようにする必要があります。 構成が完了したら、スケジュールされた時刻にこのジョブに 2 つの追加パラメーターを入力する必要があります。

  • ドライブ文字

  • Storage モード (iSCSI または ND (ネットワーク ダイレクト))

セレクティブ サスペンド

NDIS のセレクティブ サスペンド機能は、テスト結果に悪影響を及ぼす可能性があります。 ネットワーク認定テストの多くは、デバイスが電源オンで、すぐに使える状態であることを前提としています。 そのため、多くのテストでは、トラフィックを迅速に送信または受信し、すべてのパケットが適切に送受信されることが想定されています。 デバイスが低電力になっている場合 (セレクティブ サスペンド)、デバイスが再開されるまでにしばらく時間がかかることがあります。これにより、再開期間中にパケット損失が発生する可能性があります。

次の条件に該当する場合は、*SelectiveSuspend を無効にする (NDIS ドライバーの場合)、または *IdleRestriction を有効にする (NetAdapterCx 2.2+ ドライバーの場合) ことをお勧めします (注: 既定値は変更しないでください。認定テストの実行中に操作値のみを変更してください)。

  • お客様が、セレクティブ サスペンド対応デバイスを持っている

  • 送信/受信テストでパケット損失の問題が発生している

  • 送信/受信テストのパケット損失の問題は、特定のテストの最初のバリエーションでのみ発生する

または、ミニポートの Device Manager プロパティの [電源管理] タブで、[電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする] をオフにすることもできます。

ハードウェア QOS テスト

「HW QoS*」テストでは、使用可能な VF vPorts を使用して SR-IOV をアクティブにする必要があります。 ハードウェアによっては、SR-IOV を有効にし、VF vPort 可用性を提供するために、ネットワーク アダプター用に Hyper-v をインストールする必要があります。 そのため、「ハードウェア QoS」テストを実行する前に、Hyper-V をインストールすることをお勧めします。

ネットワーク デバイス選択の変更点の概要

LAN デバイスのテストでは、UI を使用してメッセージとサポート アダプターは選択されなくなりました。それらは、ネットワーク トポロジに基づいて自動的に検出されます。 ネットワーク トポロジが推奨トポロジと異なるため、自動検出に失敗した場合は、テストを実行する前に、テスト コンピューターとサポート コンピューターでデバイスの名前を変更する必要があります。 この変更した名前がデバイスの「ifAlias」になり、さまざまな場所で、特に [ネットワーク接続] ウィンドウで表示されます。

名前変更が必要な場合、サポート コンピューター上のサポート デバイスは名前を「SupportDevice0」に変更する必要があります。 テスト コンピューターとサポート コンピューターの両方で、メッセージ デバイスの名前を「MessageDevice」に変更する必要があります。

[ネットワーク接続] ダイアログ ボックス

デバイスの自動選択条件

テスト コンピューターとサポート コンピューターは図 4 と同じ構成で設定する必要があります。また、テストに関係しない他のすべてのイーサネット デバイス/ポートは切断または無効化する必要があります。 テスト ジョブでは、次の条件を使用してメッセージ デバイスを検索します。イーサネット デバイス、リンク接続済み、有効、TCP バインド、DHCP を使用して割り当てられた IP アドレス。 DHCP 割り当てアドレスを持つアダプターが見つからない場合、検出には静的 IP アドレスを持つアダプターが含まれます。 メッセージ アダプターは通常、HLK コントローラーと、標準の企業ネットワークに接続されています。 ジョブでは、メッセージ デバイスが見つかると、イーサネット デバイスであり、リンクで接続され、有効であるサポート デバイスを残りのアダプターから探します。

バックツーバック接続

HLK での LAN テストの実行

コントローラーとクライアント コンピューターの設定については、HLK のヘルプを参照してください。このドキュメントでは、HLK での LAN コンテンツの実行のみを扱います。

コントローラー マシンとクライアント マシンがセットアップされた後、LAN テストを実行するには、次の手順に従います。

  1. HLK Studio でプロジェクトを作成します。

  2. 新しいマシン プールを作成し、セットアップされたクライアント マシンを新しく作成したプールに追加し、マシンの状態を準備完了としてマークします。

  3. 前の「デバイス選択条件」セクションで説明したように、テスト コンピューターとサポート コンピューターが接続されていることを確認します。

  4. HLK Studio の [選択] タブで、テストするデバイス/ドライバー (デバイス マネージャーソフトウェア デバイスなど) のみを選択します。

  5. HLK Studio の [テスト] タブのリストに表示されているジョブを選択します。

  6. [選択対象を実行] をクリックし、テスト実行のサポート コンピューターを選択して、[OK] をクリックします。

フィルター ロゴ テストの実行

軽量フィルター (LWF) ロゴ テストを実行するには、次の手順を使用します。

  1. DTM サーバーと DTM クライアント コンピューターをセットアップ/構成します。 フィルター ロゴ テストには、1 つのクライアント コンピューターが必要です。

  2. クライアント コンピューターに LWF ドライバーをインストールします。

  3. クライアント コンピューターを再起動します。

  4. DTM サーバーから、LWF がインストールされているクライアントを新しいマシン プールに追加し、マシンの状態を「準備完了」に変更します。

  5. HLK Studio で、[プロジェクト] タブの下に新しいプロジェクトを作成します。

  6. HLK Studio の [選択] タブで、前の手順で作成したコンピューター プールをドロップダウンから選択します。

  7. [ソフトウェア デバイス] をクリックし、テストするインストール済み LWF ドライバーを選択します。

    lwf ロゴ テスト

  8. LWF ドライバーに対して [テスト] タブに一覧表示されているすべてのテスト (「NDISTest 6.5 - LWF ロゴ テスト」ですべての LWF 要件が確認されます) を実行します。

NDISTest 6.5 - LWF ロゴ テスト

このテストは、フィルターがミニポートの MTU サイズよりも大きいパケットを処理できるようにすることで LWF を対象にします。

また、フィルター ストレス テストを実行して、NDIS フィルター ドライバーのデータパスと PNP パスにストレスを適用します。  このテストでは、受信リソース フラグで多数の受信指示が発生する、テスト仮想ミニポート受信記述子が制限されます。  テストでは、次のアクションがマルチスレッドで実行されます。

  • テスト ミニポートに向けられたサポート ミニポートからのストレス トラフィック。

  • サポート ミニポートに向けられたテスト ミニポートからのストレス トラフィック

  • テスト ミニポートを停止または開始します (一時停止および後続の再起動操作がトリガーされます)。

  • メディアが切断または接続されていることを示すテスト アダプター。

  • アダプターのリセットをテストします。

    最後に、基本的な送受信接続がテスト/サポート アダプター間でテストされます。

NdkPerfLogoTests

このテストにより、RDMA トラフィックを DUT とサポート コンピューター間で送信および受信できます。 このテストでは、DUT とサポート コンピューターの両方で RDMA トラフィックに対してネットワーク インターフェイスが有効である必要があります。

このテストは、DUT とサポート コンピューターの両方で NdkPerfCmd.exe を実行します。 これにより、NDK API を呼び出して DUT からサポート コンピューターに RDMA トラフィックを送信するドライバー ndkperf.sys が読み込まれます。

パラメーター:

パラメーター 説明

ClientIf

DUT 上の RDMA 対応 NIC のインターフェイス ID。 ID を取得するには、Get-NetAdapter を使用します

ClientAddr

DUT 上の RDMA 対応 NIC の IP アドレス。 IP アドレスを取得するには、ipconfig または Get-NetIpAddress を使用します

SupportIf

サポート コンピューター上の RDMA 対応 NIC のインターフェイス ID。 ID を取得するには、Get-NetAdapter を使用します

SupportAddr

サポート コンピューター上の RDMA 対応 NIC の IP アドレス。 IP アドレスを取得するには、ipconfig または Get-NetIpAddress を使用します

調査の失敗に関するヒント:

  • 両方の NIC で RDMA が有効になっていることを確認します (Get-NetAdapterRdma)

  • RDMA トラフィックを送信するときに RDMA アクティビティのパフォーマンス カウンターが増加していることを確認します

  • DUT/サポート コンピューターで NdkPerfCmd.exe を手動で実行してみてください。 失敗した場合は、パラメーターまたはネットワーク ドライバーの NDK API の機能に問題がある可能性があります。

Device.Network テスト