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

PCが利用可能なアドレスを探すためにDHCP DISCOVERをブロードキャストで送信します。
サーバは候補となるアドレスを提示するDHCP OFFERをブロードキャスト又はユニキャストで返します。
DISCOVERパケットの「flagsフィールド」のブロードキャストフラグが「1」ならブロードキャスト、「0」ならユニキャストで送信します。
提示された中から利用するアドレスを要求するために、サーバに対してDHCP REQUESTをブロードキャストで送信します。
サーバが要求を承認するDHCP ACKを返すことで、IPアドレスの割り当てが完了します。
DISCOVERパケットの「flagsフィールド」のブロードキャストフラグが「1」ならブロードキャスト、「0」ならユニキャストで送信します。
DHCPの規格では以上で終了ですが、割り当てられたアドレスがネットワーク上で重複していないかを確認するために、OSはGARP(Gratuitous ARP)を送信します。これにより同一セグメント内でのアドレス競合を検出できます。
DHCPリレーエージェント
DHCPサーバは通常、同一ネットワークセグメント内のクライアントにしか応答できません。異なるセグメントにあるクライアントがDHCPを利用するためには、リレーエージェントが必要です。

クライアントが送信したDHCP Discoverはリレーエージェントが受信します。
リレーエージェントは、自身が受信したインタフェースのIPアドレスをgiaddr(Gateway IP Address)フィールドに設定し、DHCPサーバに転送します。
DHCPサーバはgiaddrを参照して適切なアドレスを選び、DHCP OFFERをリレーエージェントに返します。
リレーエージェントは、DHCP OFFERをクライアントに中継します


