🙆

DHCP概要

に公開

この記事の説明

この記事ではDHCPに関する様々な情報をまとめたメモになります
DHCPv6は範囲外です
学習のために執筆しているためAIは使用しません

この記事で登場する主要なRFC

RFC 説明
RFC 903 RARP
RFC 951 BOOTP
RFC 2131 DHCP

DHCPと歴史的に関係のあるプロトコル

DHCPはBOOTPを拡張したプロトコルです
BOOTPはRARPを改良したプロトコルです
そのため、まずはBOOTPとRARPについて説明します

RARP

RARPはMACアドレスに対応するIPアドレスを配布するためのリンク層のプロトコルです
ホストはMACアドレスをブロードキャストし、サーバは対応するIPアドレスを応答します

RARPにはいくつかの問題点が指摘されています
・異なるネットワークにいるホストに対してRARPでIPアドレスを配布することができない
RARPはリンク層のアルゴリズムであるため一つのネットワークに一つのRARPサーバが必要になります
当然、異なるネットワークに対してもIP配布できる方が経済的です
・RARPをサーバ上で実装することが困難
RARPを実装するためにはMACアドレスを参照する必要があります
MACアドレスはイーサネットフレームヘッダに記載されており、これを操作するのは多くの場合ドライバになります
これはサーバでのプロトコルの実装を困難にしていました

これらの課題を解決したプロトコルがBOOTPです

BOOTP

BOOTPはUDPで動作するプロトコルです
クライアントはBOOTREQUESTパケットをブロードキャストし、サーバは67番ポートで受信します
サーバはBOOTREPLYパケットを送信し、クライアントは68番ポートで受信します

このとき、サーバからクライアントへのBOOTREPLYパケットの送信方法は以下の方法を採ることができます
・BOOTREQUESTにクライアントのIPアドレスが含まれている場合、そのIPアドレスに送信する
・BOOTREQUESTにクライアントのIPアドレスが含まれていない場合、候補は以下
 ・ARPキャッシュを更新できる場合、ARPキャッシュを更新してユニキャストで送信
 ・ARPキャッシュを更新できない場合、ブロードキャストで送信

また、BOOTPにはいわゆるリレーエージェントと呼ばれる転送機能がオプションとして定められています
リレーエージェントとして動作するサーバはゲートウェイと呼ばれます
クライアントはBOOTREQUESTパケットをブロードキャストし、ゲートウェイは67番ポートで受信します
ゲートウェイはBOOTREQUESTを受信するとそれをサーバへ転送します
サーバはBOOTREPLYパケットをゲートウェイに送信し、ゲートウェイは68番ポートで受信します
ゲートウェイは受信したパケットをクライアントに送信します

この転送機能により異なるネットワークに対してIPアドレスを配布することができます
運用上はネットワーク機器がBOOTPゲートウェイの機能を持っており、それらを使うことが多いと思います

BOOTPのパケットフォーマット

DHCPはBOOTPパケットを拡張したフォーマットで通信するのでBOOTPのパケットフォーマットを以下に記載しておきます

種類 バイト数 説明 補足
op 1 op code BOOTREQUEST: 1、BOOTREPLY: 2
htype 1 ハードウェアタイプ イーサネットは1
hlen 1 ハードウェアアドレスの長さ イーサネットは6
hops 1 ホップ数 ゲートウェイは+1する
xid 4 ID クライアントが乱数で埋める
secs 2 ブートまでの時間 クライアントが埋める
unused 2 使用しない
ciaddr 4 クライアントのIPアドレス クライアントが埋める
yiaddr 4 クライアントに付与するIPアドレス サーバが埋める
siaddr 4 サーバのIPアドレス サーバが埋める
giaddr 4 ゲートウェイのIPアドレス ゲートウェイが埋める
chaddr 16 クライアントのハードウェアアドレス クライアントが埋める
sname 64 サーバのホスト名 オプション
file 128 ブートファイル名 null許容
vend 64 ベンダ拡張用 オプション

ハードウェアタイプについては定期的にAssigned NumbersというRFCで定義されていましたが、現在はRFC 3232により廃止されています

DHCP

