次の方法で共有


SDN のトラブルシューティング ガイダンス

このトピックは、Windows Server 2019、Windows Server 2016、および Azure Stack HCI に含まれるソフトウェアによるネットワーク制御 (SDN) テクノロジのシナリオのトラブルシューティングに役立ちます。 ほとんどのユーザーは、これらの解決策を使用して問題を解決できます。

トラブルシューティングのチェックリスト

ACL を参照している IP 構成と仮想サブネットを確認する

  1. 影響を受けている 2 つのテナント仮想マシン (VM) がホストされている両方の Hyper-V ホストで Get-ProviderAddress コマンドを実行します。 次に、Hyper-V ホストから Test-LogicalNetworkConnection または ping -c <compartment> を実行して、HNV プロバイダーの論理ネットワークで接続を確認します。
  2. Hyper-V ホストと、Hyper-V ホストの間にあるすべてのレイヤー 2 スイッチング デバイスで、MTU の設定が正しいことを確認します。 影響を受けているすべての Hyper-V ホストで Test-EncapOverheadValue を実行します。 また、ホスト間にあるすべてのレイヤー 2 スイッチの MTU が、160 バイトの最大オーバーヘッドを考慮して、最小限 1,674 バイトに設定されていることを確認します。
  3. プロバイダー アドレス (PA) が存在しないか、カスタマー アドレス (CA) の接続が断たれている場合は、ネットワーク ポリシーが受信されていることを確認してください。 Get-PACAMapping を実行して、オーバーレイ仮想ネットワークの作成に必要なカプセル化規則と CA-PA マッピングが正しく確立されているかどうかを確認します。
  4. ネットワーク コントローラーにネットワーク コントローラー ホスト エージェントが接続されていることを確認します。 これを行うには、netstat -anp tcp |findstr 6640 を実行します。
  5. HKLM レジストリ キーのホスト ID が、テナントの VM をホストしているサーバー リソースのインスタンス ID と一致していることを確認します。
  6. ポート プロファイル ID が、テナント VM の VM ネットワーク インターフェイスのインスタンス ID と一致していることを確認します。

ネットワーク コントローラーと Hyper-V ホストの間のネットワーク接続を調べる

netstat コマンドを実行して、ネットワーク コーディング (NC) ホスト エージェントとネットワーク コントローラー ノードの間に 3 つの接続が確立されていることを確認します。 また、Hyper-V ホストにリッスンしているソケットが 1 つあることを確認します。 詳細については、次の一覧を参照してください。

  • Hyper-V ホストでリッスンしている ポート TCP:6640 (NC ホスト エージェント サービス)
  • ポート 6640 の Hyper-V ホスト IP からエフェメラル ポート (ポート番号は 32000 より大) の NC ノード IP への 2 つの確立された接続
  • ネットワーク コント ローラー REST ip ポート 6640 で一時的なポートでの HYPER-V ホストの IP から 1 つに確立された接続

ホスト エージェント サービスを確認する

ネットワーク コント ローラーは、HYPER-V ホスト上の 2 つのホスト エージェント サービスと通信します。 SLB ホスト エージェントと NC ホスト エージェント。 これらのサービスの一方または両方が実行されていない可能性があります。 それらの状態を確認し、実行されていない場合は再起動します。

Get-Service SlbHostAgent
Get-Service NcHostAgent

# Start
Start-Service NcHostAgent
Start-Service SlbHostAgent

ネットワーク コント ローラーの状態を確認します。

3 つの ESTABLISHED 接続がない場合、またはネットワーク コントローラーが応答していない場合は、すべてのノードとサービス モジュールが稼働しているかどうかを確認します。

# Prints a DIFF state (status is automatically updated if state is changed) of a particular service module replica
Debug-ServiceFabricNodeStatus [-ServiceTypeName] <Service Module>

以下はネットワーク コントローラー サービス モジュールです。

  • ControllerService
  • ApiService
  • SlbManagerService
  • ServiceInsertion
  • FirewallService
  • VSwitchService
  • GatewayManager
  • FnmService
  • HelperService
  • UpdateService

ReplicaStatusReady で、HealthStateOK であることを確認します。 マルチノード ネットワーク コントローラーを使用する運用デプロイでは、各サービスのプライマリがオンになっているノードを確認し、サービスの個々のレプリカの状態を調べることもできます。

Get-NetworkControllerReplica

各サービスの [レプリカの状態][準備完了] であることを確認します。

HNV プロバイダー論理ネットワークで MTU とジャンボ フレームのサポートを確認する

HNV プロバイダーの論理ネットワークにおけるもう 1 つの一般的な問題は、物理ネットワーク ポートまたはイーサネット カードで、VXLAN (または NVGRE) のカプセル化によるオーバーヘッドを処理するのに十分な大きさの MTU が構成されていないことです。

テナント VM のネットワーク アダプターの接続を調べる

