DHCPv4 (dhcpv4)
- レイヤ: アプリケーション・制御
- ヘッダ: 可変長
- 補足: アプリケーションプロトコル
下位レイヤからの到達
フィールド
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
op | enum(8) | 1 (boot_request) | BOOTP メッセージ種別 (1 = BOOTREQUEST、2 = BOOTREPLY)。 | |
htype | uint(8) | 1 | ハードウェアアドレス種別 (1 = Ethernet)。 | |
hlen | uint(8) | 6 | ハードウェアアドレス長 (オクテット、Ethernet は 6)。 | |
hops | uint(8) | 0 | リレーホップ数 (リレーエージェントごとに加算)。 | |
xid | uint(32) | 305419896 | クライアントが選ぶトランザクション ID。 | |
secs | uint(16) | 0 | クライアントが取得を開始してからの経過秒数。 | |
flags | flags(16) | 0x0 | BOOTP フラグ (ビット 15 = ブロードキャスト応答を要求)。 | |
ciaddr | ipv4 | 0.0.0.0 | クライアント IP アドレス (割り当て済みの場合)。 | |
yiaddr | ipv4 | 0.0.0.0 | サーバが割り当てるクライアント (“your”) IP アドレス。 | |
siaddr | ipv4 | 0.0.0.0 | 次に使うサーバ (ブートサーバ) の IP アドレス。 | |
giaddr | ipv4 | 0.0.0.0 | リレーエージェント (ゲートウェイ) の IP アドレス。リレー時は非 0。 | |
chaddr | mac | 02:00:00:00:00:01 | クライアントのハードウェア (MAC) アドレス。後ろに 10 オクテットのパディング。 | |
chaddr_padding | bytes(10) | 00 00 00 00 00 00 00 00 00 00 | ||
sname | bytes(64) | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | サーバホスト名 (任意、64 オクテット、NUL 埋め)。 | |
file | bytes(128) | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ブートファイル名 (128 オクテット、NUL 埋め)。 | |
magic_cookie | uint(32) | 1669485411 | DHCP マジッククッキー (0x63825363)。 | |
options | tlv — PDU の残りすべて | 2 要素 | DHCP オプション (8 ビットコード / 長さ。Pad、End、Message Type、Relay Agent Information など)。 |
op
| 値 | 名前 |
|---|---|
| 1 (0x01) | boot_request |
| 2 (0x02) | boot_reply |
flags
| ビット | マスク | 名前 |
|---|---|---|
| 15 | 32768 (0x8000) | broadcast |
options
- タイプ 8 ビット、長さ 8 ビット。
- 長さは値の部分だけを数えます。
- 未知のタイプは値をオクテット列のまま保持します。
| タイプ値 | 名前 | 値のフィールド | 説明 |
|---|---|---|---|
| 0 (0x00) | pad | (タイプのみ。長さと値なし) | |
| 1 (0x01) | subnet_mask | mask | |
| 3 (0x03) | router | addresses | |
| 6 (0x06) | dns_servers | addresses | |
| 12 (0x0c) | host_name | ||
| 15 (0x0f) | domain_name | ||
| 50 (0x32) | requested_ip | address | |
| 51 (0x33) | lease_time | seconds | |
| 53 (0x35) | message_type | type | |
| 54 (0x36) | server_id | address | |
| 55 (0x37) | parameter_request_list | codes | |
| 58 (0x3a) | renewal_time | seconds | |
| 59 (0x3b) | rebinding_time | seconds | |
| 61 (0x3d) | client_id | ||
| 82 (0x52) | relay_agent_info | suboptions | |
| 255 (0xff) | end | (タイプのみ。長さと値なし) |
options › subnet_mask
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
mask | ipv4 |
options › router
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
addresses | list<ipv4> — PDU の残りすべて |
options › dns_servers
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
addresses | list<ipv4> — PDU の残りすべて |
options › requested_ip
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
address | ipv4 |
options › lease_time
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
seconds | uint(32) |
options › message_type
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
type | enum(8) |
options › message_type › type
| 値 | 名前 |
|---|---|
| 1 (0x01) | discover |
| 2 (0x02) | offer |
| 3 (0x03) | request |
| 4 (0x04) | decline |
| 5 (0x05) | ack |
| 6 (0x06) | nak |
| 7 (0x07) | release |
| 8 (0x08) | inform |
options › server_id
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
address | ipv4 |
options › parameter_request_list
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
codes | list<uint(8)> — PDU の残りすべて |
options › renewal_time
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
seconds | uint(32) |
options › rebinding_time
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
seconds | uint(32) |
options › relay_agent_info
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
suboptions | tlv — PDU の残りすべて |
options › relay_agent_info › suboptions
- タイプ 8 ビット、長さ 8 ビット。
- 長さは値の部分だけを数えます。
- 未知のタイプは値をオクテット列のまま保持します。
| タイプ値 | 名前 | 値のフィールド | 説明 |
|---|---|---|---|
| 1 (0x01) | circuit_id | ||
| 2 (0x02) | remote_id | ||
| 5 (0x05) | link_selection | address | |
| 11 (0x0b) | server_id_override | address |
options › relay_agent_info › suboptions › link_selection
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
address | ipv4 |
options › relay_agent_info › suboptions › server_id_override
| フィールド | 型 | 既定値 | Auto | 説明 |
|---|---|---|---|---|
address | ipv4 |
制約
| レベル | 規則 |
|---|---|
| 警告 | magic_cookie が 1669485411 |
サンプルテンプレート
- dhcpv4-discover —
templates/protocols/app/dhcpv4-discover.wpg.yaml - dhcpv4-relay —
templates/protocols/app/dhcpv4-relay.wpg.yaml - scenario-dhcp-discover-flood —
templates/scenarios/dhcp-discover-flood.wpg.yaml