← 资料库索引 ← 官方文档 原始链接 ↗ 🔍
官方文档

基于 UUID 的 DHCPv6 唯一标识符(DUID-UUID)定义(RFC 6355) 原文标题:

发表时间:2011-08-01采集时间:2026-10-09 10:58:19来源:www.rfc-editor.org原文语言:en状态:抽取受限

内容概要总结

本文是 IETF 标准轨道文档 RFC 6355,定义了一种新的 DHCPv6 唯一标识符类型 DUID-UUID,即把已标准化的 UUID(RFC 4122)内嵌进 DHCPv6 的 DUID。文档说明:DHCPv6 用 DUID 标识客户端和服务器,此前已有 DUID-LLT、DUID-EN、DUID-LL 三种类型;但在多步网络引导(固件逐步加载镜像)场景中,这些类型无法保证各引导阶段使用同一 DUID,故引入基于 UUID 的第四种类型(DUID-Type 值为 4,UUID 占 128 位)。文档要求所选 UUID 必须在系统重启、重配置、系统升级/重装之间保持持久,且能被引导过程中所有 DHCP 协议代理访问(例如系统固件中的 UUID)。安全考量指出:DHCP 流量明文传输,路径上的窃听者可获取机器 UUID,但这并非该新 DUID 类型引入的新问题。对设备标识主题而言,本文提供了"用现成 UUID 作为设备标识嵌入网络协议"的标准化范例与持久性要求。

(说明:原引用链接 datatracker.ietf.org/doc/html/rfc6355 直连返回 403,本文取自 rfc-editor.org 的同一 RFC 官方版本。)

翻译内容

原文内容(English)

⚠ 说明:原引用链接为 datatracker.ietf.org/doc/html/rfc6355,直连返回 403(Cloudflare 反爬拦截),改用 IETF 官方同一 RFC 的 HTML 版本 https://www.rfc-editor.org/rfc/rfc6355.html,内容与 datatracker 版一致。

互联网工程任务组(IETF) T. Narten
请求注释(Request for Comments):6355 J. Johnson
类别:标准轨道(Standards Track) IBM
ISSN:2070-1721 2011 年 8 月

基于 UUID 的 DHCPv6 唯一标识符(DUID-UUID)定义

摘要

本文定义了一种新的 DHCPv6 唯一标识符(DHCPv6 Unique Identifier,DUID)类型,称为 DUID-UUID。DUID-UUID 派生自已标准化的通用唯一标识符(Universally Unique IDentifier,UUID)格式。DUID-UUID 使设备能够使用 UUID 向 DHCP 服务器标识自身,反之亦然。UUID 是全球唯一的,并且在许多系统上现成可用,因此是在 DHCP 内部加以利用的便捷标识符。

本文档状态

本文档为互联网标准轨道文档。

本文档是互联网工程任务组(IETF)的产物。它代表 IETF 社区的共识。它已经过公开评审,并已获得互联网工程指导组(IESG)批准发布。有关互联网标准的更多信息可在 RFC 5741 第 2 节中找到。

有关本文档当前状态、任何勘误以及如何提供反馈的信息,可在 http://www.rfc-editor.org/info/rfc6355 获取。

版权声明

版权所有(c)2011 IETF Trust 及被认定为本文档作者的人员。保留所有权利。

