RFC 4649

Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option

๐Ÿ“… published August 2006, from ietf

RFC 4649: Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option ๐Ÿ’–

Okay bestie, here's the deal โœจ This is RFC 4649, written by Bernard Volz of Cisco Systems, Inc. in August 2006 ๐ŸŽ€ It's on the Standards Track, so it's an actual Internet standards-track protocol spec, not just a chill FYI doc. ๐Ÿ’… The header doesn't list any RFCs it obsoletes or updates, so it's a standalone new thing ๐ŸŒธ


Status of This Memo โญ

This document specifies an Internet standards track protocol for the Internet community, and asks for discussion and suggestions for improvements. For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ๐Ÿฆ‹

Copyright (C) The Internet Society (2006).

Abstract ๐Ÿงš

This memo defines a brand new Relay Agent Remote-ID option for DHCPv6 ๐ŸŒˆ It's basically the DHCPv6 version of the Remote-ID suboption from the DHCPv4 Relay Agent Option, which is specified in RFC 3046. Iconic glow-up energy ๐Ÿ‘‘

Table of Contents ๐Ÿ“–

1. Introduction ....................................................2
2. Requirements Terminology ........................................2
3. The Relay Agent Remote-ID Option ................................2
4. DHCPv6 Relay Agent Behavior .....................................3
5. DHCPv6 Server Behavior ..........................................3
6. Security Considerations .........................................3
7. IANA Considerations .............................................4
8. Acknowledgements ................................................4
9. References ......................................................4
   9.1. Normative References .......................................4
   9.2. Informative References .....................................4

1. Introduction ๐ŸŒธ

Okay so DHCPv6 [1] is the thing that hands out IP addresses and config info to IPv6 clients ๐Ÿ’– It has a relay agent capability, where processes in the network infrastructure catch multicast messages from clients and forward them to DHCPv6 servers. Sometimes it's super useful for the relay agent to slip extra info into the DHCPv6 message before it gets relayed โœจ

That info can also help the server make choices about the addresses, the delegated prefixes [4], and the configuration parameters the client ends up getting. Main character decision-making ๐Ÿ‘‘

This memo defines the DHCPv6 version of the DHCPv4 Relay Agent option's Remote-ID suboption, which is specified in [2]. The motivation and usage scenarios for it are also in [2] ๐Ÿฆ‹

2. Requirements Terminology ๐ŸŽ€

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [3] ๐Ÿซถ

3. The Relay Agent Remote-ID Option ๐Ÿงš

This option may be added by DHCPv6 relay agents that terminate switched or permanent circuits and have mechanisms to identify the remote host end of the circuit. Like, if you're the one ending the circuit and you can tell who's on the other side, this is your moment ๐Ÿ’…

Here's what the DHCPv6 Relay Agent Remote-ID option looks like on the wire ๐ŸŒˆ

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       OPTION_REMOTE_ID        |         option-len            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       enterprise-number                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    .                                                               .
    .                           remote-id                           .
    .                                                               .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Here's what each field means ๐Ÿ“

  • option-code: OPTION_REMOTE_ID (37) ๐Ÿ”ฅ
  • option-len: 4 plus the length, in octets, of the remote-id field. The minimum option-len is 5 octets ๐Ÿ’œ
  • enterprise-number: the vendor's registered Enterprise Number, as registered with IANA [5] ๐ŸŒธ
  • remote-id: the opaque value for the remote-id ๐Ÿฆ‹

The definition of the remote-id in this option is vendor specific, and the vendor is indicated in the enterprise-number field. The remote-id can be used to encode stuff like:

  • a "caller ID" telephone number for dial-up connections ๐Ÿ“ž
  • a "user name" prompted for by a Remote Access Server ๐Ÿ™ˆ
  • a remote caller ATM address ๐ŸŒˆ
  • a "modem ID" of a cable data modem ๐Ÿ“
  • the remote IP address of a point-to-point link ๐Ÿ’–
  • a remote X.25 address for X.25 connections โœจ
  • an interface or port identifier ๐ŸŽ€

