跳到主要内容

5. DHCP 常量

  1. DHCP 常量

    本节描述 DHCP 所使用的各种程序与网络常量.

5.1. 多播地址

DHCP 使用以下多播地址:

  All_DHCP_Relay_Agents_and_Servers (FF02::1:2)
链路范围的多播地址, 客户端用来与相邻的 (即链路上的) 中继
代理和服务器通信. 所有服务器和中继代理都是该多播组的成员.

All_DHCP_Servers (FF05::1:3)
站点范围的多播地址, 中继代理用来与服务器通信, 既可以是中
继代理想向所有服务器发送消息, 也可以是其不知道服务器的单
播地址. 注意, 为了让中继代理使用该地址, 它必须拥有一个范
围足以被服务器到达的地址. 站点内的所有服务器都是该多播组
的成员.

5.2. UDP 端口

客户端在 UDP 端口 546 上监听 DHCP 消息. 服务器和中继代理在 UDP 端口 547 上 监听 DHCP 消息.

5.3. DHCP 消息类型

DHCP 定义了以下消息类型. 关于这些消息类型的更多细节见第 6 节和第 7 节. 此 处未列出的消息类型保留供将来使用. 每种消息类型的数字编码显示在括号内.

  SOLICIT (1)        客户端发送 Solicit 消息以定位服务器.

ADVERTISE (2) 服务器发送 Advertise 消息, 以表明其可提供 DHCP 服务,
作为对从客户端收到的 Solicit 消息的响应.

REQUEST (3) 客户端发送 Request 消息, 以向某台特定服务器请求配置
参数, 包括 IP 地址.

CONFIRM (4) 客户端向任何可用的服务器发送 Confirm 消息, 以确定分
配给它的地址对于客户端所连接的链路是否仍然适用.

RENEW (5) 客户端向最初为客户端提供地址和配置参数的服务器发送
Renew 消息, 以延长分配给客户端的地址的生存期, 并更新
其他配置参数.

REBIND (6) 客户端向任何可用的服务器发送 Rebind 消息, 以延长分配
给客户端的地址的生存期, 并更新其他配置参数; 当客户端
对 Renew 消息未收到任何响应后, 会发送此消息.

REPLY (7) 服务器发送 Reply 消息, 其中包含作为对从客户端收到的
Solicit、Request、Renew、Rebind 消息的响应而分配的地址
和配置参数. 服务器发送 Reply 消息, 其中包含作为对
Information-request 消息的响应的配置参数. 服务器发送
Reply 消息, 以确认或否认分配给客户端的地址对于客户端
所连接的链路是适用的, 作为对 Confirm 消息的响应. 服务
器发送 Reply 消息, 以确认收到了 Release 或 Decline 消息.

RELEASE (8) 客户端向为客户端分配了地址的服务器发送 Release 消息,
以表明客户端将不再使用一个或多个已分配的地址.

DECLINE (9) 客户端向服务器发送 Decline 消息, 以表明客户端已确定由
服务器分配的一个或多个地址在其所连接链路上已被占用.

RECONFIGURE (10) 服务器向客户端发送 Reconfigure 消息, 以告知客户端服务
器有新的或已更新的配置参数, 并且客户端要发起一次
Renew/Reply 或 Information-request/Reply 事务, 以便从
服务器接收更新的信息.

INFORMATION-REQUEST (11)
客户端向服务器发送 Information-request 消息, 以请求配
置参数, 但不向客户端分配任何 IP 地址.

RELAY-FORW (12) 中继代理发送 Relay-forward 消息, 以向服务器中继消息,
可以是直接中继, 也可以经由另一个中继代理. 收到的消息
(可以是客户端消息, 也可以是来自另一个中继代理的
Relay-forward 消息) 被封装在 Relay-forward 消息的一个
选项中.

RELAY-REPL (13) 服务器向中继代理发送 Relay-reply 消息, 其中包含一条中
继代理要投递给客户端的消息. 该 Relay-reply 消息可以被
其他中继代理中继, 以投递给目标中继代理. 服务器将客户
端消息作为选项封装在 Relay-reply 消息中, 中继代理提取
该选项并将其中继给客户端.

5.4. 状态码

DHCPv6 使用状态码来传达在客户端与服务器的消息中所请求操作的成功或失败, 并提供关于消息失败具体原因的附加信息. 具体的状态码在 24.4 节中定义.

5.5. 传输与重传参数

本节给出一张数值表, 用于描述客户端与服务器的消息传输行为.

Parameter Default Description

SOL_MAX_DELAY 1 sec Max delay of first Solicit SOL_TIMEOUT 1 sec Initial Solicit timeout SOL_MAX_RT 120 secs Max Solicit timeout value REQ_TIMEOUT 1 sec Initial Request timeout REQ_MAX_RT 30 secs Max Request timeout value REQ_MAX_RC 10 Max Request retry attempts CNF_MAX_DELAY 1 sec Max delay of first Confirm CNF_TIMEOUT 1 sec Initial Confirm timeout CNF_MAX_RT 4 secs Max Confirm timeout CNF_MAX_RD 10 secs Max Confirm duration REN_TIMEOUT 10 secs Initial Renew timeout REN_MAX_RT 600 secs Max Renew timeout value REB_TIMEOUT 10 secs Initial Rebind timeout REB_MAX_RT 600 secs Max Rebind timeout value INF_MAX_DELAY 1 sec Max delay of first Information-request INF_TIMEOUT 1 sec Initial Information-request timeout INF_MAX_RT 120 secs Max Information-request timeout value REL_TIMEOUT 1 sec Initial Release timeout REL_MAX_RC 5 MAX Release attempts DEC_TIMEOUT 1 sec Initial Decline timeout DEC_MAX_RC 5 Max Decline attempts REC_TIMEOUT 2 secs Initial Reconfigure timeout REC_MAX_RC 8 Max Reconfigure attempts HOP_COUNT_LIMIT 32 Max hop count in a Relay-forward message

5.6 时间取值以及作为时间取值的 "Infinity" 的表示

所有关于生存期、T1 和 T2 的时间取值均为无符号整数. 当取值 0xffffffff 用作 生存期 (如 RFC2461 [17]) 或 T1/T2 的取值时, 其含义为 "无限 (infinity)".