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

仮想オペレーターを試す - DHCP に関する一般的な問題をすばやく特定、解決するのに役立ちます。

デバイスがネットワーク内で動作するには、IP アドレスを割り当てる必要があります。 IP アドレスは、手動または自動で割り当てることができます。 自動割り当ては、動的ホスト構成プロトコル (DHCP) サービス (Microsoft またはサード パーティのサーバー) によって処理されます。

DHCP は、RFC 1541 で定義されている標準プロトコルです (RFC 2131 に置き換えられます)。 DHCP を使うと、サーバーからクライアントに IP アドレスと構成情報を動的に配布できます。 通常、DHCP サーバーからクライアントには、少なくとも以下の基本情報が提供されます。

  • IP アドレス (IP address)
  • サブネット マスク
  • 既定のゲートウェイ
  • その他の情報 (ドメイン ネーム システム (DNS) サーバーのアドレスと Windows インターネット ネーム サービス (WINS) サーバーのアドレスなど)。 システム管理者は、クライアントに解析されるオプションを使って DHCP サーバーを構成します。

詳細については、DHCP の基本に関する記事を参照してください。

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

トラブルシューティングを開始する前に、次の項目を確認してください。 これらの項目は、問題の根本原因を見つけるのに役立ちます。

  • 問題が発生し始めた時期
  • エラー メッセージはありますか?
  • DHCP サーバーは以前に機能しましたか、それとも機能したことはありませんか? 以前に機能した場合は、問題が発生する前に何か変更しましたか? たとえば、更新プログラムをインストールしましたか? インフラストラクチャに変更が行われましたか?
  • 問題は永続的ですか、それとも断続的ですか? 断続的な場合、最後に発生したのはいつですか?
  • すべてのクライアントまたは単一範囲のサブネットなどの特定のクライアントでアドレス リース エラーが発生していますか?
  • DHCP サーバーと同じネットワーク サブネット上にクライアントはありますか?
  • クライアントが同じネットワーク サブネットに存在する場合、IP アドレスを取得できますか?
  • クライアントが同じネットワーク サブネット上に存在しない場合、DHCP リレー エージェント (IP ヘルパーとも呼ばれる) を使用するようにルーターまたは VLAN スイッチが正しく構成されていますか?
  • DHCP サーバーは、スタンドアロンですか? または分割スコープや DHCP フェールオーバーなどの高可用性を実現するように構成されていますか?
  • VRRP/HSRP などの機能、動的 ARP 検査、または問題の原因として知られている DHCP スニッピングなどについて、中間デバイスを確認してください。

DHCP サーバーのトラブルシューティング

DHCP サーバーについては、次のデバイスと設定を確認してください。

  • DHCP サーバー サービスが開始され、実行されている。 この設定を確認するには、net start コマンドを実行して DHCP サーバーを探します。
  • DHCP サーバーが承認されている。 ドメイン参加シナリオでの Windows DHCP サーバーの認可に関する記事を参照してください。
  • DHCP クライアントが属するサブネットの DHCP サーバー スコープで IP アドレス リースが使用可能であることを確認します。 これを行うには、DHCP サーバー管理コンソールで該当するスコープの統計情報を確認します。
  • BAD_ADDRESSの一覧が Address Leases セクションで見つかるかどうかを確認します。
  • ネットワーク上のデバイスに静的 IP アドレスが割り当てられ、それが DHCP スコープから除外されていないかどうかを確認します。
  • DHCP サーバーがバインドされている IP アドレスが、IP アドレスをリースする必要があるスコープのサブネット内にあることを確認します。これは、リレー エージェントを使用できない場合のためです。 これを行うには、Get-DhcpServerv4Binding または Get-DhcpServerv6Binding のコマンドレットを実行します。
  • DHCP サーバーのみが UDP ポート 67 と 68 でリッスンしていることを確認します。 他のプロセスや他のサービス (WDS や PXE など) がこれらのポートを占有しないようにします。 これを行うには、netstat -anb コマンドを実行します。
  • IPsec によってデプロイされた環境を扱っている場合は、DHCP サーバーの IPsec 免除が追加されていることを確認します。
  • DHCP サーバーからリレー エージェントの IP アドレスに ping できることを確認します。
  • 構成した DHCP ポリシーとフィルターを列挙して確認します。

DHCP クライアントのトラブルシューティング

