DHCP の動作原理と IP 割り当てトラブル対処法

  • URLをコピーしました!

DHCP(Dynamic Host Configuration Protocol)は、ネットワーク上の端末に自動でIPアドレスやネットワーク設定を割り当てる仕組みです。企業ネットワークから家庭用ルータまで広く利用されています。この記事では、DHCPの基本動作、設定の流れ、そしてIP割り当てに関するトラブルの原因と対処法を詳しく解説します。

■ DHCPとは

DHCPは、ネットワーク機器(パソコン・スマートフォン・サーバなど)に対して、以下の情報を自動で配布するプロトコルです。

  • IPアドレス
  • サブネットマスク
  • デフォルトゲートウェイ
  • DNSサーバのアドレス

これらを手動で設定する必要がなくなるため、ネットワーク管理の手間を大幅に削減できます。

■ DHCPの基本動作(DORAの流れ)

DHCPの動作は「DORA」と呼ばれる4つのステップで構成されています。

フェーズメッセージ説明
① DiscoverDHCP Discoverクライアントがネットワーク上に「IPアドレスをください」とブロードキャスト送信する。
② OfferDHCP Offerサーバが利用可能なIPアドレス候補を提示する。
③ RequestDHCP Requestクライアントが「このIPを使いたい」と応答する。
④ AcknowledgeDHCP 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 /releaseipconfig /renew

■ まとめ

  • DHCPはIPやゲートウェイ、DNSを自動で配布するプロトコル
  • 基本動作は「DORA」:Discover → Offer → Request → Acknowledge
  • 中継が必要な場合は「DHCPリレー(ip helper-address)」を設定
  • トラブル時は「通信経路」「プール枯渇」「重複IP」「リレー設定」を重点的に確認

DHCPの仕組みとログ確認のポイントを理解しておくことで、ネットワーク運用時のトラブル対応が格段にスムーズになります。

目次