DHCP(Dynamic Host Configuration Protocol)は、ネットワーク上の端末に自動でIPアドレスやネットワーク設定を割り当てる仕組みです。企業ネットワークから家庭用ルータまで広く利用されています。この記事では、DHCPの基本動作、設定の流れ、そしてIP割り当てに関するトラブルの原因と対処法を詳しく解説します。
■ DHCPとは
DHCPは、ネットワーク機器(パソコン・スマートフォン・サーバなど)に対して、以下の情報を自動で配布するプロトコルです。
- IPアドレス
- サブネットマスク
- デフォルトゲートウェイ
- DNSサーバのアドレス
これらを手動で設定する必要がなくなるため、ネットワーク管理の手間を大幅に削減できます。
■ DHCPの基本動作(DORAの流れ)
DHCPの動作は「DORA」と呼ばれる4つのステップで構成されています。
| フェーズ | メッセージ | 説明 |
|---|---|---|
| ① Discover | DHCP Discover | クライアントがネットワーク上に「IPアドレスをください」とブロードキャスト送信する。 |
| ② Offer | DHCP Offer | サーバが利用可能なIPアドレス候補を提示する。 |
| ③ Request | DHCP Request | クライアントが「このIPを使いたい」と応答する。 |
| ④ Acknowledge | DHCP ACK | サーバが最終的にIPを割り当てることを承認する。 |
この4ステップの通信が完了することで、クライアントは正式にIPアドレスを取得します。
■ DHCPのリース(Lease)とは
DHCPで割り当てられたIPアドレスには「リース期間」が設定されています。リース期間が過ぎると、クライアントは再度サーバに更新要求を送信し、アドレスの再利用可否を確認します。
# リース更新の流れ
クライアント → DHCP Request
サーバ → DHCP ACK(再承認)
これにより、ネットワーク上のアドレスの有効利用と重複防止が行われます。
■ DHCPサーバの設定例(Ciscoルータ)
Router(config)# ip dhcp pool LAN-POOL
Router(dhcp-config)# network 192.168.10.0 255.255.255.0
Router(dhcp-config)# default-router 192.168.10.1
Router(dhcp-config)# dns-server 8.8.8.8
Router(dhcp-config)# lease 1 12 0 ! リース期間 1日12時間
Router(config)# exit
! 割り当て除外範囲(サーバやネットワーク機器用)
Router(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.20
上記の設定で、192.168.10.21〜192.168.10.254 がクライアントに動的割り当てされます。
■ LinuxでのDHCPサーバ設定例(dnsmasq使用)
# /etc/dnsmasq.conf の例
interface=eth0
dhcp-range=192.168.10.100,192.168.10.200,12h
dhcp-option=3,192.168.10.1 # デフォルトゲートウェイ
dhcp-option=6,8.8.8.8,1.1.1.1 # DNSサーバ
設定後はサービスを再起動します。
systemctl restart dnsmasq
■ DHCPトラブルの主な原因と対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| IPアドレスが取得できない(169.254.x.xになる) | DHCPサーバに到達できない(ケーブル断・VLAN設定ミス) | 通信経路確認(ping / traceroute)、VLANタグ設定確認 |
| 特定の端末だけ取得できない | MACアドレス登録制限、DHCPプール枯渇 | MACフィルタ確認、プール範囲拡張 |
| IPが重複する | 静的設定端末がDHCP範囲内に存在 | 除外範囲(excluded-address)を正しく設定 |
| 中継先サブネットで配布されない | DHCPリレー(Relay Agent)設定不足 | ip helper-address でリレー設定を追加 |
■ DHCPリレー(Relay Agent)の仕組み
異なるサブネット上のクライアントに対してDHCPを中継する機能が「DHCPリレー」です。通常、ルータや三層スイッチが中継役を担います。
Router(config-if)# ip helper-address 192.168.100.10
この設定により、クライアントからのDHCP Discoverを指定のDHCPサーバ(192.168.100.10)へ転送します。
■ トラブルシューティングコマンド
- Ciscoルータ:
show ip dhcp binding(割り当て状況確認) - Linux:
journalctl -u dnsmasqまたはgrep DHCP /var/log/messages - Windowsクライアント:
ipconfig /release→ipconfig /renew
■ まとめ
- DHCPはIPやゲートウェイ、DNSを自動で配布するプロトコル
- 基本動作は「DORA」:Discover → Offer → Request → Acknowledge
- 中継が必要な場合は「DHCPリレー(ip helper-address)」を設定
- トラブル時は「通信経路」「プール枯渇」「重複IP」「リレー設定」を重点的に確認
DHCPの仕組みとログ確認のポイントを理解しておくことで、ネットワーク運用時のトラブル対応が格段にスムーズになります。