DHCP クライアントについては、次のデバイスと設定を確認してください。

  • ケーブルが接続され、機能している。
  • クライアントが接続されているスイッチで MAC フィルター処理が有効になっている。
  • ネットワーク アダプターが有効になっている。
  • 正しいネットワーク アダプター ドライバーがインストールされ、更新されている。
  • DHCP クライアント サービスが開始され、実行されている。 これを確認するには、net start コマンドを実行して DHCP クライアントを探します。
  • クライアント コンピューター上でポート 67 と 68 UDP をブロックしているファイアウォールがない。

ネットワーク トレースを使用した DHCP のトラブルシューティング

DHCP クライアントとサーバーの両方の設定を確認したら、Wireshark を使用して、DHCP DORA プロセスが正常に完了したかどうか、またはパケットドロップによって DHCP クライアントがサーバーから IP アドレスを取得できないかどうかを確認できます。

ネットワーク トレースを収集する手順

ネットワーク トレースを使用して DHCP の問題をトラブルシューティングするには、次の手順に従います。

  1. 影響を受ける DHCP クライアントと DHCP サーバーの両方に Wireshark をインストールします。

  2. Wireshark をクライアントとサーバーの両方で管理者として実行します。

  3. Wireshark で両方のデバイスをダブルクリックして、両方のデバイスの DHCP に使用されるネットワーク インターフェイスを選択します。

  4. クライアントとサーバーの両方で Wireshark を使用してパケット キャプチャを開始します。

  5. 問題を再現します。 DHCP の問題をトリガーします (たとえば、クライアントで ipconfig /renew を実行します)。 エラー シナリオが発生するまで待ちます。

  6. Wireshark の赤いボタンを使用して、両方のデバイスでパケット キャプチャを停止します。

    Wireshark キャプチャを停止します。

  7. File>名前を付けて保存を選択して、キャプチャしたパケットを指定した場所に保存します。

  8. DHCP フィルターを適用して DHCP トランザクションを表示します。

    • クライアント キャプチャで、"dhcp" の表示フィルターを適用します。

    • サーバー キャプチャで、フィルター "dhcp.id == <Transaction ID>" を使用して、特定のクライアント トランザクションを追跡します。 クライアント側キャプチャからトランザクション ID を取得し、サーバー側キャプチャのフィルターに適用できます。

      クライアント側キャプチャからのトランザクション ID。

  9. DHCP トランザクションの分析:

    • クライアント側のキャプチャで、4 つの DHCP パケット (DISCOVER、OFFER、REQUEST、ACK) をすべて確認します。 すべてが存在する場合、DORA プロセスは成功している可能性があります。
    • パケットが見つからない場合 (たとえば、DISCOVER パケットのみが表示される)、ドロップの可能性があることを示します。
  10. ネットワークのドロップを特定します。 ネットワークドロップの次のインジケーターを探します。

    • クライアント キャプチャでは DISCOVER パケットが表示されますが、サーバー キャプチャでは表示されません。
    • クライアント キャプチャは DISCOVER パケットを示し、サーバーは送信された OFFER を示しますが、クライアントでは OFFER は表示されません。
    • クライアント キャプチャには DISCOVER、OFFER、REQUEST が表示されますが、サーバーには DISCOVER と OFFER のみが表示されます。
    • クライアント キャプチャには DISCOVER、OFFER、REQUEST が表示されますが、サーバーには 4 つのパケット (DISCOVER、OFFER、REQUEST、ACK) がすべて表示され、ACK はクライアントに表示されません。
  11. ドロップが確認されたら、ネットワーク チームに問い合わせてください。ドロップの問題を調査して解決します。

これらの手順により、Wireshark を使用した徹底的なトラブルシューティングを行い、DHCP 通信の中断箇所を特定し、DHCP 構成またはネットワークの問題をより迅速に解決できるようにします。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

データ コレクション

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_DHCPcli
      
    • サーバー:

      TSS.ps1 -Scenario NET_DHCPsrv
      
  4. トレースがサーバーまたはクライアントで初めて実行される場合は、EULA に同意します。

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

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

    Note

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

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

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

リファレンス

イベント ログ

システムと DHCP サーバーのサービス イベント ログ ([アプリケーションとサービス ログ]>[Microsoft]>[Windows]>[DHCP サーバー]) で、発生した問題に関連する問題の報告を確認します。

問題の種類に応じて、次のイベント チャネルのいずれかにイベントのログが記録されます。

DHCP サーバー ログ

DHCP サーバー サービスのデバッグ ログには、DHCP サーバーで行われる IP アドレスのリース割り当てと DNS の動的更新に関する詳細な情報が記載されています。 既定では、これらのログは %windir%\System32\Dhcp にあります。

詳細については、DHCP サーバー ログ ファイルの分析に関する記事を参照してください。