DHCPv4の動作(その8)

ここでは、DHCPv4のメッセージフォーマットと各フィールドの内容を解説していきます。

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

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

DHCPv4のメッセージの主要項目

DHCPv4メッセージの各フィールドの内容は、下記の通りです。

フィールドName説明
op
(1バイト)
OpCodeパケットが要求と応答のいずれであるかを識別する。
htype
(1バイト)
ハードウェア
タイプ
ハードウェアアドレスのタイプを指定します。
hlen
(1バイト)
ハードウェア長ハードウェアアドレス長を指定する。
hops
(バイト)
ホップクライアントが0を設定し、要求がルータを経由する度に値がインクリメントされる。
xid
(4バイト)
トランザクション
ID
クライアントによって選択されたランダムな数字。DHCPv4メッセージは全て同じxidが設定される。
secs
(2バイト)
DHCPv4プロセスが開始されてからの経過した秒数が設定される。
flags
(2バイト)
フラグメッセージが、ブロードキャストなのかユニキャストなのかを指定する。
ciaddr
(4バイト)
クライアント
IPアドレス
Bound,Renew,Rebinding状態のように、クライアントが自身のIPアドレスを知っている時のみ使用される。
yiaddr
(4バイト)
相手先
IPアドレス
クライアントIPアドレスが、0.0.0.0の場合、DHCPv4サーバはオファーされたクライアントIPアドレスをこのフィールドに設定する。
siaddr
(4バイト)
サーバ
IPアドレス
クライアントがDHCPv4サーバのIPアドレスを知っている場合は、このフィールドにDHCPv4サーバのIPアドレスを設定する。それ以外では、DHCPv4サーバからのDHCPOFFER、DHCPACKで使用される。
giaddr
(4バイト)
ルータ
IPアドレス
ゲートウェイIPアドレス、DHCP/BOOTPリレーエージェントによって設定される。
chaddr
(16バイト)
クライアント
MACアドレス
DHCPv4クライアントのMACアドレス。
sname
(64バイト)
サーバ名オプションのサーバホスト名。
file
(バイト)
ブートファイル名ブートファイル名。
options
(可変長)
オプション パラメータDHCPv4サーバが提供するオプションのパラメータ。

 DHCPv4においては、snameやfileなどの巨大なフィールドは、あまり意味を持ちません。このフィールドは、BOOTPの拡張という立場を守るために用意されています。

関連コンテンツ