ゲスト VM に割り当てられている各 VM ネットワーク アダプターには、プライベート カスタマー アドレス (CA) と HNV プロバイダー アドレス (PA) 空間の間の CA-PA マッピングがあります。 これらのマッピングは、各 Hyper-V ホスト上の OVSDB サーバーのテーブルに保持されています。 次のコマンドレットを実行することによって、それらを検出できます。

# Get all known PA-CA Mappings from this particular Hyper-V Host
Get-PACAMapping

構成の状態に基づく一般的なエラーと解決策

エラー コード: HostUnreachable

エラー メッセージ:

MUX に問題があります (一般的なケースは切断 BGPRouter)

このエラーは、ルーティングおよびリモート アクセス サービス (RRAS) (BGP VM) または Top-of-Rack (ToR) スイッチの Credible Border Gateway Protocol (CBGP) ピアに到達できないか、ピアリングに成功していないために発生します。 ソフトウェア ロード バランサー マルチプレクサー リソースと BGP ピア (ToR または RRAS VM) の両方で、BGP の設定を調べます。

エラー コード: CertificateNotTrusted と CertificateNotAuthorized

エラー メッセージ:

ネットワークまたは証明書のエラーにより Mux に接続できませんでした。

この問題をトラブルシューティングするには、エラー メッセージ コードに記載されている数値コードを確認してください。 これは、Winsock のエラー コードに対応しています。 証明書エラーは細かく表示されます。 たとえば、証明書を検証できない場合や、証明書が承認されていない場合などです。

エラー コード: HostNotConnectedToController

エラー メッセージ:

SLB ホスト エージェントが接続されていません。

この問題をトラブルシューティングするには、次の手順に従います。

  1. ソフトウェア ロード バランサー (SLB) のホスト エージェント サービスが実行されていることを確認します。
  2. 原因については、SLB ホスト エージェントのログ (自動実行) を参照してください。 ホスト エージェントによって提示された証明書がソフトウェア ロード バランサー マネージャー (SLBM) (NC) によって拒否された場合、実行状態に詳細な情報が表示されることがあります。

エラー コード: DistributedRouterConfigurationFailure

エラー メッセージ:

ホスト vNic の分散ルーター設定を構成できませんでした。

このエラーは TCP/IP スタック エラーです。 このエラーが報告されたサーバー上のピア認証 (PA) および宛先ルール (DR) のホスト仮想ネットワーク インターフェイス カード (VNIC) のクリーンアップが必要な場合があります。

エラー コード: PolicyConfigurationFailure

エラー メッセージ:

  • 証明書のエラーまたは接続エラーのため、仮想マシン ネットワーク インターフェイス カード (VmNic) の vSwitch ポリシーをプッシュできませんでした

  • 証明書のエラーまたは接続エラーのため VmNic のファイアウォール ポリシーをプッシュできませんでした。

  • 証明書のエラーまたは接続エラーのため、VmNic の仮想ネットワーク (VNet) ポリシーをプッシュできませんでした

この問題をトラブルシューティングするには、適切な証明書がデプロイされているかどうかを確認します。 証明書のサブジェクト名は、ホストの FQDN と一致する必要があります。 また、ホストとネットワーク コントローラーの接続を確認します。

データ収集

Microsoft サポートに問い合わせる前に、問題に関する情報を収集できます。

前提条件

  1. TSS は、ローカル システムの管理者特権を持つアカウントで実行する必要があり、EULA を受け入れる必要があります (EULA が承認されると、TSS は再度プロンプトを表示しません)。
  2. PowerShell 実行ポリシー RemoteSigned ローカル コンピューターをお勧めします。

Note

現在の PowerShell 実行ポリシーで TSS の実行が許可されていない場合は、次のアクションを実行します。

  • コマンドレット PS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSignedを実行して、プロセス レベルのRemoteSigned実行ポリシーを設定します。
  • 変更が有効かどうかを確認するには、コマンドレット PS C:\> Get-ExecutionPolicy -Listを実行します。
  • プロセス レベルのアクセス許可は現在の PowerShell セッションにのみ適用されるため、TSS を実行する特定の PowerShell ウィンドウが閉じられると、プロセス レベルに割り当てられたアクセス許可も以前に構成された状態に戻ります。

Microsoft サポートに連絡する前に重要な情報を収集する

  1. すべてのノードで TSS をダウンロードし、 C:\tss フォルダーに解凍します。

  2. 管理者特権の PowerShell コマンド プロンプトから C:\tss フォルダーを開きます。

  3. 次のコマンドレットを使用してトレースを開始します。

    TSS.ps1 -Scenario NET_SdnNC
    
  4. トレースがコンピューターで初めて実行される場合は、EULA に同意します。

  5. 記録を許可する (PSR またはビデオ)。

  6. Yに入る前に問題を再現してください。

    Note

    クライアントとサーバーの両方でログを収集する場合は、両方のノードでこのメッセージを待ってから問題を再現してください。

  7. Y を入力して、問題の再現後にログ収集を完了します。

トレースは、 C:\MS_DATA フォルダー内の zip ファイルに格納されます。これは、分析のためにワークスペースにアップロードできます。

リファレンス