DHCPはBOOTPを拡張してIPアドレスやブート用のファイル以外にも様々な設定を動的に配布することができるプロトコルです
クライアントはDHCPDISCOVERをブロードキャストで送信します
DHCPDISCOVERを受信したサーバはDHCPOFFERをクライアントに送信します
DHCPOFFERを受信したクライアントはDHCPREQUESTをブロードキャストで送信します
DHCPREQUESTを受信したサーバはDHCPACKをクライアントに送信します

BOOTPと比較してDHCPREQUEST以降の通信が追加されています
これにより同一セグメント上に複数のDHCPサーバが存在する場合でも設定の配布が可能になり、サーバの冗長化などが可能になります
その他にも多数の機能が存在しますが、必要になったら説明を追加します
DHCPはBOOTPサーバとしても正しく動作しなければいけません
また、BOOTPでゲートウェイと呼ばれていた機能はDHCPではリレーエージェントと呼びます

DHCPパケットフォーマット

DHCPパケットのフォーマットは以下です

種類 バイト数 説明 補足
op 1 op code BOOTREQUEST: 1、BOOTREPLY: 2
htype 1 ハードウェアタイプ イーサネットは1
hlen 1 ハードウェアアドレスの長さ イーサネットは6
hops 1 ホップ数 リレーエージェントは+1する
xid 4 ID クライアントが乱数で埋める
secs 2 IPアドレス取得までの時間 クライアントが埋める
flags 2 ユニキャスト通信可能かのフラグ ユニキャスト通信可能:0、不可能:1
ciaddr 4 クライアントのIPアドレス BOUND、RENEW、REBINDING状態のクライアントが埋める
yiaddr 4 クライアントに付与するIPアドレス サーバが埋める
siaddr 4 以降の工程でアクセスするべきIPアドレス サーバが埋める
giaddr 4 リレーエージェントのIPアドレス ゲートウェイが埋める
chaddr 16 クライアントのハードウェアアドレス クライアントが埋める
sname 64 サーバのホスト名 オプション
file 128 ブートファイル名 null許容
options 可変 オプションパラメータ オプションの種類は最大256個

BOOTPとの主な違いはflagsが定義されていることとoptionsが可変になっていることです
DHCPには未定義のものや将来のために予約されているものを含めて256個のオプションが存在します
DHCPでやり取りされる多くの情報はこのoptionsに含まれています
optionsはマジックナンバー'99 130 83 99'で開始し、optionsの終端であることを示すためのendオプション'255'で終了します
また、BOOTPとの互換性のため最小で64バイトの大きさを持ちます

DHCPオプション概要

DHCPオプションは種別、長さ、値を持つTLV形式です
ただし、一部例外的な形式のオプションもあります
DHCPではBOOTPのオプションも利用可能です
BOOTPでは種別のことをTagと呼びます
DHCPでは種別のことをCodeと呼びます
正確なオプション情報はIANAを参照してください

以下はDHCPオプションの概要です
私の手抜きでそこそこ誤情報が載っているので注意してください

