RFC2132:DHCP Options and BOOTP Vendor Extensions,March 1997
本备忘录的状态
本文档为 Internet 社区指定了 Internet 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态和现状请参考当前版本的《互联网官方协议标准》(STD 1)。本备忘录的分发不受限制。
梗概
动态主机配置协议 (Dynamic Host Configuration Protocol,DHCP) [1] 提供了一个框架,用于将配置消息传递给 TCP/IP 网络上的主机。配置参数和其他控制消息携带在标签数据项中,这些数据项存储在 DHCP 消息的“选项/options”字段中。数据项本身也称为“选项/options”。
本文档指定了当前的 DHCP 选项集。未来的选项将在单独的 RFC 中指定。当前有效选项列表也可在 ftp://ftp.isi.edu/in-notes/iana/assignments [22] 中找到。
RFC 1497 [2] 中定义的所有厂商消息扩展都可以用作 DHCP 选项。 RFC 1497 中给出的定义包含在本文档中,该文档取代了 RFC 1497。本文档中定义的所有 DHCP 选项,除了第 9 节中定义的那些特定于 DHCP 的选项,都可以用作 BOOTP 厂商消息扩展。
1、 简介
本文档指定了与动态主机配置协议和引导协议一起使用的选项。
DHCP 数据包格式的完整描述可以在 DHCP 规范文档 [1] 中找到,BOOTP 数据包格式的完整描述可以在 BOOTP 规范文档 [3] 中找到。本文档定义了 DHCP 数据包('options')和 BOOTP 数据包('vend')最后一个字段中的消息格式。本节的其余部分定义了该区域的一般用途,用于提供对各种机器、操作系统和配置有用的消息。具有在异构客户端之间共享的单个 DHCP 或 BOOTP 服务器的站点可以选择定义其他特定于站点的格式以使用“选项”字段。
本备忘录的第 2 节描述了 DHCP 选项和 BOOTP 厂商扩展的格式。第 3 节描述了在先前文档中定义的用于 BOOTP 的选项(所有选项也可用于 DHCP)。第 4-8 节定义了用于 DHCP 和 BOOTP 的新选项。第 9 节定义了仅在 DHCP 中使用的选项。
进一步描述第 2-6 节中定义的大多数选项的参考资料可以在第 12 节中找到。第 9 节中定义的选项的使用在 DHCP 规范 [1] 中进行了描述。
有关注册新选项的消息包含在第 10 节中。
本文档更新了 RFC1533 中出现的 DHCP/BOOTP 选项的定义。分类机制已扩展为包括第 8.4 和 9.13 节中所述的厂商类。第 10 节中描述了定义新 DHCP/BOOTP 选项的新程序。添加了几个新选项,包括 NIS+ 域和服务器、移动 IP 本地代理、SMTP 服务器、TFTP 服务器和引导文件服务器。在第 1.1 节中添加了给出整个文档中使用的定义的文本。 9.14 节中添加了强调客户端标识符唯一性需求的文本。
1.1、 要求
在本文档中,用于定义特定要求重要性的词语大写。这些话是:
“必须/MUST”
这个词或形容词“REQUIRED”表示该项目是本规范的绝对要求。
“禁止/MUST NOT”
这句话的意思是该项目是本规范的绝对禁止。
“应该/SHOULD”
这个词或形容词“推荐”的意思是在特定情况下可能存在合理的理由来忽略这个项目,但在选择不同的课程之前应该理解全部含义并仔细权衡案例。
“不应该/SHOULD NOT”
这句话意味着在特定情况下,当列出的行为可接受甚至有用时,可能存在正当理由,但在实施此标签描述的任何行为之前,应了解全部含义并仔细权衡案例。
“可能/MAY”
这个词或形容词“OPTIONAL”意味着这个项目是真正可选的。例如,一个厂商可能会选择包含该项目,因为特定市场需要它或因为它增强了产品;另一个厂商可能会省略相同的项目。
1.2、 术语
本文档使用以下术语:
“DHCP 客户端”
DHCP 客户端或“客户端/client”是使用 DHCP 获取配置参数(例如网络地址)的 Internet 主机。
“DHCP 服务器”
“服务器/server”的 DHCP 服务器是将配置参数返回给 DHCP 客户端的 Internet 主机。
“绑定/binding”
绑定是一组配置参数,至少包括一个 IP 地址,与 DHCP 客户端关联或“绑定到”DHCP 客户端。绑定由 DHCP 服务器管理。
2、 BOOTP 扩展/DHCP 选项字段格式
DHCP 选项的格式与 RFC 1497 [2] 中定义的 BOOTP 'vendor extensions' 格式相同。选项可以是固定长度或可变长度。所有选项都以一个标记八位字节开始,它唯一地标识了选项。没有数据的固定长度选项仅包含一个标记八位字节。只有选项 0 和 255 是固定长度的。所有其他选项都是可变长度的,标签八位字节后面有一个长度八位字节。长度八位字节的值不包括指定标签和长度的两个八位字节。长度八位字节后跟数据的“长度”八位字节。包含 NVT ASCII 数据的选项不应包含尾随 NULL;然而,这些选项的接收者必须准备好删除尾随空值(如果它们存在)。接收方不得要求数据中包含尾随空值。在某些可变长度选项的情况下,长度字段是一个常量,但仍必须指定。
本文档之后定义的任何选项都必须包含一个长度八位字节,即使长度是固定的或为零。
所有多八位字节数量都按网络字节顺序排列。
当与 BOOTP 一起使用时,厂商消息字段的前四个八位字节已分配给“magic cookie”(如 RFC 951 中所建议)。该字段标识后续数据将被解释的模式。 Magic cookie 的值是网络字节顺序中的 4 个八位位组点分十进制 99.130.83.99(或十六进制数 63.82.53.63)。
RFC 1497 中定义的所有“厂商扩展”也是 DHCP 选项。
选项代码 128 到 254(十进制)保留用于特定于站点的选项。
除了第 9 节中的选项,所有选项都可以与 DHCP 或 BOOTP 一起使用。
其中许多选项的默认值在其他文档中指定。特别是,RFC 1122 [4] 为大多数 IP 和 TCP 配置参数指定了默认值。
许多选项提供一个或多个 32 位 IP 地址。使用 IP 地址而不是完全限定的域名 (fully-qualified Domain Names、FQDN) 可能会使未来 IP 主机的重新编号变得更加困难。在可能需要重新编号的站点上不鼓励使用这些地址。
3、 RFC 1497 厂商扩展
本节列出了 RFC 1497 中定义的厂商扩展。为了完整起见,在此定义它们。
3.1、 填充选项
pad 选项可用于使后续字段在字边界上对齐。
pad 选项的代码为 0,其长度为 1 个八位字节。
3.2、 结束选项
结束选项标记厂商字段中有效消息的结束。 随后的八位字节应填充填充选项。
结束选项的代码为 255,长度为 1 个八位字节。
3.3、 子网掩码
子网掩码选项根据 RFC 950 [5] 指定客户端的子网掩码。
如果在 DHCP 回复中同时指定了子网掩码和路由器选项,则必须首先指定子网掩码选项。
子网掩码选项的代码为 1,长度为 4 个八位字节。
3.4、 时间偏移
时间偏移字段以秒为单位指定客户端子网与协调世界时(Coordinated Universal Time,UTC) 的偏移量。 偏移量表示为二进制补码 32 位整数。 正偏移表示零子午线以东的位置,负偏移表示零子午线以西的位置。
时间偏移选项的代码为 2,其长度为 4 个八位字节。
3.5、 路由器选项
路由器选项指定客户端子网上路由器的 IP 地址列表。 路由器应该按优先顺序列出。
路由器选项的代码是 3。路由器选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.6、 时间服务器选项
时间服务器选项指定客户端可用的 RFC 868 [6] 时间服务器列表。 服务器应该按优先顺序列出。
时间服务器选项的代码是 4。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.7、 名称服务器选项
名称服务器选项指定客户端可用的 IEN 116 [7] 名称服务器列表。 服务器应该按优先顺序列出。
名称服务器选项的代码是 5。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.8、 域名服务器选项
域名服务器选项指定客户端可用的域名系统(STD 13,RFC 1035 [8])名称服务器列表。 服务器应该按优先顺序列出。
域名服务器选项的代码是 6。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.9、 日志服务器选项
日志服务器选项指定客户端可用的 MIT-LCS UDP 日志服务器列表。 服务器应该按优先顺序列出。
日志服务器选项的代码是 7。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.10、 Cookie 服务器选项
cookie 服务器选项指定客户端可用的 RFC 865 [9] cookie 服务器列表。 服务器应该按优先顺序列出。
日志服务器选项的代码是 8。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.11、 LPR 服务器选项
LPR 服务器选项指定客户端可用的 RFC 1179 [10] 行式打印机服务器列表。 服务器应该按优先顺序列出。
LPR 服务器选项的代码是 9。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.12、 Impress服务器选项
Impress 服务器选项指定客户端可用的 Imagen Impress 服务器列表。 服务器应该按优先顺序列出。
Impress 服务器选项的代码是 10。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.13、 资源位置服务器选项
此选项指定客户端可用的 RFC 887 [11] 资源位置服务器列表。 服务器应该按优先顺序列出。
这个选项的代码是 11。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
3.14、 主机名选项
此选项指定客户端的名称。 该名称可能会或可能不会被本地域名限定(有关检索域名的首选方式,请参阅第 3.17 节)。 有关字符集限制,请参阅 RFC 1035。
此选项的代码为 12,其最小长度为 1。
3.15、 启动文件大小选项
此选项指定客户端默认引导映像的 512 个八位字节块的长度。 文件长度被指定为一个无符号的 16 位整数。
此选项的代码为 13,长度为 2。
3.16、 优点转储文件
此选项指定在客户端崩溃时应将客户端的核心映像转储到的文件的路径名。 路径被格式化为由 NVT ASCII 字符集中的字符组成的字符串。
此选项的代码为 14。其最小长度为 1。
3.17、 域名
此选项指定客户端在通过域名系统解析主机名时应使用的域名。
此选项的代码为 15。其最小长度为 1。
3.18、 交换服务器
这指定了客户端交换服务器的 IP 地址。
此选项的代码为 16,长度为 4。
3.19、 根路径
此选项指定包含客户端根磁盘的路径名。 路径被格式化为由 NVT ASCII 字符集中的字符组成的字符串。
此选项的代码为 17。其最小长度为 1。
3.20、 扩展路径
用于指定文件的字符串,可通过 TFTP 检索,其中包含的消息可以按照与 BOOTP 响应中的 64 字节厂商扩展字段相同的方式进行解释,但以下情况除外:
- 文件长度不受限制;
- 文件中对标签 18(即 BOOTP 扩展路径字段的实例)的所有引用都将被忽略。
此选项的代码为 18。其最小长度为 1。
4、 每个主机的 IP 层参数
本节详细介绍了影响 IP 层在每个主机基础上运行的选项。
4.1、 IP 转发启用/禁用选项
此选项指定客户端是否应配置其 IP 层以进行数据包转发。 值为 0 表示禁用 IP 转发,值为 1 表示启用 IP 转发。
此选项的代码为 19,其长度为 1。
4.2、 非本地源路由启用/禁用选项
此选项指定客户端是否应配置其 IP 层以允许转发具有非本地源路由的数据报(有关该主题的讨论,请参阅 [4] 的第 3.3.5 节)。 值为 0 表示不允许转发此类数据报,值为 1 表示允许转发。
此选项的代码为 20,长度为 1。
4.3、 策略过滤器选项
此选项为非本地源路由指定策略过滤器。 过滤器由 IP 地址和掩码列表组成,这些 IP 地址和掩码指定用于过滤传入源路由的目标/掩码对。
任何下一跳地址与过滤器之一不匹配的源路由数据报都应该被客户端丢弃。
有关更多消息,请参见 [4]。
此选项的代码为 21。此选项的最小长度为 8,且长度必须为 8 的倍数。
4.4、 最大数据报重组大小
此选项指定客户端应准备重新组装的最大数据报大小。 大小指定为 16 位无符号整数。 最小值合法值为 576。
此选项的代码为 22,长度为 2。
4.5、 默认 IP 生存时间
此选项指定客户端应在传出数据报上使用的默认生存时间。 TTL 被指定为一个八位字节,其值在 1 到 255 之间。
此选项的代码为 23,长度为 1。
4.6、 路径 MTU 老化超时选项
此选项指定在 RFC 1191 [12] 中定义的机制发现的老化路径 MTU 值时使用的超时(以秒为单位)。 超时指定为 32 位无符号整数。
此选项的代码为 24,长度为 4。
4.7、 路径 MTU 平台表选项
此选项指定在执行 RFC 1191 中定义的路径 MTU 发现时要使用的 MTU 大小表。该表的格式为 16 位无符号整数列表,从最小到最大排序。 最小 MTU 值不能小于 68。
这个选项的代码是 25,它的最小长度是 2,长度必须是 2 的倍数。
5、 每个接口的 IP 层参数
本节详细介绍了基于每个接口影响 IP 层操作的选项。 预计客户端可以发出多个请求,每个接口一个,以便使用其特定参数配置接口。
5.1、 接口 MTU 选项
此选项指定要在此接口上使用的 MTU。 MTU 指定为 16 位无符号整数。 MTU 的最小合法值为 68。
此选项的代码为 26,长度为 2。
5.2、 所有子网都是本地选项
此选项指定客户端是否可以假定客户端连接到的 IP 网络的所有子网都使用与客户端直接连接到的网络的子网相同的 MTU。 值为 1 表示所有子网共享相同的 MTU。 值 0 表示客户端应假定直连网络的某些子网可能具有较小的 MTU。
此选项的代码为 27,长度为 1。
5.3、 广播地址选项
此选项指定在客户端子网上使用的广播地址。 广播地址的合法值在 [4] 的第 3.2.1.3 节中指定。
此选项的代码为 28,长度为 4。
5.4、 执行掩码发现选项
此选项指定客户端是否应使用 ICMP 执行子网掩码发现。 值 0 表示客户端不应执行掩码发现。 值为 1 表示客户端应该执行掩码发现。
此选项的代码为 29,长度为 1。
5.5、 掩码厂商选项
此选项指定客户端是否应使用 ICMP 响应子网掩码请求。 值 0 表示客户端不应响应。 值为 1 表示客户端应该响应。
此选项的代码为 30,长度为 1。
5.6、 执行路由器发现选项
此选项指定客户端是否应使用 RFC 1256 [13] 中定义的路由器发现机制来请求路由器。 值 0 表示客户端不应执行路由器发现。 值为 1 表示客户端应该执行路由器发现。
此选项的代码为 31,长度为 1。
5.7、 路由器请求地址选项
此选项指定客户端应向其传输路由器请求请求的地址。
此选项的代码为 32,长度为 4。
5.8、 静态路由选项
此选项指定客户端应安装在其路由缓存中的静态路由列表。 如果指定了到同一目的地的多条路由,它们将按优先级降序排列。
路由由 IP 地址对列表组成。 第一个地址是目的地地址,第二个地址是目的地的路由器。
默认路由 (0.0.0.0) 是静态路由的非法目的地。 有关路由器选项的消息,请参阅第 3.5 节。
此选项的代码为 33。此选项的最小长度为 8,且长度必须为 8 的倍数。
6、 每个接口的链路层参数
本节列出了在每个接口的基础上影响数据链路层操作的选项。
6.1、 尾部封装选项
此选项指定客户端在使用 ARP 协议时是否应协商使用尾部 (RFC 893 [14])。 值 0 表示客户端不应尝试使用尾部。 值为 1 表示客户端应尝试使用尾部。
此选项的代码为 34,长度为 1。
6.2、 ARP 缓存超时选项
此选项指定 ARP 缓存条目的超时时间(以秒为单位)。 时间指定为 32 位无符号整数。
此选项的代码为 35,长度为 4。
6.3、 以太网封装选项
如果接口是以太网,此选项指定客户端是否应使用以太网版本 2 (RFC 894 [15]) 或 IEEE 802.3 (RFC 1042 [16]) 封装。 值 0 表示客户端应使用 RFC 894 封装。 值为 1 表示客户端应使用 RFC 1042 封装。
此选项的代码为 36,长度为 1。
7、 TCP 参数
本节列出了基于每个接口影响 TCP 层操作的选项。
7.1、 TCP 默认 TTL 选项
此选项指定客户端在发送 TCP 段时应使用的默认 TTL。 该值表示为 8 位无符号整数。 最小值为 1。
此选项的代码为 37,长度为 1。
7.2、 TCP 保活间隔选项
此选项指定客户端 TCP 在 TCP 连接上发送 keepalive 消息之前应等待的时间间隔(以秒为单位)。 时间指定为 32 位无符号整数。 零值表示客户端不应在连接上生成保活消息,除非应用程序特别请求。
此选项的代码为 38,长度为 4。
7.3、 TCP Keepalive 垃圾选项
此选项指定客户端是否应发送带有垃圾八位字节的 TCP keepalive 消息以与旧实现兼容。 值 0 表示不应发送垃圾八位字节。 值为 1 表示应发送垃圾八位字节。
此选项的代码为 39,长度为 1。
8、 应用和服务参数
本节详细介绍了一些用于配置杂项应用程序和服务的杂项选项。
8.1、 网络消息服务域选项
此选项指定客户端的 NIS [17] 域的名称。 域被格式化为由来自 NVT ASCII 字符集的字符组成的字符串。
此选项的代码为 40。其最小长度为 1。
8.2、 网络消息服务器选项
此选项指定 IP 地址列表,指示客户端可用的 NIS 服务器。 服务器应该按优先顺序列出。
这个选项的代码是 41,它的最小长度是 4,长度必须是 4 的倍数。
8.3、 网络时间协议服务器选项
此选项指定 IP 地址列表,指示客户端可用的 NTP [18] 服务器。 服务器应该按优先顺序列出。
这个选项的代码是 42,它的最小长度是 4,长度必须是 4 的倍数。
8.4、 厂商特定消息
客户端和服务器使用此选项来交换特定于厂商的消息。该消息是一个包含 n 个八位字节的不透明对象,大概由客户端和服务器上的厂商特定代码解释。此消息的定义是特定于厂商的。厂商在厂商类别标识符选项中指明。不具备解释由客户端发送的厂商特定消息的服务器必须忽略它(尽管它可能会被报告)。没有收到所需的厂商特定消息的客户端应该尝试在没有它的情况下进行操作,尽管他们可能会在降级模式下这样做(并宣布他们正在这样做)。
如果厂商可能在此选项中对多项消息进行编码,则厂商应该使用“封装的厂商特定选项”对选项进行编码,如下所述:
封装的厂商特定选项字段应该被编码为与 DHCP 选项字段相同语法的代码/长度/值字段序列,但以下例外:
1) 封装的特定于厂商的扩展字段中不应有“magic cookie”字段。
2) 除 0 或 255 之外的代码可以由厂商在封装的厂商特定扩展字段中重新定义,但应该符合第 2 节中定义的标签长度值语法。
3) 代码 255 (END),如果存在,表示封装的厂商扩展的结束,而不是厂商扩展字段的结束。如果不存在代码 255,则将封闭的厂商特定消息字段的结尾视为封装的厂商特定扩展字段的结尾。
此选项的代码为 43,其最小长度为 1。
当使用封装的厂商特定扩展时,消息字节 1-n 具有以下格式:
8.5、 NetBIOS over TCP/IP 名称服务器选项
NetBIOS 名称服务器 (NetBIOS name server,NBNS) 选项指定按优先顺序列出的 RFC 1001/1002 [19] [20] NBNS 名称服务器列表。
此选项的代码为 44。该选项的最小长度为 4 个八位字节,且长度必须始终为 4 的倍数。
8.6、 NetBIOS over TCP/IP 数据报分发服务器选项
NetBIOS 数据报分发服务器 (NetBIOS datagram distribution,NBDD) 选项指定按优先顺序列出的 RFC 1001/1002 NBDD 服务器列表。 此选项的代码为 45。该选项的最小长度为 4 个八位字节,且长度必须始终为 4 的倍数。
8.7、 NetBIOS over TCP/IP 节点类型选项
NetBIOS 节点类型选项允许 NetBIOS over TCP/IP 客户端,这些客户端可按照 RFC 1001/1002 中的描述进行配置。 该值指定为单个八位字节,用于标识客户端类型,如下所示:
在上图中,符号“0x”表示基数为 16(十六进制)的数字。
此选项的代码为 46。此选项的长度始终为 1。
8.8、 NetBIOS over TCP/IP 范围选项
NetBIOS 范围选项为客户端指定 TCP/IP 上的 NetBIOS 范围参数,如 RFC 1001/1002 中所指定。 有关字符集限制,请参阅 [19]、[20] 和 [8]。
此选项的代码为 47。此选项的最小长度为 1。
8.9、 X Window 系统字体服务器选项
此选项指定客户端可用的 X Window System [21] 字体服务器列表。 服务器应该按优先顺序列出。
这个选项的代码是 48。这个选项的最小长度是 4 个八位字节,长度必须是 4 的倍数。
8.10、 X Window 系统显示管理器选项
此选项指定运行 X Window 系统显示管理器并可供客户端使用的系统的 IP 地址列表。
地址应该按优先顺序列出。
这个选项的代码是49。这个选项的最小长度是4,长度必须是4的倍数。
8.11、 网络消息服务+域选项
此选项指定客户端的 NIS+ [17] 域的名称。 域被格式化为由来自 NVT ASCII 字符集的字符组成的字符串。
此选项的代码为 64。其最小长度为 1。
8.12、 网络消息服务+服务器选项
此选项指定 IP 地址列表,指示客户端可用的 NIS+ 服务器。 服务器应该按优先顺序列出。
这个选项的代码是 65,它的最小长度是 4,长度必须是 4 的倍数。
8.13、 移动 IP 本地代理选项
此选项指定 IP 地址列表,指示客户端可用的移动 IP 本地代理。 代理应该按优先顺序列出。
这个选项的代码是 68。它的最小长度是 0(表示没有本地代理可用),长度必须是 4 的倍数。预计通常的长度是四个八位字节,包含单个本地代理的地址。
8.14、 简单邮件传输协议 (SMTP) 服务器选项
SMTP 服务器选项指定客户端可用的 SMTP 服务器列表。 服务器应该按优先顺序列出。
SMTP 服务器选项的代码是 69。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.15、 邮局协议 (POP3) 服务器选项
POP3 服务器选项指定客户端可用的 POP3 列表。 服务器应该按优先顺序列出。
POP3 服务器选项的代码是 70。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.16、 网络新闻传输协议 (NNTP) 服务器选项
NNTP 服务器选项指定客户端可用的 NNTP 列表。 服务器应该按优先顺序列出。
NNTP 服务器选项的代码是 71。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.17、 默认万维网 (WWW) 服务器选项
WWW 服务器选项指定客户端可用的 WWW 列表。 服务器应该按优先顺序列出。
WWW 服务器选项的代码是 72。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.18、 默认 Finger 服务器选项
Finger 服务器选项指定客户端可用的 Finger 列表。 服务器应该按优先顺序列出。
Finger 服务器选项的代码是 73。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.19、 默认 Internet 中继聊天 (IRC) 服务器选项
IRC 服务器选项指定客户端可用的 IRC 列表。 服务器应该按优先顺序列出。
IRC 服务器选项的代码是 74。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.20、 StreetTalk 服务器选项
StreetTalk 服务器选项指定客户端可用的 StreetTalk 服务器列表。 服务器应该按优先顺序列出。
StreetTalk 服务器选项的代码是 75。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
8.21、 StreetTalk 目录帮助 (STDA) 服务器选项
StreetTalk Directory Assistance (STDA) 服务器选项指定客户端可用的 STDA 服务器列表。 服务器应该按优先顺序列出。
StreetTalk Directory Assistance 服务器选项的代码是 76。这个选项的最小长度是 4 个八位字节,并且长度必须始终是 4 的倍数。
9、 DHCP 扩展
本节详细介绍了特定于 DHCP 的选项。
9.1、 请求的 IP 地址
此选项用于客户端请求 (DHCPDISCOVER) 以允许客户端请求分配特定 IP 地址。
此选项的代码为 50,长度为 4。
9.2、 IP地址租用时间
此选项用于客户端请求(DHCPDISCOVER 或 DHCPREQUEST)以允许客户端请求 IP 地址的租用时间。 在服务器回复 (DHCPOFFER) 中,DHCP 服务器使用此选项来指定它愿意提供的租用时间。
时间以秒为单位,并指定为 32 位无符号整数。
此选项的代码为 51,长度为 4。
9.3、 选项过载
此选项用于指示 DHCP 'sname' 或 'file' 字段通过使用它们来承载 DHCP 选项而过载。 如果返回的参数将超出为选项分配的通常空间,则 DHCP 服务器会插入此选项。
如果存在此选项,则客户端会在结束对标准选项字段的解释后解释指定的附加字段。
此选项的代码为 52,长度为 1。此选项的合法值为:
9.4、 TFTP 服务器名称
当 DHCP 标头中的“sname”字段已用于 DHCP 选项时,此选项用于标识 TFTP 服务器。
此选项的代码为 66,其最小长度为 1。
9.5、 引导文件名
当 DHCP 标头中的“文件”字段已用于 DHCP 选项时,此选项用于标识引导文件。
此选项的代码为 67,其最小长度为 1。
9.6、 DHCP 消息类型
此选项用于传达 DHCP 消息的类型。 此选项的代码为 53,其长度为 1。此选项的合法值为:
9.7、 服务器标识符
此选项用于 DHCPOFFER 和 DHCPREQUEST 消息中,并且可以选择性地包含在 DHCPACK 和 DHCPNAK 消息中。 DHCP 服务器在 DHCPOFFER 中包含此选项,以允许客户端区分租用提议。 DHCP 客户端使用“服务器标识符”字段的内容作为任何单播到 DHCP 服务器的 DHCP 消息的目标地址。 DHCP 客户端还通过在 DHCPREQUEST 消息中包含此选项来指示正在接受哪些租用提议。
标识符是所选服务器的 IP 地址。
此选项的代码为 54,长度为 4。
9.8、 参数请求列表
DHCP 客户端使用此选项来请求指定配置参数的值。 请求的参数列表指定为 n 个八位字节,其中每个八位字节是本文档中定义的有效 DHCP 选项代码。
客户端可以按优先顺序列出选项。 DHCP 服务器不需要按照请求的顺序返回选项,但必须尝试按照客户端请求的顺序插入请求的选项。
此选项的代码为 55。其最小长度为 1。
9.9、 消息
DHCP 服务器使用此选项在发生故障时通过 DHCPNAK 消息向 DHCP 客户端提供错误消息。 客户端可以在 DHCPDECLINE 消息中使用此选项来指示客户端拒绝提供的参数的原因。 该消息由 n 个八位字节的 NVT ASCII 文本组成,客户端可以在可用的输出设备上显示这些文本。
此选项的代码为 56,其最小长度为 1。
9.10、 最大 DHCP 消息大小
此选项指定它愿意接受的最大长度 DHCP 消息。 长度被指定为一个无符号的 16 位整数。 客户端可以在 DHCPDISCOVER 或 DHCPREQUEST 消息中使用最大 DHCP 消息大小选项,但不应在 DHCPDECLINE 消息中使用该选项。
此选项的代码为 57,其长度为 2。最小合法值为 576 个八位字节。
9.11、 续订 (T1) 时间值
此选项指定从地址分配到客户端转换到 RENEWING 状态的时间间隔。
该值以秒为单位,并指定为 32 位无符号整数。
此选项的代码为 58,长度为 4。
9.12、 重新绑定 (T2) 时间值
此选项指定从地址分配到客户端转换到 REBINDING 状态的时间间隔。
该值以秒为单位,并指定为 32 位无符号整数。
此选项的代码为 59,长度为 4。
9.13、 厂商类别标识符
DHCP 客户端使用此选项来选择性地识别 DHCP 客户端的厂商类型和配置。 该消息是一个由 n 个八位字节组成的字符串,由服务器解释。 厂商可以选择定义特定的厂商类别标识符来传达有关客户端的特定配置或其他标识消息。 例如,标识符可以对客户端的硬件配置进行编码。 不具备解释客户端发送的特定于类的消息的能力的服务器必须忽略它(尽管它可能会被报告)。 响应的服务器应该只使用选项 43 将特定于厂商的消息返回给客户端。
此选项的代码为 60,其最小长度为 1。
9.14、 客户标识符
DHCP 客户端使用此选项来指定其唯一标识符。 DHCP 服务器使用这个值来索引它们的地址绑定数据库。对于管理域中的所有客户端,该值应该是唯一的。
标识符应该被 DHCP 服务器视为不透明的对象。
客户端标识符可以由类似于 [3] 中定义的“htype”/“chaddr”字段的类型-值对组成。例如,它可以由硬件类型和硬件地址组成。在这种情况下,类型字段应该是 STD2 [22] 中定义的 ARP 硬件类型之一。当值字段包含硬件地址以外的标识符(例如,完全限定域名)时,应使用硬件类型 0(零)。
为了正确识别客户端,每个客户端的客户端标识符在客户端所连接的子网上使用的客户端标识符中必须是唯一的。厂商和系统管理员负责选择满足此唯一性要求的客户端标识符。
此选项的代码为 61,其最小长度为 2。
10、 定义新的扩展
新 DHCP 选项的作者将按照以下步骤获得该选项作为 DHCP Internet 标准的一部分的接受:
1. 作者设计了新选项。
2. 作者通过以下联系方式向 IANA 索取新选项的编号:
互联网号码分配机构 (IANA)
南加州大学/消息科学研究所,金钟路4676
玛丽安德尔湾,加利福尼亚州 90292-6695
或发送电子邮件至:iana@iana.org
3. 作者使用新获得的选项编号记录新选项,作为 Internet 草案。
4. 作者通过“互联网官方协议标准”(STD 1)中定义的 IETF 标准流程提交互联网草案以供审核。将提交新选项以供最终接受为 Internet 标准。
5. 新选项通过 IETF 标准流程;新选项将由动态主机配置工作组(如果该工作组仍然存在)进行审查,或者作为未由 IETF 工作组提交的 Internet 草案进行审查。
6. 如果新选项未能被接受为互联网标准,分配的选项编号将返回给 IANA 重新分配。
这个定义新扩展的过程将确保:
* 新选项编号的分配由单一机构协调,
* 审查新选项的技术正确性和适当性,以及
* 新选项的文档已完成并已发布。
11、 致谢
作者感谢 DHC WG 的许多(不胜枚举!)成员在 DHCP 和本文档的开发中所做的不懈努力。
非常感谢 J Allard、Mike Carney、Dave Lapp、Fred Lien 和 John Mendonca 在组织 DHCP 互操作性测试会议方面所做的努力。
本文档的开发部分得到了国家研究计划公司 (CNRI)、巴克内尔大学和 Sun Microsystems 的资助。
12、 参考文献
[1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, Bucknell University, March 1997. [2] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1497, USC/Information Sciences Institute, August 1993. [3] Croft, W., and J. Gilmore, "Bootstrap Protocol", RFC 951, Stanford University and Sun Microsystems, September 1985. [4] Braden, R., Editor, "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, USC/Information Sciences Institute, October 1989. [5] Mogul, J., and J. Postel, "Internet Standard Subnetting Procedure", STD 5, RFC 950, USC/Information Sciences Institute, August 1985. [6] Postel, J., and K. Harrenstien, "Time Protocol", STD 26, RFC 868, USC/Information Sciences Institute, SRI, May 1983. [7] Postel, J., "Name Server", IEN 116, USC/Information Sciences Institute, August 1979. [8] Mockapetris, P., "Domain Names - Implementation and Specification", STD 13, RFC 1035, USC/Information Sciences Institute, November 1987. [9] Postel, J., "Quote of the Day Protocol", STD 23, RFC 865, USC/Information Sciences Institute, May 1983. [10] McLaughlin, L., "Line Printer Daemon Protocol", RFC 1179, The Wollongong Group, August 1990. [11] Accetta, M., "Resource Location Protocol", RFC 887, CMU, December 1983. [12] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191, DECWRL, Stanford University, November 1990. [13] Deering, S., "ICMP Router Discovery Messages", RFC 1256, Xerox PARC, September 1991. [14] Leffler, S. and M. Karels, "Trailer Encapsulations", RFC 893, U. C. Berkeley, April 1984. [15] Hornig, C., "Standard for the Transmission of IP Datagrams over Ethernet Networks", RFC 894, Symbolics, April 1984. [16] Postel, J. and J. Reynolds, "Standard for the Transmission of IP Datagrams Over IEEE 802 Networks", RFC 1042, USC/Information Sciences Institute, February 1988. [17] Sun Microsystems, "System and Network Administration", March 1990. [18] Mills, D., "Internet Time Synchronization: The Network Time Protocol", RFC 1305, UDEL, March 1992. [19] NetBIOS Working Group, "Protocol Standard for a NetBIOS Service on a TCP/UDP transport: Concepts and Methods", STD 19, RFC 1001, March 1987. [20] NetBIOS Working Group, "Protocol Standard for a NetBIOS Service on a TCP/UDP transport: Detailed Specifications", STD 19, RFC 1002, March 1987. [21] Scheifler, R., "FYI On the X Window System", FYI 6, RFC 1198, MIT Laboratory for Computer Science, January 1991. [22] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, USC/Information Sciences Institute, July 1992.
13、 安全考虑
本备忘录不讨论安全问题。