本文档受 BCP 78 及《IETF 文件相关信托法律条款》(http://trustee.ietf.org/license-info)约束,其效力以本文档发布之日为准。请仔细阅读这些文档,因为它们描述了您对本文档的权利与限制。从本文档中提取的代码组件必须包含《信托法律条款》第 4.e 节所述的 Simplified BSD License 文本,并且按《Simplified BSD License》所述不提供任何担保。

目录

  1. 引言 . . . 2
  2. 背景 . . . 2
  3. UUID 考量 . . . 3
  4. DUID-UUID 格式 . . . 4
  5. 致谢 . . . 4
  6. IANA 考量 . . . 5
  7. 安全考量 . . . 5
  8. 参考文献 . . . 5

8.1. 规范性参考文献 . . . 5
8.2. 资料性参考文献 . . . 5

1. 引言

DHCP 唯一标识符(DHCP Unique Identifiers,DUID)在 DHCPv6 中用于标识客户端和服务器。本文定义了一种新的 DHCP 唯一标识符(DUID)类型,它内嵌了一个通用唯一标识符(UUID)[RFC4122]。UUID 已被广泛使用,可作为 DHCPv6 可利用的一种既有标识符。例如,基于 x86 的系统在固件中内置了一个 UUID,设备上运行的软件可随时访问它。虽然 DUID 对 DHCPv6 而言是新的,但通过 UUID 在 DHCP 中标识客户端并非新事物。DHCPv4 [RFC2132] 定义了客户端机器标识符选项(Client Machine Identifier Option,选项 97),它内嵌了一个 UUID(又称全局唯一标识符 GUID)[RFC4578]。本文将该能力扩展到 DHCPv6。

本文使用的 IPv6 与 DHCPv6 专用术语,按 [RFC3315] 的“术语(Terminology)”各节所定义。

2. 背景

在 DHCPv6 中,客户端通过 DHCP 唯一标识符(DUID)[RFC3315] 向服务器标识自身。DUID 是 DHCP 服务器视为无内部结构的不透明对象的标识符。DUID 旨在全局唯一,没有任何两台设备使用相同的 DUID。此前已定义了三种 DUID 类型:

  • DUID-LLT —— 设备某个网络接口的链路层地址,与一个时间戳拼接
  • DUID-EN —— 一个企业编号(Enterprise Number)加上该企业特定的附加信息
  • DUID-LL —— 设备某个网络接口的链路层地址

DUID 旨在随时间保持不变,从而可用作设备的永久标识符。对于 DUID-LLT,它们旨在只生成一次,存入稳定存储,并从那一刻起重复使用。

已经出现的一个问题涉及采用多步网络引导加载的设备。初始步骤(通常从固件运行)加载一个小镜像,该镜像又加载第二个镜像,依此类推,直到加载真正的目标系统。引导过程中的每一步都可能调用 DHCP。在某些运行环境中,序列中的每一步都使用相同的 DUID 非常重要,这样服务器就知道它接收到的是来自同一设备的请求,并能返回正确的配置信息(包括指向要加载的正确镜像的指针)。

遗憾的是,此前定义的 DUID 没有一种对多步网络引导是理想的。给定设备可能使用的 DUID-LLT 和 DUID-LL 标识符并不保证在每个引导步骤之间保持恒定。即使不同阶段使用 DUID-LL 或 DUID-LLT,在多接口设备上也无法保证会选择同一个接口(因而同一个 DUID)。最后,对于 DUID-LLT,即使选择了同一个接口,也很难确保每个阶段使用相同的时间戳值。虽然可以定义并使用 DUID-EN,但这种用法按定义就是专有的。

本文定义了一种新的 DUID 类型,它基于通用唯一标识符(UUID)[RFC4122]。UUID 在实践中已被使用,可作为 DHCP 可利用的一种既有标识符。在某些环境中,基于 UUID 的 DUID 优于其他既有 DUID 类型。

应当指出,仅使用 DUID-UUID 本身并不能解决本文所述的所有网络引导问题。即便有了合适的 DUID-UUID,实现者仍需要采取措施,以确保所有引导阶段都酌情使用相同的 DUID-UUID。鉴于 DHCP 已经定义了多种 DUID 类型,从多个 DUID 中选择哪一个的问题本就存在,而定义一种新的 DUID 类型本身并不能帮助解决这一问题。不过,相信网络引导服务可以被配置为使用 DUID-UUID,其他软件也能如此。确保这一点普遍发生超出了本文档的范围。

3. UUID 考量

尽管当今有许多 UUID 在使用,但并非所有 UUID 都满足 DHCP 的要求(见 [RFC3315] 第 9 节)。DHCP 的 UUID 应当在系统重启、系统重配置事件、系统软件与操作系统升级或重装之间保持持久,并且能方便地被引导过程中任何需要访问该 DHCP UUID 的部分获取。例如,Microsoft 的组件对象模型(COM)中使用的 UUID,以及用于标注文件系统分区的 UUID,很可能并不合适,因为它们可能无法被固件引导加载程序访问,并且可能随时间变化。

使用 DUID-UUID 的本规范实现必须选择一个在系统重启与重配置事件之间保持持久、且可被所有可能需要标识自身的 DHCP 协议代理获取的 UUID。例如,作为系统固件一部分、或由系统固件管理的 UUID,满足这一要求。

4. DUID-UUID 格式

DUID-UUID 承载于客户端标识符(Client Identifier)或服务器标识符(Server Identifier)选项内。其格式如下:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        DUID-Type (4)          |        UUID (128 bits)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                |
|                                                                |
|                                                                |
|                                                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图 1:DUID-UUID 格式

  • DUID-Type —— DUID-UUID(4)——(16 位)
  • UUID —— 一个 [RFC4122] UUID(128 位)

5. 致谢

本文档的灵感来自 2009 年 11 月 DHC 邮件列表中关于 IPv6 网络引导(netboot)主题的一次讨论。具体而言,讨论中描述了一些场景,其中在 DHCPv6 中做某件在 DHCPv4 中运作良好的事情变得困难。

我们要特别感谢以下人士就本文档提出的具体评论和建议:Thomas Huth、Andre Kostur、Stephen Jacob、Suresh Krishnan、Ted Lemon、Bernie Volz 和 Vincent Zimmer。

6. IANA 考量

IANA 已分配值 4 供 DHCPv6 DUID-UUID 类型使用。

7. 安全考量

客户端与服务器之间的 DHCP 流量以明文发送。位于客户端与服务器之间路径上的窃听者可以看到 DHCP 流量并获取某台机器的 UUID。这可能引发一些隐私问题,但并非由本文档定义的 DUID 类型的使用所带来的新问题。

8. 参考文献

8.1. 规范性参考文献
  • [RFC2132] Alexander, S. 与 R. Droms,"DHCP Options and BOOTP Vendor Extensions",RFC 2132,1997 年 3 月。
  • [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C. 与 M. Carney,"Dynamic Host Configuration Protocol for IPv6 (DHCPv6)",RFC 3315,2003 年 7 月。
  • [RFC4122] Leach, P., Mealling, M. 与 R. Salz,"A Universally Unique IDentifier (UUID) URN Namespace",RFC 4122,2005 年 7 月。
8.2. 资料性参考文献
  • [RFC4578] Johnston, M. 与 S. Venaas,"Dynamic Host Configuration Protocol (DHCP) Options for the Intel Preboot eXecution Environment (PXE)",RFC 4578,2006 年 11 月。

作者地址

Thomas Narten
IBM
EMail: narten@us.ibm.com

Jarrod B. Johnson
IBM
EMail: jarrod.b.johnson@gmail.com

Internet Engineering Task Force (IETF) T. Narten
Request for Comments: 6355 J. Johnson
Category: Standards Track IBM
ISSN: 2070-1721 August 2011
 Definition of the UUID-Based DHCPv6 Unique Identifier (DUID-UUID)
Abstract
 This document defines a new DHCPv6 Unique Identifier (DUID) type
 called DUID-UUID. DUID-UUIDs are derived from the already-
 standardized Universally Unique IDentifier (UUID) format. DUID-UUID
 makes it possible for devices to use UUIDs to identify themselves to
 DHC servers and vice versa. UUIDs are globally unique and readily
 available on many systems, making them convenient identifiers to
 leverage within DHCP.
Status of This Memo
 This is an Internet Standards Track document.
 This document is a product of the Internet Engineering Task Force
 (IETF). It represents the consensus of the IETF community. It has
 received public review and has been approved for publication by the
 Internet Engineering Steering Group (IESG). Further information on
 Internet Standards is available in [Section 2 of RFC 5741](https://www.rfc-editor.org/rfc/rfc5741#section-2).
 Information about the current status of this document, any errata,
 and how to provide feedback on it may be obtained at
 [http://www.rfc-editor.org/info/rfc6355](http://www.rfc-editor.org/info/rfc6355).
Copyright Notice
 Copyright (c) 2011 IETF Trust and the persons identified as the
 document authors. All rights reserved.
 This document is subject to [BCP 78](https://www.rfc-editor.org/bcp/bcp78) and the IETF Trust's Legal
 Provisions Relating to IETF Documents
 ([http://trustee.ietf.org/license-info](http://trustee.ietf.org/license-info)) in effect on the date of
 publication of this document. Please review these documents
 carefully, as they describe your rights and restrictions with respect
 to this document. Code Components extracted from this document must
 include Simplified BSD License text as described in Section 4.e of
 the Trust Legal Provisions and are provided without warranty as
 described in the Simplified BSD License.
Narten & Johnson Standards Track [Page 1]
[RFC 6355](https://www.rfc-editor.org/rfc/rfc6355) DUID-UUID August 2011
Table of Contents
 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 2
 3. UUID Considerations . . . . . . . . . . . . . . . . . . . . . . 3
 4. DUID-UUID Format . . . . . . . . . . . . . . . . . . . . . . . 4
 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 4
 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
 7. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5
 8.1. Normative References . . . . . . . . . . . . . . . . . . . 5
 8.2. Informative Reference . . . . . . . . . . . . . . . . . . . 5
1. Introduction
 DHCP Unique Identifiers (DUIDs) are used in DHCPv6 to identify
 clients and servers. This document defines a new DHCP Unique
 Identifier (DUID) type that embeds a Universally Unique IDentifier
 (UUID) [[RFC4122](https://www.rfc-editor.org/rfc/rfc4122)]. UUIDs are already in widespread use and serve as
 an existing identifier that could be leveraged by DHCPv6. For
 example, x86-based systems ship with an embedded UUID in firmware
 that is readily available to the software running on the device.
 Although DUIDs are new to DHCPv6, identifying clients in DHCP via a
 UUID is not. DHCPv4 [[RFC2132](https://www.rfc-editor.org/rfc/rfc2132)] defines a Client Machine Identifier
 Option (option 97) that embeds a UUID (aka a Globally Unique
 Identifier (GUID)) [[RFC4578](https://www.rfc-editor.org/rfc/rfc4578)]. This document extends that capability
 to DHCPv6.
 Terminology specific to IPv6 and DHCPv6 is used as defined in the
 "Terminology" sections of [[RFC3315](https://www.rfc-editor.org/rfc/rfc3315)].
2. Background
 In DHCPv6, clients identify themselves to servers via DHCP Unique
 Identifiers (DUIDs) [RFC3315]. DUIDs are identifiers that DHCP
 servers treat as opaque objects with no internal structure. DUIDs
 are intended to be globally unique, with no two devices using the
 same DUID. Three DUIDs types have been defined previously:
 DUID-LLT - the Link-Layer address of one of the device's network
 interfaces, concatenated with a timestamp
 DUID-EN - an Enterprise Number plus additional information specific
 to the enterprise
 DUID-LL - the Link-Layer address of one of the device's network
 interfaces
Narten & Johnson Standards Track [Page 2]
RFC 6355 DUID-UUID August 2011
 DUIDs are intended to remain constant over time, so that they can be
 used as permanent identifiers for a device. In the case of DUID-
 LLTs, they are intended to be generated once, stored in stable
 storage, and reused from that point forward.
 One issue that has arisen concerns devices that employ multi-step
 network boot loading. An initial step (typically run out of
 firmware) loads a small image that, in turn, loads a second image and
 so forth until the actual target system is loaded. Each step in the
 booting process may invoke DHCP. In some operational environments,
 it is important that each step in the sequence use the same DUID, so
 that the server knows it is getting requests from the same device and
 can return the proper configuration information (including the
 pointer to the correct image to load).
 Unfortunately, none of the previously defined DUIDs are ideal for
 multi-step network booting. The DUID-LLT and DUID-LL identifiers
 that a given device may use are not guaranteed to remain constant
 across each booting step. Even if the different stages used DUID-LL
 or DUID-LLT, on devices with multiple interfaces, there is no way to
 guarantee that the same interface (and hence DUID) will be selected.
 Finally, in the case of DUID-LLT, even if the same interface is
 chosen, it can be difficult to ensure that each stage uses the same
 timestamp value. While a DUID-EN could be defined and used, such
 usage is proprietary by definition.
 This document defines a new DUID type, based on the Universally
 Unique IDentifier (UUID) [RFC4122]. UUIDs are already used in
 practice and serve as an existing identifier that could be leveraged
 by DHCP. In some environments, a UUID-based DUID is preferable to
 the other existing DUID types.
 It should be noted that use of a DUID-UUID will not, by itself, solve
 all the network boot problems described in this document. Given the
 availability of a suitable DUID-UUID, implementations will still need
 to take steps to ensure that all boot stages use the same DUID-UUID
 as appropriate. Given that DHCP has already defined multiple DUID
 types, the question of which of several DUIDs to select from already
 exists, and defining a new DUID type does not, by itself, help. It
 is believed, however, that network boot services can be configured to
 use a DUID-UUID and that other software can do so as well. Ensuring
 this happens in general is beyond the scope of this document.
3. UUID Considerations
 Although many UUIDs are in use today, not all UUIDs meet DHCP's
 requirements (see [Section 9 of [RFC3315]](https://www.rfc-editor.org/rfc/rfc3315#section-9)). DHCP UUIDs should be
 persistent across system restarts, system reconfiguration events,
Narten & Johnson Standards Track [Page 3]
RFC 6355 DUID-UUID August 2011
 system software and operating system upgrades or reinstallation as
 well as be easily available to any part of the boot process that
 requires access to the DHCP UUID. For example, UUIDs used in
 Microsoft's Component Object Module (COM), and for labeling
 partitions in filesystems, are likely not appropriate as they may not
 be accessible to firmware boot loaders and can change over time.
 Implementations of this specification using DUID-UUID must select a
 UUID that is persistent across system restart and reconfiguration
 events and that is available to all DHCP protocol agents that may
 need to identify themselves. For instance, a UUID that is part of
 the system firmware, or managed by the system firmware, satisfies
 this requirement.
4. DUID-UUID Format
 The DUID-UUID is carried within Client Identifier or Server
 Identifier options. It has the following format:
 0 1 2 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | DUID-Type (4) | UUID (128 bits) |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
 | |
 | |
 | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Figure 1: DUID-UUID Format
 DUID-Type - DUID-UUID (4) - (16 bits)
 UUID - An [RFC4122] UUID (128 bits)
5. Acknowledgements
 This document was inspired by a discussion on the DHC mailing list in
 November 2009 on the topic of netboot for IPv6. Specifically, some
 scenarios were described where it was difficult to do something in
 DHCPv6 that had worked well in DHCPv4.
 We would like to thank the following individuals in particular for
 their specific comments and suggestions on this document: Thomas
 Huth, Andre Kostur, Stephen Jacob, Suresh Krishnan, Ted Lemon, Bernie
 Volz, and Vincent Zimmer.
Narten & Johnson Standards Track [Page 4]
RFC 6355 DUID-UUID August 2011
6. IANA Considerations
 IANA has assigned the value 4 for use by the DHCPv6 DUID-UUID type.
7. Security Considerations
 DHCP traffic between a client and server is sent in the clear. An
 eavesdropper residing on the path between the client and server could
 see DHCP traffic and obtain the UUID for a particular machine. This
 may raise some privacy issues but is not a new issue brought on by
 the use of the DUID type defined in this document.
8. References
8.1. Normative References
 [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
 Extensions", [RFC 2132](https://www.rfc-editor.org/rfc/rfc2132), March 1997.
 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
 and M. Carney, "Dynamic Host Configuration Protocol for
 IPv6 (DHCPv6)", [RFC 3315](https://www.rfc-editor.org/rfc/rfc3315), July 2003.
 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
 Unique IDentifier (UUID) URN Namespace", [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122),
 July 2005.
8.2. Informative Reference
 [RFC4578] Johnston, M. and S. Venaas, "Dynamic Host Configuration
 Protocol (DHCP) Options for the Intel Preboot eXecution
 Environment (PXE)", [RFC 4578](https://www.rfc-editor.org/rfc/rfc4578), November 2006.
Authors' Addresses
 Thomas Narten
 IBM
 EMail: narten@us.ibm.com
 Jarrod B. Johnson
 IBM
 EMail: jarrod.b.johnson@gmail.com
Narten & Johnson Standards Track [Page 5]