RPC系列协议--rfc3315--Dynamic Host Configuration Protocol for IPv6--DHCPv6
- 1.摘要
- 2.介绍和概述
- 3.术语
- 4.DHCP常量
- 4.1 Multicast Addresses
- 4.2 UDP Ports
- 4.3 DHCP Message Types
- 4.4 Status Codes
- 4.5 Transmission and Retransmission参数
- 4.6 表示时间值和“无穷大”作为时间值
- 5.Client/Server信息格式
- 6.DHCP Options
- 6.1 DHCP Options格式
- 6.2 Client Identifier Option
- 6.3 Server Identifier Option
- 6.4 Identity Association for Non-temporary Addresses Option
- 6.5 Identity Association for Temporary Addresses Option
- 6.6 IA Address Option
- 6.7 Option Request Option
- 6.8 Preference Option
- 6.9 Elapsed Time Option
- 6.10 Relay Message Option
- 6.11 Authentication Option
- 6.12 Server Unicast Option
- 6.13 Status Code Option
- 6.14 Rapid Commit Option
- 6.15 User Class Option
- 6.16 Vendor Class Option
- 6.17 Vendor-specific Information Option
- 6.18 Interface-Id Option
- 6.19 Reconfigure Message Option
- 6.20 Reconfigure Accept Option
1.摘要
IPv6的动态主机配置协议(DHCP)允许DHCP服务器将配置参数(如IPv6网络地址)传递到IPv6节点。它提供了可重用网络地址的自动分配能力和额外的配置灵活性。该协议是“IPv6无状态(stateless)地址自动配置”(RFC 2462)的有状态(stateful)对等物,可以单独使用或与后者并发地获得配置参数。
2.介绍和概述
这个文档描述了IPv6的DHCP (DHCP),一种提供设备管理配置的客户端/服务器协议。DHCP可以为设备提供DHCP服务器分配的地址和其他配置信息,这些信息以选项的形式携带。可以通过定义新选项来扩展DHCP,以携带本文档中未指定的配置信息。
2.1 协议和地址
客户端和服务器使用UDP交换DHCP消息。客户端使用链接本地地址或通过其他机制确定的地址来传输和接收DHCP消息。DHCP服务器使用预留的、链接范围内的多播地址从客户端接收消息。为了允许DHCP客户端向没有连接到同一链接的DHCP服务器发送消息,客户端链接上的DHCP中继代理将在客户端和服务器之间中继消息。一旦客户端确定了服务器的地址,在某些情况下它可以使用单播直接向服务器发送消息。
2.2 客户机-服务器交换涉及2条消息
当DHCP客户端不需要DHCP服务器为其分配IP地址时,客户端可以通过与DHCP服务器交换的单个消息和应答获得配置信息,如可用DNS服务器或NTP服务器的列表。要获得配置信息,客户端首先向All_DHCP_Relay_Agents_and_Servers多播地址发送一条信息请求消息。服务器使用包含客户端配置信息的应答消息进行响应。此消息交换假设客户端只需要配置信息,不需要分配任何IPv6地址。
当服务器将IPv6地址和其他配置信息提交给客户端时,客户端和服务器可能只使用两条消息就能完成交换,而不是下一节中描述的四条消息。在本例中,客户机向All_DHCP_Relay_Agents_and_Servers发送请求消息,请求分配地址和其他配置信息。此消息包括指示客户端愿意接受来自服务器的即时回复消息。愿意向客户端提交地址分配的服务器会立即响应一条回复消息。然后,客户端可以立即使用应答消息中的配置信息和地址。
分配给客户机的每个地址都与服务器指定的首选生存期和有效生存期相关联。为了请求分配给地址的生存期的扩展,客户端向服务器发送一条更新消息。服务器使用新的生存期向客户机发送应答消息,允许客户机继续使用该地址而不中断。
2.3 客户机-服务器交换涉及4条消息
为了请求分配一个或多个IPv6地址,客户端首先定位一个DHCP服务器,然后请求分配地址和其他配置信息从服务器。客户机向All_DHCP_Relay_Agents_and_Servers地址发送请求消息,以查找可用的DHCP服务器。任何能够满足客户机需求的服务器都用一则广告消息进行响应。然后,客户机选择其中一个服务器,并向该服务器发送请求消息,请求确认地址分配和其他配置信息。服务器以包含已确认地址和配置的应答消息进行响应。
3.术语
3.1 IPv6
名称 | 含义 |
---|---|
address | 一个接口或一组接口的IP层标识符 |
host | 任何不是路由器的节点 |
IP | 互联网协议版本6 (IPv6),术语IPv4和IPv6只在需要避免歧义的上下文中使用 |
interface | 节点对链接的附加 |
link | 一种通信设备或媒介,节点可以在链路层进行通信 |
link-layer identifier | 接口的链接层标识符 |
link-local address | 一种IPv6地址,具有仅链路作用域,由前缀(FE80::/10)表示,可用于连接到连接到同一链路的相邻节点。每个接口都有一个链接本地地址 |
multicast address | 一组接口(通常属于不同的节点)的标识符。发送到多播地址的数据包被发送到由该地址标识的所有接口 |
neighbor | 连接到同一链接上的节点 |
node | 实现IP的一种设备 |
packet | IP报头加上有效负载 |
prefix | 一个地址的初始位,或共享相同初始位的一组IP地址 |
prefix length | 前缀中的比特数 |
router | 转发未显式寻址到自身的IP数据包的节点。 |
unicast address | 单个接口的标识符。发送到单播地址的数据包被发送到由该地址标识的接口 |
3.2 DHCP
名称 | 含义 |
---|---|
appropriate to the link | 当地址与DHCP服务器对网络拓扑、前缀分配和地址分配策略的了解一致时,该地址是“适合于该链接的” |
binding | 绑定(或客户端绑定)是一组服务器数据记录,其中包含服务器拥有的关于IA中的地址或显式分配给客户端的配置信息的信息 |
configuration parameter | 在服务器上设置并使用DHCP传递给客户机的配置信息的一个元素。例如,这些参数可用于携带节点用于配置其网络子系统的信息,并在链路或互联网络上启用通信 |
DHCP | 动态主机配置协议IPv6。术语DHCPv4和DHCPv6只在需要避免歧义的上下文中使用 |
DHCP client (or client) | 在链接上发起请求以从一个或多个DHCP服务器获取配置参数的节点 |
DHCP domain | 由DHCP管理并由单个管理实体操作的一组链接 |
DHCP realm | 用于标识从中选择DHCP身份验证密钥的DHCP管理域的名称 |
DHCP relay agent (or relay agent) | 作为中间体在客户机和服务器之间传递DHCP消息的节点,它与客户机位于同一链接上。 |
DHCP server (or server) | 响应客户端请求的节点,它可能与客户端位于同一链接上,也可能与客户端不在同一链接上。 |
DUID | DHCP参与者的DHCP唯一标识符;每个DHCP客户机和服务器都有一个DUID。 |
Identity association (IA) | 分配给客户端的地址集合。每个IA都有一个相关的IAID。一个客户可能有多个IA被指派给它;例如,每个接口对应一个接口 |
Identity association identifier (IAID) | 由客户端选择的IA的标识符。每个IA都有一个IAID,它被选择为属于该客户的IAs的所有IAID中唯一的IAID。 |
Identity association for non-temporary addresses (IA_NA) | 持有非临时地址的已分配地址的IA |
Identity association for temporary addresses (IA_TA) | 带有临时地址的I |
message | 作为UDP数据报的有效负载携带的一组数据,在DHCP服务器、中继代理和客户端之间交换。 |
Reconfigure key | 服务器提供给客户机的一种密钥,用于为重新配置的消息提供安全性。 |
relaying | DHCP中继代理在DHCP参与者之间中继DHCP消息。 |
transaction ID | 一个不透明值,用于将响应与客户机或服务器发起的响应进行匹配。 |
4.DHCP常量
4.1 Multicast Addresses
名称 | 含义 |
---|---|
All_DHCP_Relay_Agents_and_Servers(FF02::1:2) | 一个链接范围内的多播地址,由客户端用来与邻近的例如中继代理和服务器。所有服务器和中继代理都是这个多播组的成员。 |
All_DHCP_Servers (FF05::1:3) | 中继代理用于与服务器通信的站点范围的多播地址,这可能是因为中继代理希望向所有服务器发送消息,也可能是因为它不知道服务器的单播地址。请注意,为了让中继代理使用此地址,它必须有一个足够范围的地址,以供服务器访问。站点内的所有服务器都是此多播组的成员。 |
4.2 UDP Ports
客户端在UDP端口546上侦听DHCP消息。服务器和中继代理侦听UDP端口547上的DHCP消息。
4.3 DHCP Message Types
名称 | 含义 |
---|---|
SOLICIT (1) | 客户机发送请求消息来定位服务器。 |
ADVERTISE (2) | 服务器发送一个广告消息,表明它可用于DHCP服务,作为对从客户机接收到的请求消息的响应。 |
REQUEST (3) | 客户端发送一条请求消息,请求来自特定服务器的配置参数,包括IP地址。 |
CONFIRM (4) | 客户机向任何可用的服务器发送确认消息,以确定它分配的地址是否仍然适合客户机连接的链接。 |
RENEW (5) | 客户机向最初提供客户机地址和配置参数的服务器发送更新消息,以延长分配给客户机的地址的生存期,并更新其他配置参数。 |
REBIND (6) | 客户端向任何可用的服务器发送重新绑定消息,以延长分配给客户端的地址的生存期,并更新其他配置参数;此消息在客户端未收到对续订消息的响应后发送。 |
REPLY (7) | 服务器发送包含指定地址和配置参数的应答消息,以响应从客户端接收的请求、请求、更新和重新绑定消息。服务器发送包含配置参数的应答消息来响应信息请求消息。服务器发送应答消息以响应确认消息,确认或拒绝分配给客户机的地址与客户机连接的链接是否合适。服务器发送回复消息以确认收到释放或拒绝消息。 |
RELEASE (8) | 客户端向为客户端分配地址的服务器发送发布消息,表明客户端将不再使用一个或多个已分配的地址。 |
DECLINE (9) | 客户端向服务器发送拒绝消息,表明客户端已经确定服务器分配的一个或多个地址在客户端连接的链接上已经在使用。 |
RECONFIGURE (10) | 服务器向客户机发送Reconfigure消息,通知客户机服务器有新的或更新的配置参数,并且客户机将与服务器启动一个续订/应答或信息请求/应答事务,以便接收更新的信息。 |
INFORMATION-REQUEST (11) | 客户机向服务器发送信息请求消息来请求配置参数,而不向客户机分配任何IP地址。 |
RELAY-FORW (12) | 中继代理直接或通过另一个中继代理向服务器发送中继转发消息。接收到的消息(客户机消息或来自另一个中继代理的中继转发消息)封装在中继转发消息中的一个选项中。 |
RELAY-REPL (13) | 服务器向中继代理发送中继应答消息,其中包含中继代理向客户端发送的消息。转发-应答消息可以由其他中继代理转发,以便发送到目标中继代理。服务器将客户端消息封装为中继-应答消息中的一个选项,中继代理提取并转发给客户端。 |
4.4 Status Codes
DHCPv6使用状态代码来传达在来自客户端和服务器的消息中请求的操作的成功或失败,并提供关于消息失败的特定原因的额外信息。
4.5 Transmission and Retransmission参数
参数 | 默认值 | 定义 |
---|---|---|
SOL_MAX_DELAY | 1 sec | 第一次请求的最大延迟 |
SOL_TIMEOUT | 1 sec | 初始请求超时 |
SOL_MAX_RT | 120 secs | 最大请求超时值 |
REQ_TIMEOUT | 1 sec | 初始请求超时 |
REQ_MAX_RT | 30 secs | 最大请求超时值 |
REQ_MAX_RC | 10 | 最大请求重试尝试 |
CNF_MAX_DELAY | 1 sec | 第一次确认的最大延迟 |
CNF_TIMEOUT | 1 sec | 初始确认超时 |
CNF_MAX_RT | 4 secs | 最大确认超时 |
CNF_MAX_RD | 10 secs | 最大确认时间 |
REN_TIMEOUT | 10 secs | 初始更新超时 |
REN_MAX_RT | 600 secs | 最大更新超时值 |
REB_TIMEOUT | 10 secs | 初始重新绑定超时 |
REB_MAX_RT | 600 secs | 最大重新绑定超时值 |
INF_MAX_DELAY | 1 sec | 第一次信息请求的最大延迟 |
INF_TIMEOUT | 1 sec | 初始信息的请求超时 |
INF_MAX_RT | 120 secs | 最大信息请求超时值 |
REL_TIMEOUT | 1 sec | 最初释放超时 |
REL_MAX_RC | 5 | 最大释放尝试 |
DEC_TIMEOUT | 1 sec | 初始下降超时 |
DEC_MAX_RC | 5 | 最大尝试下降 |
REC_TIMEOUT | 2 secs | 初始配置超时 |
REC_MAX_RC | 8 | 最大尝试重新配置 |
HOP_COUNT_LIMIT | 32 | 转发消息中的最大跳数 |
4.6 表示时间值和“无穷大”作为时间值
生存期的所有时间值,T1和T2都是无符号整数。当用作生命周期或用于T1或T2时,值0xffffffffff表示“无穷大”。
5.Client/Server信息格式
所有在客户端和服务器之间发送的DHCP消息共享相同的固定格式头和可变格式区域的选项。
名称 | 定义 |
---|---|
msg-type | 标识DHCP消息类型 |
transaction-id | 此消息交换的事务ID |
options | 此消息中携带的选项 |
6.DHCP Options
选项用于在DHCP消息中携带附加信息和参数。
6.1 DHCP Options格式
名称 | 定义 |
---|---|
option-code | 标识此选项中附带的特定选项类型 |
option-len | 选项的长度 |
option-data | 选项的数据 |
6.2 Client Identifier Option
客户端标识符选项用于携带一个DUID来标识客户端和服务器之间的客户端。
名称 | 定义 |
---|---|
option-code | OPTION_CLIENTID (1) |
option-len | DUID长度 |
DUID | client DUID |
6.3 Server Identifier Option
服务器标识符选项用于携带在客户机和服务器之间标识服务器的DUID。
名称 | 定义 |
---|---|
option-code | OPTION_SERVERID (2) |
option-len | DUID长度 |
DUID | server DUID |
6.4 Identity Association for Non-temporary Addresses Option
非临时地址的身份关联选项(IA_NA选项)用于携带IA_NA、与IA_NA关联的参数以及与IA_NA关联的非临时地址。
名称 | 定义 |
---|---|
option-code | OPTION_IA_NA (3) |
option-len | 12 + length of IA_NA-options field. |
IAID | 这个IA_NA的唯一标识符 |
T1 | 客户端与获得IA_NA地址的服务器联系以延长分配给IA_NA地址的生存期的时间;T1是相对于当前时间的持续时间,单位为秒。 |
T2 | 客户端与任何可用服务器联系以延长分配给IA_NA的地址生存期的时间;T2是相对于当前时间的持续时间,单位为秒。 |
IA_NA-options | 与这个IA_NA关联的选项 |
6.5 Identity Association for Temporary Addresses Option
临时地址的标识关联(IA_TA)选项用于携带一个IA_TA、与IA_TA相关联的参数和与IA_TA相关联的地址。客户端使用此选项中的所有地址作为临时地址。
名称 | 定义 |
---|---|
option-code | OPTION_IA_TA (4) |
option-len | 4 + length of IA_TA-options field. |
IAID | 这个IA_TA的唯一标识符; |
IA_TA-options | 与这个IA_TA关联的选项 |
6.6 IA Address Option
IA地址选项用于指定与IA_NA或IA_TA关联的IPv6地址。IA地址选项必须封装在一个IA_NA或IA_TA选项的选项字段中。Options字段封装了特定于此地址的那些选项。
名称 | 定义 |
---|---|
option-code | OPTION_IAADDR (5) |
option-len | 24 + length of IAaddr-options field |
IPv6 address | 一个IPv6 address |
preferred-lifetime | 选项中IPv6地址的首选生存期,以秒为单位表示 |
valid-lifetime | 选项中的IPv6地址的有效生存期,以秒为单位表示 |
IAaddr-options | 与此地址关联的选项 |
6.7 Option Request Option
Option Request选项用于在客户机和服务器之间的消息中标识选项列表。
名称 | 定义 |
---|---|
option-code | OPTION_ORO (6) |
option-len | 2 * number of requested options. |
requested-option-code-n | 客户端请求的选项的选项代码。 |
客户机可以在请求、请求、更新、重新绑定、确认或信息请求消息中包含一个Option Request选项,以通知服务器客户机希望服务器发送给客户机的选项。服务器可以在重新配置选项中包含选项请求选项,以指示客户机应该从服务器请求哪些选项。
6.8 Preference Option
首选项由服务器发送到客户机,以影响客户机对服务器的选择。
名称 | 定义 |
---|---|
option-code | OPTION_PREFERENCE (7) |
option-len | 1 |
pref-value | 此消息中服务器的首选项值 |
服务器可以在广告消息中包含一个首选项来控制客户机对服务器的选择,那些具有最高服务器首选项值的广告消息优于其他所有广告消息。
6.9 Elapsed Time Option
名称 | 定义 |
---|---|
option-code | OPTION_ELAPSED_TIME (8) |
option-len | 2 |
elapsed-time | 自客户端开始当前DHCP事务以来的时间。这个时间以百分之一秒(10的-2次方秒)表示。 |
客户机必须在消息中包含运行时间选项,以指示客户机尝试完成DHCP消息交换的时间。运行时间从客户机在消息交换中发送第一个消息的时间开始计算,在消息交换中的第一个消息中将运行时间字段设置为0。服务器和中继代理使用此选项中的数据值作为策略控制服务器如何响应客户机消息的输入。例如,当主服务器在合理的时间内没有响应时,运行时间选项允许辅助DHCP服务器响应请求。经过的时间值是一个无符号的16位整数。客户机使用值0xffff来表示比运行时间选项中可以表示的最大时间值大的任何运行时间值。
6.10 Relay Message Option
中继消息选项在Relay-forward或Relay-reply消息中携带DHCP消息。
名称 | 定义 |
---|---|
option-code | OPTION_RELAY_MSG (9) |
option-len | Length of DHCP-relay-message |
DHCP-relay-message | 接收到的消息逐字转发到下一个中继代理或服务器; |
6.11 Authentication Option
身份验证选项携带身份验证信息,以对DHCP消息的身份和内容进行身份验证。
名称 | 定义 |
---|---|
option-code | OPTION_AUTH (11) |
option-len | 11 + length of authentication information field |
protocol | 此身份验证选项中使用的身份验证协议 |
algorithm | 认证协议中使用的算法 |
RDM | 此身份验证选项中使用的重播检测方法 |
Replay detection | RDM的重播检测信息 |
authentication information | 身份验证信息,由此身份验证选项中使用的协议和算法指定 |
6.12 Server Unicast Option
服务器将此选项发送给客户机,以指示客户机允许向服务器单播消息。
名称 | 定义 |
---|---|
option-code | OPTION_UNICAST (12) |
option-len | 16 |
server-address | 客户端使用单播发送消息到的IP地址。 |
6.13 Status Code Option
此选项返回与出现DHCP消息或选项相关的状态指示。
名称 | 定义 |
---|---|
option-code | OPTION_STATUS_CODE (13) |
option-len | 2 + length of status-message. |
status-code | 此选项中编码的状态的数字代码。 |
status-message | 适合显示给最终用户的UTF-8编码文本字符串,不能以null结尾。 |
6.14 Rapid Commit Option
用于指示使用两个消息(如2.2上所示)交换进行地址分配。
名称 | 定义 |
---|---|
option-code | OPTION_RAPID_COMMIT (14) |
option-len | 0 |
6.15 User Class Option
客户端使用User Class选项来标识它所代表的用户或应用程序的类型或类别。
名称 | 定义 |
---|---|
option-code | OPTION_USER_CLASS (15) |
option-len | Length of user class data field. |
user-class-data | 客户机携带的用户类 |
6.16 Vendor Class Option
客户机使用此选项来标识制造客户机运行的硬件的供应商。此选项的数据区域中包含的信息包含在一个或多个标识硬件配置细节的不透明字段中。
名称 | 定义 |
---|---|
option-code | OPTION_VENDOR_CLASS (16) |
option-len | 4 + length of vendor class data field. |
enterprise-number | 供应商在IANA中注册的企业编号 |
vendor-class-data | 运行客户机的主机的硬件配置 |
6.17 Vendor-specific Information Option
客户端和服务器使用此选项来交换vendor-specific的信息。
名称 | 定义 |
---|---|
option-code | OPTION_VENDOR_OPTS (17) |
option-len | 4 + length of option-data field |
enterprise-number | 供应商在IANA中注册的企业编号 |
option-data | 由客户端和服务器上特定于供应商 |
6.18 Interface-Id Option
中继代理可以发送接口id选项来识别接收客户端消息的接口。
名称 | 定义 |
---|---|
option-code | OPTION_INTERFACE_ID (18) |
option-len | Length of interface-id field. |
interface-id | 由中继代理生成的不透明的任意长度值,用于标识中继代理的一个接口。 |
6.19 Reconfigure Message Option
服务器在重配置消息中包含一个重配置消息选项,用于向客户机指示客户机是响应更新消息还是信息请求消息。
名称 | 定义 |
---|---|
option-code | OPTION_RECONF_MSG (19) |
option-len | 1 |
msg-type | 更新消息5,信息请求消息11。 |
6.20 Reconfigure Accept Option
客户端使用Reconfigure Accept选项向服务器宣布客户端是否愿意接受Reconfigure消息,服务器使用此选项告诉客户端是否接受Reconfigure消息。如果没有此选项,客户机和服务器消息的默认行为分别意味着不愿接受重新配置消息,或指示不接受重新配置消息。
名称 | 定义 |
---|---|
option-code | OPTION_RECONF_ACCEPT (20) |
option-len | 0 |
温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!