Code Len Value 説明 定義
0 - - パディング、アライメント用 RFC 1497
1 4 Subnet Mask クライアントのサブネットマスク RFC 1497
2 4 Time Offset UTCとの差秒、singed 32bit integer RFC 1497
3 n Router ルータのIPアドレスのリスト(デフォルトルート) RFC 1497
4 n Time Server タイムサーバのIPアドレスのリスト RFC 1497
5 n IEN-116 Name Server IEN 116ネームサーバのIPアドレスのリスト RFC 1497
6 n Domain Name Server DNSサーバのIPアドレスのリスト RFC 1497
7 n Log Server ログサーバのIPアドレスのリスト RFC 1497
8 n Quotes Server QOTDサーバのIPアドレスのリスト RFC 1497
9 n LPR Server line printerサーバのIPアドレスのリスト RFC 1497
10 n Impress Server Impress imageサーバのIPアドレスのリスト RFC 1497
11 n Resource Location Server Resource LoacationサーバのIPアドレスのリスト RFC 1497
12 n Host Name ホスト名 RFC 1497
13 2 Boot File Size ブートファイルサイズのバイト数、16bit integer RFC 1497
14 n Merit Dump File クラッシュ時にダンプするファイルのパス RFC 1497
15 n Domain Name ドメイン名 RFC 1497
16 4 Swap Server スワップサーバのIPアドレス RFC 1497
17 n Root path ルートディスクのパス RFC 1497
18 n Extensions path TFTPで取得するファイル名 RFC 1497
19 1 IP Forwarding IP Forwardingの有効化 RFC 2132
20 1 Non-Local Source Routing Non-local source routingによるIP Forwardingの有効化 RFC 2132
21 n Policy Filter Non-local source routingのpolicy filterのリスト RFC 2132
22 2 Maximum Datagram Reassembly Size 最大リアセンブルサイズ RFC 2132
23 1 TTL IPデータグラムのTTL RFC 2132
24 4 Timeout Path MTUを使用している場合のタイムアウト秒 RFC 2132
25 n MTU size Path MTUサイズ RFC 2132
26 2 MTU インタフェースのMTU RFC 2132
27 1 All subnets are local サブネット内でMTUが同一か RFC 2132
28 4 Broadcast Address サブネットのブロードキャストアドレス RFC 2132
29 1 Perform Mask Discovery クライアントがICMPでサブネットマスクを要求する RFC 2132
30 1 Mask Supplier クライアントがICMPでサブネットマスクに応答する RFC 2132
31 1 Perform Router Discovery クライアントがICMP Router Discoveryを使用する RFC 2132
32 4 Router Solicitation Address ルータ探索のためのアドレス RFC 2132
33 n Static Route スタティックルートのリスト RFC 2132
34 1 Trailer Encapsulation Trailerカプセル化を行う RFC 2132
35 4 ARP Cache Timeout ARP Cacheのタイムアウト RFC 2132
36 1 Ethernet Encapsulation RFC894かIEEE 802.3のどちらでカプセル化するか RFC 2132
37 1 TCP Default TTL デフォルトTTL RFC 2132
38 4 TCP Keepalive Interval Keepalive(秒) RFC 2132
39 1 TCP Keepalive Garbage KeepaliveにGarbage octetを含めるか RFC 2132
40 n NIS Domain Name Network Information Serviceのドメイン名 RFC 2132
41 n NIS Address Network Information ServiceのIPアドレス RFC 2132
42 n NTP Servers NTPサーバのアドレスのリスト RFC 2132
43 n Vendor-specific information サーバのベンダ固有情報 RFC 2132
44 n NetBIOS name server NBNSのIPアドレスのリスト RFC 2132
45 n NetBIOS distribution server NBDDのIPアドレスのリスト RFC 2132
46 1 NetBIOS Node Type NetBIOSクライアントのノードタイプ RFC 2132
47 n NetBIOS Scope NetBIOSのスコープ RFC 2132
48 n X Window System Font Server XのフォントサーバのIPアドレスのリスト RFC 2132
49 n X Window System Display Manager XのディスプレイマネージャのIPアドレスのリスト RFC 2132
50 4 Requested IP Address クライアントが要求する特定のIPアドレス RFC 2132
51 4 IP Address Lease Time IPアドレスのリースタイム RFC 2132
52 1 Option Overload 'sname'、'file'を上書きしているか RFC 2132
53 1 DHCP Message Type DHCPメッセージの種類 RFC 2132
54 4 Sever Identifier DHCPサーバのIPアドレス RFC 2132
55 n Parameter Request List クライアントの要求するオプションのリスト RFC 2132
56 n Message エラーメッセージ RFC 2132
57 2 Maximum DHCP Message Size DHCPメッセージの最大長(最小値 576 octet) RFC 2132
58 4 Renewal Time RENEWING状態になるまでの時間(秒) RFC 2132
59 4 Rebinding Time REBINDING状態になるまでの時間(秒) RFC 2132
60 n Vendor class identifier クライアントのベンダ情報 RFC 2132
61 n Client-identifier クライアントの識別情報 RFC 2132
62 n NetWare/IP Domain Name NetWare/IPのドメイン名 RFC 2242
63 n NetWare/IP Information NetWare/IPの情報 RFC 2242
64 n NIS+ Domain NIS+のドメイン名 RFC 2132
65 n NIS+ Servers NIS+のサーバのIPアドレスのリスト RFC 2132
66 n TFTP server name TFTPサーバのホスト名 RFC 2132
67 n Bootfile name ブートファイル名 RFC 2132
68 n Mobile IP Home Agent ホームエージェントのIPアドレスのリスト RFC 2132
69 n SMTP Server SMTPサーバのIPアドレスのリスト RFC 2132
70 n POP3 Server POP3サーバのIPアドレスのリスト RFC 2132
71 n NNTP Server NNTPサーバのIPアドレスのリスト RFC 2132
72 n WWW Server WWWサーバのIPアドレスのリスト RFC 2132
73 n Finger Server Finger ServerのIPアドレスのリスト RFC 2132
74 n IRC Server IRCサーバのIPアドレスのリスト RFC 2132
75 n StreetTalk Server StreetTalkのサーバのIPアドレスのリスト RFC 2132
76 n StreetTalk Directory Assistance Server STDAサーバのIPアドレスのリスト RFC 2132
77 n User Class ユーザの組織・部門などの情報 RFC 3004
78 n SLP Directory Agent サービスロケーションプロトコルにおけるディレクトリエージェントのIPアドレスのリスト RFC 2610
79 n SLP Service Scope サービスロケーションプロトコルにおけるスコープ RFC 2610
80 0 - メッセージ往復1回によるIPアドレス割り当ての使用 RFC 4039
81 n FQDN クライアントのFQDN RFC 4702
82 n DHCP Relay Agent Information リレーエージェントの情報 RFC 3046
83 n iSNS Internet Storage Name Service RFC 4174
84 - - 未定義 RFC 3679
85 n NDS Servers Novell社のディレクトリサーバのIPアドレスのリスト RFC 2241
86 n NDS Tree Name Novell社のディレクトリサーバのツリー名 RFC 2241
87 n NDS Context Novell社のディレクトリサーバの初期コンテキスト RFC 2241
88 n BCMCS Controller Domain Name list モバイル用途 RFC 4280
89 n BCMCS Controller IPv4 address option モバイル用途 RFC 4280
90 n Authentication 認証情報 RFC 3118
91 4 Seconds 最後の通信からの経過時間 RFC 4388
92 n Address リースした全てのアドレスのリスト RFC 4388
93 2 Client system architecture CPUのアーキテクチャ RFC 4578
94 3 Client network interface identifier UNDIのバージョン RFC 4578
95 n LDAP Servers LDAPサーバのIPアドレスのリスト RFC 3679
96 - - 未定義 RFC 3679
97 Client machine identifier 17 クライアントのUUID RFC 4578
98 n User Athentication BASIC認証 RFC 2485
99 n Civic Location 位置情報 RFC 4776
100 n TZ-POSIX タイムゾーン RFC 4833
101 n TZ-Database タイムゾーン RFC 4833
102 - - 未定義 RFC 3679
103 - - 未定義 RFC 3679
104 - - 未定義 RFC 3679
105 - - 未定義 RFC 3679
106 - - 未定義 RFC 3679
107 - - 未定義 RFC 3679
108 n Seconds IPv6のみ使用する RFC 8925
109 16 IPv6 Address クライアントのIPv6アドレス RFC 8539
110 - - 未定義 RFC 3679
111 - - 未定義 RFC 3679
112 n Netinfo Address NetinfoのIPアドレスのリスト RFC 3679
113 n Netinfo Tag Netinfoのタグ RFC 3679
114 n URL URL RFC 3679
115 - - 未定義 RFC 3679
116 1 Auto-Configure ステートレス自動構成の抑制 RFC 2563
117 n Name services ネームサーバの優先順位 RFC 2937
118 4 Subnet Selection サブネットアドレス RFC 3011
119 n Domain Search サーチリスト RFC 3397
120 n SIP server SIPサーバのドメイン名またはIPアドレス RFC 3361
121 n Router スタティックルート RFC 3442
122 n CableLabs ケーブルテレビ関連の設定 RFC 3495
123 n GenConf 地理情報 RFC 6225
124 n Vendor-Identifying Vendor Class ベンダ識別情報 RFC 3925
125 n Vendor-Identifying Vendor-Specific Information ベンダ固有オプション RFC 3925
126 - - 未定義 RFC 3679
127 - - 未定義 RFC 3679
128-254 - - 色々定義されているが省略 RFC 1497
255 - - optionsの終端 RFC 1497

