DHCP完全ガイド:仕組み(DORA)・リース管理・リレーとセキュリティ対策
概要 — DHCPとは何か
DHCP(Dynamic Host Configuration Protocol、動的ホスト構成プロトコル)は、ネットワークに接続するクライアントに対してIPアドレスやサブネットマスク、デフォルトゲートウェイ、DNSサーバなどのTCP/IP設定情報を自動で割り当てるプロトコルです。DHCPはBOOTPの後継としてIETFで標準化され、IPv4向けは主にRFC 2131 / RFC 2132で定義されています。サーバ・クライアント間はUDPで通信し、IPv4ではサーバがUDPポート67、クライアントがUDPポート68を利用します。
なぜDHCPが必要か
- 手動設定の工数削減:大量の端末に対して手動でIP設定を行うと誤設定や作業負荷が増えるため自動化が不可欠です。
- アドレス管理(IPAM):アドレスの利用状況を中央で管理でき、重複や欠損を減らせます。
- 可搬性:ノートPCやモバイル端末がネットワークを移動しても自動的に適切なアドレスを取得できます。
- 一時的な割当:ゲスト端末や短時間接続されるデバイスには短いリースを与えることで効率よくアドレスを再利用できます。
基本的な動作 — DHCPの4つのメッセージ(DISCOVER/OFFER/REQUEST/ACK)
DHCPの代表的な初期取得シーケンスは次の4段階です(一般的に「DORA」プロセスと呼ばれます)。
- DHCPDISCOVER:クライアントがネットワーク上のDHCPサーバを探すためにブロードキャストで送信。
- DHCPOFFER:サーバは利用可能なIPアドレスとオプション情報(サブネットマスク、ゲートウェイ、DNSなど)を提案。
- DHCPREQUEST:クライアントはサーバの提案の中から選択したオファーに対してリクエストを送信(その後の更新でも使用)。
- DHCPACK:サーバはリクエストを承認し、リース(割当)を確定。クライアントはその設定で通信を開始します。
パケット内の主なフィールド(概念的に)
- xid:トランザクションID。クライアントのやり取りを識別する番号。
- ciaddr / yiaddr / siaddr / giaddr:クライアントIP(ciaddr)、割当IP(yiaddr)、サーバIP(siaddr)、リレー代理のIP(giaddr)など。
- chaddr:クライアントのハードウェアアドレス(MACアドレス)。静的予約に利用。
- options:DHCPオプション領域。各種設定(ルータ、DNS、リース時間、ベンダ固有情報など)が含まれます。
リースと更新の仕組み(T1 / T2 / 期間)
DHCPで割り当てられるIPは「リース」として与えられます。リース期間中、クライアントはそのIPを使用できますが、期間満了前に更新プロセスを行います。代表的なタイミングは以下:
- T1(再取得開始):通常リース期間の50%が経過した時点で、クライアントはオリジナルのDHCPサーバに対して直接(通常はユニキャスト)でリース更新のDHCPREQUESTを送信します。
- T2(再バインド開始):通常リース期間の87.5%が経過した時点で、まだ更新できていない場合、クライアントはブロードキャストで他のDHCPサーバにも再バインド要求を送信します。
- リース満了:更新に失敗するとリースは失効し、クライアントは再度DISCOVERからやり直す必要があります。
割り当て方式の種類
- 自動割当(Automatic):サーバがクライアントに恒久的なアドレスを割り当てる。ほぼ固定に近い自動化。
- 動的割当(Dynamic):最も一般的。プールから一定期間のリースを与え、期限切れで回収して再利用。
- 手動割当(Static / Reservation):MACアドレスに対して固定IPを予約する。プリンターやサーバなどに使用。
DHCPリレーとVLAN間の運用
DHCPパケットはブロードキャストが含まれるため、別のサブネットにいるサーバへ直接到達できないことがあります。そこでルータやL3スイッチ上でDHCPリレー(IP helper)を設定すると、受信したブロードキャストをDHCPサーバ宛にユニキャストで転送し、giaddrフィールドにクライアントのサブネット情報を設定します。サーバはこのgiaddrを見て正しいサブネット向けのアドレスを返します。また、スイッチ上でRelayの識別情報(Option 82:Relay Agent Information)を付加する機能も一般的です(不正DHCP検出などに利用)。
よく使われるDHCPオプション(例)
- Option 1:サブネットマスク
- Option 3:デフォルトゲートウェイ(ルータ)
- Option 6:DNSサーバ
- Option 12:ホスト名
- Option 51:リース時間(seconds)
- Option 53:DHCPメッセージタイプ(DISCOVER/OFFER/...)
- Option 54:DHCPサーバ識別子
- Option 66 / 67:TFTPサーバ名 / ブートファイル名(PXEやネットブートで使用)
- Option 82:リレーエージェント情報(RFC 3046)
DHCPv6との違い(IPv6環境)
IPv6環境ではアドレス付与に関して複数のメカニズムが併存します。代表的なものはSLAAC(Stateless Address Autoconfiguration)とDHCPv6です。DHCPv6はIPv6用に設計され、クライアント/サーバのメッセージや識別子(DUID:Identifier)など多くがIPv4版と異なります。UDPポートはクライアント546、サーバ547を使用します。さらに、DHCPv6は「ステートフル(アドレスも割り当て)」と「ステートレス(設定情報のみ)」の両方の利用が可能です。DHCPv6の標準はRFC 8415などで定義されています。
トラブルと対策 — よくある問題点
- IPアドレス枯渇:プール不足。対策はプール拡張、リース時間の見直し、不要な固定割当の整理。
- 重複IP(IPコンフリクト):クライアントはARP等で検出した場合にDHCPDECLINEを送り、サーバはそのアドレスをマークすることができます。
- 不正/悪意あるDHCPサーバ(Rogue DHCP):不正なオファーでクライアントを誤導する。対策としてスイッチのDHCPスヌーピング、ポートセキュリティ、802.1X導入。
- リレー設定の誤り:giaddrが適切でないとサーバが正しいサブネットを特定できない。
セキュリティ対策
DHCP自体には強力な認証機構が標準で広く使われているわけではありません(RFC 3118として認証が提案されていますが普及は限定的)。そのため運用面での対策が重要です。主な方法:
- スイッチのDHCPスヌーピングを有効化し、信頼できるポートのみDHCPサーバ応答を許可する。
- ポートベースのアクセス制御(802.1X)で未認証デバイスのネットワーク接続を制限する。
- IP-MACバインディング(静的予約やARP監視)と組み合わせ、動的ARP検査を利用する。
- ログ監視とアラート:大量のDISCOVERや異常なOFFERは侵害の兆候となる。
運用上のポイント・実例
- 重要機器(DNSサーバ、監視端末など)は静的予約(MAC → IP)で管理する。
- ゲスト用SSIDや来訪者向けには短いリース(例:数時間)を設定し、プールの効率を上げる。
- 複数のDHCPサーバを冗長構成にし、スコープを分割してフェイルオーバーを実現する(商用DHCPサーバ製品やOSレベルの機能)。
- PXEやネットワークブートが必要な環境ではOption 66/67やVLANごとの設定を整備。
まとめ
DHCPはIPネットワークを効率的に運用する上で欠かせない基盤技術です。単なる「自動割当」以上に、リレー、オプション、リース制御、セキュリティ機能、IPv6との関係など理解すべきポイントが多くあります。運用では適切なスコープ設計、リース戦略、セキュリティ対策(DHCPスヌーピングやアクセス制御)を組み合わせることで、安定で安全なアドレス管理を行えます。
参考文献
- RFC 2131 - Dynamic Host Configuration Protocol
- RFC 2132 - DHCP Options and BOOTP Vendor Extensions
- RFC 951 - BOOTP
- RFC 3046 - DHCP Relay Agent Information Option
- RFC 3927 - IPv4 Link-Local Addressing (APIPA)
- RFC 8415 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
- Cisco - DHCP 基本知識(技術資料)
- Microsoft Docs - DHCP(Windows Server ドキュメント)


