DHCPの概要

DHCP(Dynamic Host Configuration Protocol)は、ネットワークに接続された端末に対して、IPアドレスやサブネットマスク、デフォルトゲートウェイ、DNSサーバなどのネットワーク設定情報を自動的に割り当てるためのプロトコルです。従来のように管理者が手動で各端末に設定を行う必要がなくなり、効率的でミスの少ないネットワーク運用が可能になります。特に、端末の増減が多い環境や大規模なネットワークにおいて有効です。

DHCPのパケット

DHCPでは、IPアドレスを自動的に割り当てるために複数のパケットが順にやり取りされます。

STEP1
DHCP DISCOVER

PCが利用可能なアドレスを探すためにDHCP DISCOVERをブロードキャストで送信します。

STEP2
DHCP OFFER

サーバは候補となるアドレスを提示するDHCP OFFERをブロードキャスト又はユニキャストで返します。
DISCOVERパケットのflagsフィールドのブロードキャストフラグが「1」ならブロードキャスト、「0」ならユニキャストで送信します。

STEP3
DHCP REQUEST

提示された中から利用するアドレスを選び、サーバに対してDHCP REQUESTをブロードキャストで送信します。

STEP4
DHCP ACK

サーバが要求を承認するDHCP ACKを返すことで、IPアドレスの割り当てが完了します。
DISCOVERパケットのflagsフィールドのブロードキャストフラグが「1」ならブロードキャスト、「0」ならユニキャストで送信します。

DHCPの規格では以上で終了ですが、割り当てられたアドレスがネットワーク上で重複していないかを確認するために、OSはGARP(Gratuitous ARP)を送信します。これにより同一セグメント内でのアドレス競合を検出できます。

DHCPでは、DISCOVER、OFFER、REQUEST、ACKの4つのパケットが利用される

DHCPリレーエージェント

DHCPサーバは通常、同一ネットワークセグメント内のクライアントにしか応答できません。異なるセグメントにあるクライアントがDHCPを利用するためには、リレーエージェントが必要です。

クライアントが送信したDHCP Discoverはまずリレーエージェントに届きます。リレーエージェントは、自身が受信したインタフェースのIPアドレスをgiaddr(Gateway IP Address)フィールドに設定し、DHCPサーバに転送します。サーバはこのgiaddrを参照して適切なアドレスを選び、DHCP OFFERをリレーエージェントに返します。リレーエージェントはOFFERをクライアントに中継し、結果として異なるネットワークにあるクライアントも自動的にIPアドレスを取得できます。

DHCPリレーエージェントで複数のネットワークをまとめて管理できる