DHCPメッセージの種類

DHCPでやり取りされるメッセージはoption 53の値によって分類できます
2025年4月現在では18種類のメッセージタイプが存在します
RFC 2132では以下の8種類のメッセージタイプが定義されています

送信者 Message Type Value 説明
Client DHCPDISCOVER 1 DHCPサーバに自信をブロードキャストで知らせる
Server DHCPOFFER 2 DHCPDISCOVERに対する応答
Client DHCPREQUEST 3 パラメータの要求
Clinet DHCPDECLINE 4 アドレスがすでに利用されていることの通知
Server DHCPACK 5 パラメータの設定
Server DHCPNAK 6 クライアントのアドレスが無効であることの通知
Client DHCPRELEASE 7 リースの終了
Client DHCPINFORM 8 クライアントがすでにアドレスを設定済みであることの通知

optionの50番から61番はDHCPメッセージ用のオプションです
そのため、各メッセージタイプに対して設定の要否、可否、値などが定められています
各メッセージタイプにおいてRFC 2131で定められている値とオプションは以下です

・DHCPDISCOVER

種類
op 1 (BOOTREQUEST)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid 乱数
secs 0またはDHCP処理開始までの時間(秒)
flags サーバにブロードキャストで応答を要求する場合は最上位ビットに1、それ以外0
ciaddr 0
yiaddr 0
siaddr 0
giaddr 0
chaddr MACアドレス
sname オプション
file オプション
option code 要否、可否、値
Requested IP address 50 MAY
IP address lease time 51 MAY
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 1 (DHCPDISCOVER)
Server identifier 54 MUST NOT
Parameter request list 55 MAY
Message 56 SHOULD NOT
Maximum message size 57 MAY
Renewal Time 58 MAY
Rebinding Time 59 MAY
Vendor class identifier 60 MAY
Client identifier 61 MAY
Site-specific - MAY
All others - MAY

