パソコンやスマートフォンがネットワークへ接続した際、自動的にIPアドレスを取得できるのはDHCPという仕組みが動作しているためです。しかし、接続直後にどのような通信が行われ、どのタイミングでIPアドレスやデフォルトゲートウェイなどの情報が設定されるのかは、ネットワークを学習するうえで重要なポイントになります。
この記事では、DHCPクライアントがネットワークへ接続してから必要な情報を取得するまでの流れを、DHCP Discover、Offer、Request、ACKという4つの通信手順を中心に詳しく解説します。
DHCPとは何か
DHCP(Dynamic Host Configuration Protocol)は、ネットワークに接続する端末へIPアドレスなどの設定情報を自動的に配布するためのプロトコルです。
通常、ネットワークへ接続するにはIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーなどの情報が必要です。DHCPを利用すると、管理者が1台ずつ手動設定する必要がなくなります。
例えば、会社のオフィスに新しいパソコンを接続した場合、利用者がIPアドレスを入力しなくてもインターネットへ接続できるのは、DHCPサーバーが必要な情報を自動配布しているためです。
DHCP通信が開始されるまでの状態
DHCPクライアントは、ネットワークへ接続した直後、自分自身のIPアドレスをまだ持っていません。そのため、通常のIP通信で利用する宛先指定はできません。
そこでDHCPでは、クライアントがブロードキャスト通信を利用してDHCPサーバーを探します。ブロードキャストとは、同じネットワーク内のすべての端末へ向けて送信する通信方法です。
この時点では、クライアントのIPアドレスは「0.0.0.0」として扱われ、宛先には「255.255.255.255」が使用されます。
DHCPの4つの通信手順(DORAプロセス)
DHCPによるIPアドレス取得の流れは、一般的にDORA(Discover、Offer、Request、ACK)と呼ばれる4段階の通信で行われます。
1. DHCP Discover(クライアントがサーバーを探す)
最初にDHCPクライアントは、ネットワーク上に存在するDHCPサーバーを探すためにDHCP Discoverメッセージを送信します。
この通信はブロードキャストで送信されるため、同じネットワーク内に存在するすべてのDHCPサーバーが受信できます。
例として、新しいノートパソコンをWi-Fiへ接続した瞬間に「IPアドレスをください」とネットワーク全体へ問い合わせを送っている状態です。
2. DHCP Offer(サーバーがIPアドレスを提案する)
DHCPサーバーはDiscoverを受信すると、利用可能なIPアドレスを選択し、DHCP Offerメッセージをクライアントへ送信します。
Offerには、割り当て予定のIPアドレス、サブネットマスク、リース期間などの情報が含まれています。
例えばDHCPサーバーが「192.168.1.50を使用できます」と端末へ提案するような通信です。
3. DHCP Request(クライアントが利用を要求する)
複数のDHCPサーバーが存在する場合、クライアントは受け取ったOfferの中から利用するものを選択します。
そしてDHCP Requestメッセージをブロードキャストで送信し、選択したDHCPサーバーへIPアドレスの割り当てを正式に要求します。
この通信によって、他のDHCPサーバーには「今回は選択されなかった」ということも通知されます。
4. DHCP ACK(サーバーが正式に承認する)
最後にDHCPサーバーはDHCP ACKメッセージを送信します。これにより、クライアントは通知されたIPアドレスを正式に利用できるようになります。
ACKにはIPアドレスだけでなく、サブネットマスク、デフォルトゲートウェイ、DNSサーバー、リース時間などの設定情報が含まれます。
この通信が完了すると、パソコンは通常のネットワーク通信を開始できます。
DHCP通信で利用されるポート番号
DHCPはUDPを利用して通信します。使用されるポート番号は以下の通りです。
| 通信 | ポート番号 |
|---|---|
| DHCPクライアント | UDP 68番 |
| DHCPサーバー | UDP 67番 |
クライアントはまだIPアドレスを持っていないため、最初の通信ではUDPとブロードキャストを利用してDHCPサーバーと通信します。
DHCPリース更新時の通信
DHCPで取得したIPアドレスは永久的に使用できるわけではなく、リース期間が設定されています。
リース期間が近づくと、クライアントはDHCP Requestを送信して利用中のIPアドレスを継続利用できるように更新を行います。
例えば家庭のWi-Fiに接続したスマートフォンも、一定期間ごとにDHCPによる更新処理を行っています。
DHCPで問題が発生した場合の確認ポイント
DHCPによるIPアドレス取得に失敗すると、「ネットワークに接続できない」「169.254.x.xのIPアドレスになる」といった症状が発生します。
原因としては、DHCPサーバー停止、ネットワークケーブルやWi-Fi接続の問題、DHCP範囲のIPアドレス枯渇などが考えられます。
トラブル調査では、DHCP Discoverが送信されているか、DHCP Offerが返ってきているかをパケットキャプチャなどで確認すると原因を特定しやすくなります。
まとめ
DHCPでは、クライアントがネットワークへ接続すると、まずDHCP Discoverでサーバーを探し、DHCP OfferでIPアドレスの提案を受け取ります。
その後、DHCP Requestで利用を要求し、DHCP ACKによって正式にIPアドレスやネットワーク設定情報が割り当てられるという流れになります。
この4段階のDORAプロセスを理解すると、ネットワーク接続時の仕組みやDHCPトラブルの原因調査にも役立ちます。


コメント