ssecutils
Network / Browser-native guide

DHCP の仕組み

Discover / Offer / Request / Ack の流れ、リース、DHCPリレー、トラブルシュートを説明します。

6Zero tracking reading surface

「IP アドレス、誰が決めてるの?」

家の Wi-Fi につなぐと自動で IP アドレスが割り振られ、ネットができます。会社のオフィスでも同じです。誰も手動で IP を入力していないのに、なぜ動くのでしょうか?

この陰の立役者が DHCP(Dynamic Host Configuration Protocol)です。地味ですが、なくなった瞬間に LAN 全体が機能しなくなるくらい重要な仕組みです。

DHCP は「IP アドレスの配布係」

DHCP サーバーは LAN 内に必ず 1 台(家庭ならルーターが兼任)あり、新しいデバイスがネットワークに参加するときに IP アドレスとその他の設定を自動的に渡します。

渡される情報は IP アドレスだけではありません:

  • IP アドレス(例: 192.168.1.10)
  • サブネットマスク(例: 255.255.255.0)
  • デフォルトゲートウェイ(ルーターの IP、例: 192.168.1.1)
  • DNS サーバーアドレス(例: 1.1.1.1)
  • リース期間(このアドレスを使ってよい時間)

DORA: 4ステップの IP 取得

DHCP の中核は DORA(ドラ) と呼ばれる4ステップの会話です:

PC(新規参加)                          DHCP サーバー
   |                                          |
   |  ① Discover(誰かいませんか〜?)         |
   |  ──────ブロードキャスト─────────────→  |
   |                                          |
   |  ② Offer(こちらの IP どうですか?)     |
   |  ←─────ブロードキャスト or ユニキャスト─ |
   |                                          |
   |  ③ Request(その IP もらいます!)       |
   |  ──────ブロードキャスト─────────────→  |
   |                                          |
   |  ④ Ack(OK、確定です)                   |
   |  ←─────ユニキャスト─────────────────  |
   |                                          |
   ↓ IP 取得完了、通信開始

各ステップの詳細

  1. DHCP Discover: PC が起動直後、まだ IP を持っていない状態で「誰か助けて」とブロードキャストする。送信元は 0.0.0.0、宛先は 255.255.255.255
  2. DHCP Offer: DHCP サーバーが「192.168.1.10 を使ってください、リース期間は 24 時間です、ゲートウェイは...」と提案。複数の DHCP サーバーがいると複数 Offer が来る
  3. DHCP Request: クライアントは届いた Offer の中から1つを選び、「これを正式にもらいます」と公式リクエスト。他のサーバーには「あなたのは要りません」となる
  4. DHCP Ack: サーバーが「確定」と返事。クライアントはここでようやく IP を使い始める

リース期間とリリース

DHCP で取得した IP には有効期限(リース期間)があります。家庭用だと数時間〜1日が一般的。期限が来る前に更新(renew)リクエストを送り、サーバーが OK すればリースが延長されます。

  • リース期間が短い(例: 1 時間): ネットワーク参加・離脱が頻繁な環境(カフェ・空港)向け
  • リース期間が長い(例: 7 日): オフィス内の固定 PC 向け、サーバー負荷軽減

PC をシャットダウンするときに dhclient -r 等で明示的にリースを解放するとサーバーは即座にそのアドレスを再利用できますが、多くの環境では明示解放せずリース期間で管理しています。

DHCP リレー: 複数サブネット対応

DHCP Discover はブロードキャストなので、原則同じ LAN 内にしか届きません。複数サブネットがある企業ネットワークでは、各サブネットに DHCP サーバーを置くと運用が大変です。

そこで DHCP リレーエージェントが登場。各ルーターが DHCP Discover を中央の DHCP サーバーへ「中継」してくれる仕組みです。

静的割当 vs 動的割当

プリンタやサーバー等、IP が変わると困る機器は固定 IP を使いたいものです。選択肢:

  1. 機器側で静的設定: OS で「IP は 192.168.1.50」と手動入力
  2. DHCP の予約(推奨): DHCP サーバー側で「この MAC アドレスにはいつも 192.168.1.50 を渡す」と予約

2 の方が一元管理しやすく、ルーター設定で完結するため運用上推奨されます。

セキュリティ問題: ローグ DHCP サーバー

DHCP には認証の仕組みがありません。攻撃者が悪意ある DHCP サーバーを LAN に持ち込むと、新規参加デバイスに次のような情報を渡せます:

  • 偽のデフォルトゲートウェイ: 全通信を攻撃者経由(中間者攻撃)
  • 偽の DNS サーバー: 偽サイトへ誘導(ファーミング攻撃)

対策:

  • 業務用スイッチの DHCP Snooping: 信頼するポートからしか DHCP Offer を受け付けない
  • 公衆 Wi-Fi では VPN を使う
  • HTTPS / HSTS の徹底: 暗号化と証明書検証で MITM が無効化される

DHCP が止まると何が起きるか

家庭用ルーターの DHCP 機能が停止すると、新しい機器がつながらなくなります。すでに接続中の機器はリース期間が切れるまで通信できますが、それ以降は順次脱落します。

トラブル時の応急処置として、PC 側で IP・サブネットマスク・ゲートウェイを手動設定すれば一時的に通信できます。Windows なら「コントロールパネル → ネットワーク」、macOS なら「ネットワーク環境設定」で設定可能。

診断コマンド

  • Linux: dhclient -v eth0 で詳細ログ付き取得
  • macOS: ipconfig getpacket en0 で取得した DHCP パケット内容表示
  • Windows: ipconfig /all でリース期間・DHCP サーバー IP 等を確認、ipconfig /release + /renew で再取得

おわりに

DHCP は「黙って動いていれば誰も気づかないが、止まると全員困る」典型的なインフラサービスです。トラブルシュートでは「DHCP サーバーは動いているか」「リース範囲は枯渇していないか」「DHCP リレーは正しく設定されているか」を切り分けると、原因にたどり着きやすくなります。