Each vendor must make sure the remote-id is unique for its enterprise-number, since the octet sequence of enterprise-number followed by remote-id must be globally unique ๐Ÿซถ One way to get there might be to include the relay agent's DHCP Unique Identifier (DUID) [1] in the remote-id. Iykyk ๐Ÿงš

4. DHCPv6 Relay Agent Behavior ๐Ÿ’…

DHCPv6 relay agents may be configured to include a Remote-ID option in relayed (RELAY-FORW) DHCPv6 messages ๐ŸŒธ

5. DHCPv6 Server Behavior ๐Ÿ‘‘

This option gives the DHCPv6 server extra info ๐Ÿ’– If the server is configured to support it, it can use this info to pick parameters for specific users, hosts, or subscriber modems โœจ

The combined enterprise-number and remote-id SHOULD be considered an opaque value, with policies based on exact string match only. In other words, the remote-id field SHOULD NOT be parsed internally by the server ๐Ÿ™ˆ

There's no requirement that a server return this option and its data in a RELAY-REPLY message ๐Ÿฆ‹

6. Security Considerations ๐Ÿ”ฅ

Okay, this section is serious, so listen up ๐Ÿ’€ See [1] section 21.1 for securing DHCPv6 messages sent between servers and relay agents, and section 23 for general DHCPv6 security considerations. [2] talks about how this information can be used to boost trust in some environments ๐Ÿซถ

Even if the DHCP server trusts the relay agent not to modify the info in this option, the confidence it can have in that info is no higher than the confidence the relay agent has in what it puts in the option. Like, the whole chain is only as strong as its weakest link ๐Ÿ˜ญ For example, in some protocols a DHCP client might be able to spoof or otherwise choose port identifiers, caller ID information, or other info carried in this option. Sites should think about that possible spoofing, and how likely it is in their environment, when deciding which uses of this option are appropriate ๐ŸŒˆ

7. IANA Considerations ๐Ÿ“

IANA has assigned the DHCPv6 option code 37 for the Relay Agent Remote-ID Option โœจ

8. Acknowledgements ๐Ÿซถ

Thanks to Michael Patrick for [2], from which Bernard liberally borrowed text ๐Ÿ’œ

9. References ๐ŸŽ€

9.1. Normative References ๐ŸŒธ

  • [1] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003. ๐Ÿ’–
  • [2] Patrick, M., "DHCP Relay Agent Information Option", RFC 3046, January 2001. ๐Ÿฆ‹
  • [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. โœจ

9.2. Informative References ๐Ÿงš

Author's Address ๐Ÿ“ฎ

Bernard Volz
Cisco Systems, Inc.
1414 Massachusetts Ave.
Boxborough, MA  01719
USA

Phone: +1 978 936 0382
EMail: volz@cisco.com

Copyright (C) The Internet Society (2006).

This document is subject to the rights, licenses and restrictions in BCP 78. Except as set forth there, the authors keep all their rights ๐Ÿ”ฅ

This document and the info in it are provided "AS IS". The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all disclaim every warranty, express or implied. That includes, but isn't limited to, any warranty that using the info here won't infringe any rights, and any implied warranties of merchantability or fitness for a particular purpose ๐Ÿ’€

Intellectual Property ๐ŸŒˆ

The IETF takes no position on the validity or scope of any Intellectual Property Rights or other rights that might be claimed to apply to implementing or using the technology in this document. It also doesn't say whether any license under those rights might be available, and it doesn't claim to have independently looked for any such rights ๐Ÿซถ Info on how rights work for RFC documents is in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, and the results of any attempt to get a general license or permission to use such proprietary rights for implementers or users of this spec can all be found in the IETF online IPR repository at http://www.ietf.org/ipr ๐Ÿ’–

The IETF invites anyone interested to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that may cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org ๐Ÿงš

Acknowledgement ๐ŸŒธ

Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA) โœจ

That's the whole RFC, bestie! ๐Ÿฆ‹๐Ÿ’œ

๐Ÿ“ฆ where this page comes from