DHCP(セグメントの識別)

 DHCPリレー機能を利用すれば、下図のようなネットワークを構築することができます。DHCPサーバを集約して、1台のDHCPサーバーで管理できるようになります。

1台のDHCPサーバにセグメント(ネットワーク)ごとにスコープを設定しておきます。

 では、DHCPサーバは、どのようにセグメント(ネットワーク)を識別して、セグメントごとに異なる設定情報を割り当てているのでしょうか?

 DHCPメッセージ内の「GIADDR」のIPアドレスによって、どのサブネットのIPアドレスに割り当てるかを識別しIPアドレスを割り当てています。「GIADDR」が無い場合は、同一セグメントと認識しています。

●DHCPのメッセージフォーマット

情報名説明
CIADDRクライアントIPアドレス、クライアントがBOUND、 RENEW、REBINDING状態の場合に用いられる。
YIADDRDHCPサーバが割り当てるクライアントのIPアドレス(自分のIPアドレス)
SIADDRDHCPサーバのIPアドレス
GIADDRDHCPリレーエージェントのIPアドレス。DHCPサーバはGIADDRを見てクライアントの所属するサブネットを識別する。
CHADDRクライアントのMACアドレス

 パケットをフォワードする前に、パケットのGIADDRフィールドに、そのセグメント用のルータのIPアドレスを格納します。これで、DHCPクライアントがそのIPアドレスを取得した時には、そのアドレスがクライアントのためのゲートウェイアドレスとなります。

クライアントからDHCPサーバへはUDPの67番が、DHCPサーバからクライアントへは68番が利用されます。

DHCPのメッセージフォーマット

DHCPはBOOTPの拡張で、メッセージフォーマット等は、ほぼそのままです。

下の図は、DHCPのメッセージフォーマットです。

DHCPメッセージの主要の項目を下表に示します。

●DHCPのメッセージの主要項目

情報名説明
CIADDRクライアントIPアドレス、クライアントがBOUND、 RENEW、REBINDING状態の場合に用いられる。
YIADDRDHCPサーバが割り当てるクライアントのIPアドレス(自分のIPアドレス)
SIADDRDHCPサーバのIPアドレス
GIADDRDHCPリレーエージェントのIPアドレス。DHCPサーバはGIADDRを見てクライアントの所属するサブネットを識別する。
CHADDRクライアントのMACアドレス