・DHCPOFFER

種類
op 2 (BOOTREPLY)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid DHCPDISCOVERと同じ値に設定
secs 0
flags DHCPDISCOVERと同じ値に設定
ciaddr 0
yiaddr クライアントに付与するIPアドレス
siaddr 次のブートストラップサーバのIPアドレス
giaddr DHCPDISCOVERと同じ値に設定
chaddr DHCPDISCOVERと同じ値に設定
sname オプション
file オプション
option code 要否、可否、値
Requested IP address 50 MUST NOT
IP address lease time 51 MUST
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 2 (DHCPOFFER)
Server identifier 54 MUST
Parameter request list 55 MUST NOT
Message 56 SHOULD
Maximum message size 57 MUST NOT
Renewal Time 58 MAY
Rebinding Time 59 MAY
Vendor class identifier 60 MAY
Client identifier 61 MUST NOT
Site-specific - MAY
All others - MAY

・DHCPREQUEST

種類
op 1 (BOOTREQUEST)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid DHCPOFFERと同じ値にセット
secs 0またはDHCP処理開始までの時間(秒)
flags サーバにブロードキャストで応答を要求する場合は最上位ビットに1、それ以外0
ciaddr 0またはクライアントのネットワークアドレス
yiaddr 0
siaddr 0
giaddr 0
chaddr MACアドレス
sname オプション
file オプション
option code 要否、可否、値
Requested IP address 50 MUST (SELECTING, INIT-REBOOT)
MUST NOT (BOUND, RENEWING)
IP address lease time 51 MAY
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 3 (DHCPREQUEST)
Server identifier 54 MUST (after SELECTING)
MUST NOT(after INIT-REBOT, BOUNT, RENEWING, REBINDING)
Parameter request list 55 MAY
Message 56 SHOULD NOT
Maximum message size 57 MAY
Renewal Time 58 MAY
Rebinding Time 59 MAY
Vendor class identifier 60 MAY
Client identifier 61 MAY
Site-specific - MAY
All others - MAY

・DHCPDECLINE

