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の拡張という立場を守るために用意されています。