種類
op 1 (BOOTREQUEST)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid 乱数
secs 0
flags 0
ciaddr 0
yiaddr 0
siaddr 0
giaddr 0
chaddr MACアドレス
sname 不使用
file 不使用
option code 要否、可否、値
Requested IP address 50 MUST
IP address lease time 51 MUST NOT
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 4 (DHCPDECLINE)
Server identifier 54 MUST
Parameter request list 55 MUST NOT
Message 56 SHOULD
Maximum message size 57 MUST NOT
Renewal Time 58 MUST NOT
Rebinding Time 59 MUST NOT
Vendor class identifier 60 MUST NOT
Client identifier 61 MAY
Site-specific - MUST NOT
All others - MUST NOT

・DHCPACK

種類
op 2 (BOOTREPLY)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid DHCPREQUESTと同じ値にセット
secs 0
flags DHCPREQUESTと同じ値にセット
ciaddr 0またはDHCPREQUESTと同じ値にセット
yiaddr クライアントに付与するIPアドレス
siaddr 次のブートストラップサーバのIPアドレス
giaddr DHCPREQUESTと同じ値にセット
chaddr DHCPREQUESTと同じ値にセット
sname オプション
file オプション
option code 要否、可否、値
Requested IP address 50 MUST NOT
IP address lease time 51 MUST
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 5 (DHCPACK)
Server identifier 54 MUST
Parameter request list 55 MUST NOT
Message 56 SHOULD
Maximum message size 57 MUST NOT
Renewal Time 58 MAY
Rebinding Time 59 MAY
Vendor class identifier 60 MAY
Client identifier 61 MUST NOT
Site-specific - MAY
All others - MAY

・DHCPNAK

種類
op 2 (BOOTREPLY)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid DHCPREQUESTと同じ値にセット
secs 0
flags DHCPREQUESTと同じ値にセット
ciaddr 0
yiaddr 0
siaddr 0
giaddr DHCPREQUESTと同じ値にセット
chaddr DHCPREQUESTと同じ値にセット
sname 不使用
file 不使用
option code 要否、可否、値
Requested IP address 50 MUST NOT
IP address lease time 51 MUST NOT
Use 'file'/'sname' fields 52 MUST NOT
DHCP message type 53 6 (DHCPNAK)
Server identifier 54 MUST
Parameter request list 55 MUST NOT
Message 56 SHOULD
Maximum message size 57 MUST NOT
Renewal Time 58 MUST NOT
Rebinding Time 59 MUST NOT
Vendor class identifier 60 MAY
Client identifier 61 MAY
Site-specific - MUST NOT
All others - MUST NOT

・DHCPRELEASE

種類
op 1 (BOOTREQUEST)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid 乱数
secs 0
flags 0
ciaddr クライアントのアドレス
yiaddr 0
siaddr 0
giaddr 0
chaddr MACアドレス
sname 不使用
file 不使用
option code 要否、可否、値
Requested IP address 50 MUST NOT
IP address lease time 51 MUST NOT
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 7 (DHCPRELEASE)
Server identifier 54 MUST
Parameter request list 55 MUST NOT
Message 56 SHOULD
Maximum message size 57 MUST NOT
Renewal Time 58 MUST NOT
Rebinding Time 59 MUST NOT
Vendor class identifier 60 MUST NOT
Client identifier 61 MAY
Site-specific - MUST NOT
All others - MUST NOT

・DHCPINFORM

種類
op 1 (BOOTREQUEST)
htype 1 (ethernet)
hlen 6 (ethernet)
hops 0
xid 乱数
secs 0またはDHCP処理開始までの時間(秒)
flags サーバにブロードキャストで応答を要求する場合は最上位ビットに1、それ以外0
ciaddr クライアントのアドレス
yiaddr 0
siaddr 0
giaddr 0
chaddr MACアドレス
sname オプション
file オプション
option code 要否、可否、値
Requested IP address 50 MUST NOT
IP address lease time 51 MUST NOT
Use 'file'/'sname' fields 52 MAY
DHCP message type 53 8 (DHCPINFORM)
Server identifier 54 MUST NOT
Parameter request list 55 MAY
Message 56 SHOULD NOT
Maximum message size 57 MAY
Renewal Time 58 MAY
Rebinding Time 59 MAY
Vendor class identifier 60 MAY
Client identifier 61 MAY
Site-specific - MAY
All others - MAY

Discussion