RFC 6276
DHCPv6 Prefix Delegation for Network Mobility (NEMO)
RFC 6276: DHCPv6 Prefix Delegation for Network Mobility (NEMO) ๐
okay bestie, this one is all about giving mobile routers prefixes using DHCPv6 prefix delegation ๐ง It's an Internet Standards Track doc from July 2011 (ISSN 2070-1721), and it's written by Droms (Cisco), Thubert (Cisco), Dupont (Internet Systems Consortium), Haddad (Ericsson), and Bernardos (UC3M). The header doesn't list anything it obsoletes or updates, so it stands on its own ๐
Abstract
okay so the big idea is that network mobility needs a way to hand a prefix (or several) to a mobile router so the links in its mobile network can use them ๐ This doc says how DHCPv6 prefix delegation can do that job. The mobile router is the requesting router, and the home agent is the delegating router ๐ When the mobile router is away from home, it also acts as a DHCPv6 relay agent, living right next to its requesting router function ๐ฆ
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.
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/rfc6276.
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 and the IETF Trust's Legal Provisions Relating to IETF Documents (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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. DHCPv6 Prefix Delegation of Mobile Network Prefixes . . . . . 4
3.1. Exchanging DHCPv6 Messages When the Mobile Router Is
Not at Home . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1. Relay Agent Configuration . . . . . . . . . . . . . . 7
3.1.2. Transmission of DHCPv6 Messages . . . . . . . . . . . 8
3.1.3. Receipt of DHCPv6 Messages . . . . . . . . . . . . . . 8
3.2. Exchanging DHCPv6 Messages When the Mobile Router Is
at Home . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. Selecting a Home Agent That Provides DHCPv6PD . . . . . . 9
3.4. Minimizing DHCPv6PD Messages . . . . . . . . . . . . . . . 10
3.5. Other DHCPv6 Functions . . . . . . . . . . . . . . . . . . 10
4. Security Considerations . . . . . . . . . . . . . . . . . . . 10
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.1. Normative References . . . . . . . . . . . . . . . . . . . 12
6.2. Informative References . . . . . . . . . . . . . . . . . . 13
1. Introduction โจ
okay so network mobility support needs a prefix (or prefixes) handed to a mobile router for the links in Network Mobility (NEMO) ๐ DHCPv6 prefix delegation (DHCPv6PD) [RFC3633] is the tool for that job, and it's giving reliable ๐
Here's how the DHCPv6PD model works [RFC3633]. A delegating router is given IPv6 prefixes to hand out to requesting routers ๐ A requesting router asks the delegating router for prefix(es). The delegating router picks the prefix(es) it's going to delegate and replies with them to the requesting router. After that, the requesting router is the one responsible for the delegated prefix(es) ๐ซถ Also, the DHCPv6 options for prefix delegation in [RFC3633] were designed for general use across routers, not just for mobile routers running the NEMO Basic Support protocol [RFC3963] ๐
So to use DHCPv6PD as a prefix assignment mechanism in mobile networks: when the mobile router is at home, the home agent is the delegating router and the mobile router is the requesting router โจ But when the mobile router is away from home, it still has those same roles, and it also takes on the role of a DHCPv6 relay agent that sits right next to its requesting router function ๐ฆ
The DHCPv6PD server running at the home agent gets provisioned with prefixes using any of the prefix assignment mechanisms described in the DHCPv6PD specification [RFC3633] ๐
2. Terminology ๐
okay the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in RFC 2119 [RFC2119] ๐ฅ
these terms are defined in the IPv6 Addressing Architecture document [RFC4291]:
- Link-Local Unicast address
- Link-Local Scope Multicast address
these terms are defined in the Mobile IPv6 specification [RFC6275]:
- Home Agent (HA)
- Home Link
- Home Address (HoA)
- Care-of Address (CoA)
- Binding Update (BU)
- Binding Acknowledgement (BA)
these terms are defined in the Mobile Network terminology document [RFC4885]:
- Mobile Router (MR)
- Mobile Network (NEMO)
- Mobile Network Prefix (MNP)
these terms are defined in the DHCPv6 [RFC3315] and DHCPv6 prefix delegation [RFC3633] specifications:
- Delegating Router (DR; acts as a DHCPv6 server)
- Requesting Router (RR; acts as a DHCPv6 client)
- DHCPv6 Relay Agent (DRA)
and this is the one acronym used here:
- DHCPv6PD: DHCPv6 Prefix Delegation
3. DHCPv6 Prefix Delegation of Mobile Network Prefixes ๐ง
okay the NEMO Basic Support protocol [RFC3963] extends Mobile IPv6 [RFC6275] to support network mobility ๐ธ With NEMO Basic Support, a mobile router uses Mobile IPv6 to set up and keep a session with its home agent. It also uses bidirectional tunneling between itself and the home agent, which gives nodes on the mobile network a path to keep talking to nodes outside the NEMO ๐ฆ
The Network Mobility requirements [RFC4885] include the mobile router being able to receive delegated prefixes that can then be given to links in the mobile network. DHCPv6PD can meet that requirement for prefix delegation ๐
For mobile networks, when the mobile router is at home, the home agent is the delegating router and the mobile router is the requesting router ๐ When the mobile router is away from home, it keeps those roles and also acts as a DHCPv6 relay agent right alongside its requesting router function โจ
When the mobile router isn't at home, the home agent and the mobile router swap DHCPv6PD protocol messages as specified in [RFC6275] ๐ซถ That means messages sent by the mobile router MUST include the Home Address destination option, and messages sent by the home agent MUST make use of a Routing Header type 2 ๐ฅ Check out Figure 1 for the deployment topologies, both when the MR is at home and when it's visiting a foreign network ๐บ๏ธ
------ ------
| MR |----------------| HA |
|(RR)| (home network) |(DR)|
------ ------
------- /-----------\ ------
| MR |----| Internet |-----| HA |
|(RR) | \-----------/ |(DR)|
|(DRA)| ------
-------
(visited network)
Figure 1: Deployment topologies of the use of DHCPv6PD for delegation of Mobile Network Prefixes
The DHCPv6PD server gets provisioned with prefixes using any of the prefix assignment mechanisms described in the DHCPv6PD specifications. Any other updates to the home agent's data structures that are needed as a side effect of prefix delegation are specified by the particular network mobility protocol ๐ For example, with NEMO Basic Network Mobility Support [RFC3963], the HA adds an entry to its binding cache that registers the delegated prefix to the mobile router it was delegated to ๐
3.1. Exchanging DHCPv6 Messages When the Mobile Router Is Not at Home โ๏ธ
okay so this part is about when the mobile router is away from home ๐งณ. Section 3.2 covers the other case, when it's chilling on its home link ๐๏ธ.
the mobile router MUST register at the home agent first (aka send a Binding Update to the home agent) before it starts any DHCPv6 prefix delegation chat ๐. it MUST use implicit BU signaling, because it might not have requested any prefixes yet ๐.
if the mobile router has no active delegated prefixes (the ones with unexpired leases) ๐ฅฒ, it MUST start with a DHCPv6 Solicit message, as described in Section 17 of [RFC3315] and Section 11.1 of [RFC3633]. the delegating router at the home agent replies with an Advertise message. then the mobile router MUST request a set of prefixes by sending a Request message. the delegating router puts the delegated prefixes in a Reply message ๐ฌ.
here's the plot twist ๐ญ: the mobile router already sent its Binding Update without knowing which prefixes it can use as mobile network prefixes. so the home agent, when it gets that implicit Binding Update, MUST pick the prefixes that will be delegated to the mobile router via DHCPv6PD (unless they were already pre-configured) ๐ง. and once the DHCPv6 signaling is finished, the home agent MUST add an entry to its binding cache that includes the delegated prefixes ๐ .
now, if the mobile router already has one or more active delegated prefixes ๐ธ, like when it reboots or when its mobile network prefix(es) are about to expire, it MUST start a DHCPv6 message exchange with a DHCPv6 Rebind message, as described in Section 18.1.2 of [RFC3315] and Section 12.1 of [RFC3633].
a DHCPv6 relay agent function [RFC3315] MUST be used at the mobile router ๐ซถ. this relay agent is co-located in the mobile router with the DHCPv6 client function (see Figure 2). the DHCPv6 signaling between the mobile router and the home agent goes from the relay agent in the mobile router to the DHCPv6 server on the home agent. DHCPv6 messages from the mobile router to the home agent are unicast packets, sent from the mobile router's unicast home address to the home agent's global unicast address. so the Home Address destination option MUST be used ๐. DHCPv6 replies from the home agent to the mobile router MUST be sent using the Routing Header type 2, as specified in [RFC6275]. the DHCPv6 client in the mobile router MUST hand any outbound DHCPv6 messages to the co-located relay agent ๐ฎ. replies from the DHCPv6 server come back to the relay agent function in the mobile router, which MUST extract the encapsulated message and deliver it to the DHCPv6 client in the mobile router ๐.
----------------------------- --------
| MR | | HA |
| (RR) (DRA) | | (DR) |
---------------------------- --------
| | Binding Update |
| |------------------------>|
| | (HoA, CoA) |
| | |
| | Binding Ack |
| |<------------------------|
| | |
| DHCPv6 Solicit | DHCPv6 Solicit |
|..................>|--=====================->|
| | |
| DHCPv6 Advertise | DHCPv6 Advertise |
|<..................|<-=====================--|
| | |
| DHCPv6 Request | DHCPv6 Request |
|..................>|--=====================->|
| | |
| DHCPv6 Reply | DHCPv6 Reply |
|<..................|<-=====================--|
| | (Mobile Network Prefix) |
| | |
Figure 2: Signaling sequence when the mobile router is not at home ๐
quick note ๐ค: a mobile router using DHCPv6PD to get its mobile network prefixes can't derive its home address from one of those prefixes. it doesn't know them until it has registered with the home agent. so the mobile router MUST assign its home address from the prefix on its Home Link ๐ก.
3.1.1. Relay Agent Configuration ๐ ๏ธ
the mobile router's relay agent is what lets it unicast DHCPv6 messages to the DHCPv6 server ๐จ. the relay agent MUST be configured with the address of the DHCPv6 server. for this spec, the relay agent assumes the home agent for the mobile router hosts the DHCPv6 server. so the mobile router MUST configure the DHCPv6 relay agent to forward DHCPv6 messages to the home agent ๐ โจ.
DHCPv6 does support unicast between client and server in some scenarios ๐. but it's kinda messy here, because the client first has to receive a Server Unicast option (Section 22.12 of [RFC3315]) from the server, which means a Solicit/Advertise exchange has to happen first. that exchange would need a relay agent on the mobile router anyway, so there's basically no gain from using the Server Unicast option in this case ๐.
3.1.2. Transmission of DHCPv6 Messages ๐ค
when the DHCPv6 client in the mobile router sends a message, it MUST hand it to the DHCPv6 relay agent in the mobile router ๐. how that handoff happens is out of scope for this document. the relay agent wraps the client's message in a Relay-forward message according to [RFC3315] and sends it to the home agent. the relay agent fills in the Relay-forward message like this:
msg-type RELAY-FORW
hop-count 1
link-address The home address of the mobile router
peer-address The home address of the mobile router
options MUST include a "Relay Message option" [RFC3315]; MAY
include other options added by the relay agent.
3.1.3. Receipt of DHCPv6 Messages ๐ฅ
messages from the DHCPv6 server come back to the DHCPv6 relay agent ๐ซ. the message meant for the DHCPv6 client is wrapped in the Relay Message option [RFC3315] inside a Relay-reply message. the relay agent function MUST pull the client's message out of the Relay Message option and hand it to the DHCPv6 client in the mobile router ๐งโโ๏ธ. how it gets passed to the client is also out of scope here.
3.2. Exchanging DHCPv6 Messages When the Mobile Router Is at Home ๐ก
when the mobile router is on its home link, the home agent MUST use that home link to swap DHCPv6PD messages with the mobile router (Figure 3) ๐ซง. in this case, the DHCPv6 co-located relay function MUST be disabled. figuring out when the mobile router is on its home link is up to the implementation ๐คทโโ๏ธ. the Home Link Detection mechanism is described in Section 11.5.2 of [RFC6275].
-------- --------
| MR | | HA |
| (RR) | | (DR) |
-------- --------
| |
| DHCPv6 Solicit |
|------------------------>|
| |
| DHCPv6 Advertise |
|<------------------------|
| |
| DHCPv6 Request |
|------------------------>|
| |
| DHCPv6 Reply |
|<------------------------|
| (Mobile Network Prefix) |
| |
Figure 3: Signaling sequence for the case the home agent is at home ๐
3.3. Selecting a Home Agent That Provides DHCPv6PD ๐
not every node that's willing to be a home agent is required to provide DHCPv6PD ๐ฅบ. so when a mobile router picks a home agent, a mobile router that needs DHCPv6PD service MUST find a home agent that will provide it ๐ฏ. the mobile router can check if a home agent provides DHCPv6PD by starting a DHCPv6 message exchange (basically sending a Solicit message) where it asks for delegated prefix(es) ๐. if the home agent doesn't respond, or responds but doesn't delegate any prefix(es), the mobile router assumes that home agent doesn't provide DHCPv6PD service ๐ โโ๏ธ. the mobile router keeps querying every candidate home agent until it finds one that does. also, if the mobile router is away from home in this case, it has to have already done a Mobile IPv6 registration with the home agent it's querying ๐.
querying a home agent to see if it provides DHCPv6PD needs different operational variables than the DHCPv6 spec recommends ๐ง. [RFC3315] says that under normal circumstances a host keeps sending DHCPv6 Solicit messages until it gets a response (see Section 17 of [RFC3315]). that means the Maximum Retransmission Duration (MRD) and Maximum Retransmission Count (MRC) are both set to zero. but a home agent might never respond to the mobile router's Solicit messages, because it doesn't support DHCPv6 prefix delegation ๐. so when querying a home agent to see if it provides DHCPv6PD service, it is RECOMMENDED that MRD and MRC be set to non-zero values. that way the mobile router stops sending Solicit messages to that home agent after sending 6 of them, and concludes the home agent won't provide DHCPv6PD service ๐. sending 6 queries gives enough reliability for when the wireless connection drops for a short time after the first Binding Update message ๐ถ.
it is RECOMMENDED that the mobile router probes the home agents for DHCPv6PD service sequentially ๐ช.
3.4. Minimizing DHCPv6PD Messages โก
DHCPv6PD in a mobile network can be combined with the Rapid Commit option [RFC3315] to do prefix delegation with a two-message exchange between the mobile router and the DHCPv6PD delegating router. fewer messages, more slay ๐ โจ.
3.5. Other DHCPv6 Functions ๐
the DHCPv6 messages exchanged between the mobile router and the home agent MAY also be used for other DHCPv6 functions, not just DHCPv6PD ๐งฉ. for example, the home agent MAY assign global addresses to the mobile router, and MAY pass other configuration info, like a list of available DNS recursive name servers [RFC3646], using the same DHCPv6 messages it uses for DHCPv6PD ๐.
the home agent MAY also act as a DHCPv6 relay agent for mobile nodes while it's acting as a delegating router for mobile routers ๐.
4. Security Considerations ๐
okay so security is literally the main character here, bestie ๐ญ This doc is about using DHCPv6 for prefix delegation in mobile networks. On top of the security stuff in the DHCPv6 base spec [RFC3315] and the DHCPv6 Prefix Delegation spec [RFC3633], there are two aspects we need to think about ๐
First up, NEMO Basic Support says the home agent has to stop a mobile router from claiming mobile network prefixes that belong to another mobile router ๐ โโ๏ธ So when the home agent gets an implicit Binding Update from a mobile router, it MUST only add prefixes into that router's Binding Cache Entry if the router has a valid DHCPv6 Prefix Delegation lease for those prefixes. If the mobile router doesn't have a valid DHCPv6 Prefix Delegation lease, the home agent MUST NOT add any prefixes into the mobile router's Binding Cache Entry. Once the mobile router gets a valid DHCPv6 Prefix Delegation lease for a given set of prefixes, the home agent MUST add those prefixes to the mobile router's Binding Cache Entry. This way the home agent doesn't end up forwarding traffic to prefixes that haven't been delegated to the mobile router yet ๐
The DHCPv6 stuff in this doc needs message integrity protection and source authentication, no cap ๐ When the mobile router is at home, normal DHCPv6 operation is used between the mobile router and the home agent, so this spec doesn't add any new security issue โจ But while the mobile router is away from home, the IPsec security mechanism mandated by Mobile IPv6 [RFC3776] MUST be used to secure the DHCPv6 signaling ๐ก๏ธ Next we go over the Security Policy Database (SPD) and Security Association Database (SAD) entries you need to protect the DHCPv6 signaling. We use the same format as [RFC4877]. The SPD and SAD entries are only example configurations, so a mobile router implementation and a home agent implementation could configure different SPD and SAD entries, as long as they still provide the required security of the DHCPv6 signaling messages ๐ธ
For the examples in this doc, we're assuming a mobile router with home address "home_address_1" and a home agent with address "home_agent_1" ๐ง If the home address of the mobile router changes, the SPD and SAD entries need to be re-created or updated for the new home address. Be careful with this one, it's giving "easy to forget" ๐
mobile router SPD-S:
- IF local_address = home_address_1 &
remote_address = home_agent_1 & proto = UDP &
local_port = any & remote_port = DHCP
Then use SA1 (OUT) and SA2 (IN)
mobile router SAD:
- SA1(OUT, spi_a, home_agent_1, ESP, TRANSPORT):
local_address = home_address_1 &
remote_address = home_agent_1 &
proto = UDP & remote_port = DHCP
- SA2(IN, spi_b, home_address_1, ESP, TRANSPORT):
local_address = home_agent_1 &
remote_address = home_address_1 &
proto = UDP & local_port = DHCP
home agent SPD-S:
- IF local_address = home_agent_1 &
remote_address = homa_address_1 & proto = UDP &
local_port = DHCP & remote_port = any
Then use SA2 (OUT) and SA1 (IN)
home agent SAD:
- SA2(OUT, spi_b, home_address_1, ESP, TRANSPORT):
local_address = home_agent_1 &
remote_address = home_address_1 &
proto = UDP & local_port = DHCP
- SA1(IN, spi_a, home_agent_1, ESP, TRANSPORT):
local_address = home_address_1 &
remote_address = home_agent_1 &
proto = UDP & remote_port = DHCP
5. Acknowledgments ๐ซถ
The authors want to thank everyone who left valuable comments on the mailing list ๐ Specific suggestions from Ryuji Wakikawa, George Tsirtsis, Alexandru Petrescu, Vijay Devarapalli, and Marcelo Bagnulo got baked into this document ๐
The authors also want to thank Julien Laganier, Michaela Vanderveen, and Jean-Michel Combes for reviewing previous versions of this document ๐
6. References ๐
6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, 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, July 2003.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6", RFC 3633, December 2003.
[RFC3646] Droms, R., "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, December 2003.
[RFC3776] Arkko, J., Devarapalli, V., and F. Dupont, "Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and Home Agents", RFC 3776, June 2004.
[RFC3963] Devarapalli, V., Wakikawa, R., Petrescu, A., and P. Thubert, "Network Mobility (NEMO) Basic Support Protocol", RFC 3963, January 2005.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006.
[RFC4877] Devarapalli, V. and F. Dupont, "Mobile IPv6 Operation with IKEv2 and the Revised IPsec Architecture", RFC 4877, April 2007.
[RFC6275] Perkins, C., Johnson, D., and J. Arkko, "Mobility Support in IPv6", RFC 6275, July 2011.
6.2. Informative References
[RFC4885] Ernst, T. and H-Y. Lach, "Network Mobility Support Terminology", RFC 4885, July 2007.
Authors' Addresses ๐๏ธ
Ralph Droms
Cisco
1414 Massachusetts Avenue
Boxborough, MA 01719
USA
Phone: +1 978.936.1674
EMail: rdroms@cisco.com
Pascal Thubert
Cisco
Village d'Entreprises Green Side
400, Avenue Roumanille
Biot - Sophia Antipolis 06410
FRANCE
EMail: pthubert@cisco.com
Francis Dupont
Internet Systems Consortium
EMail: fdupont@isc.org
Wassim Haddad
Ericsson
6210 Spine Road
Boulder, CO 80301
USA
Phone: +1 303.473.6963
EMail: Wassim.Haddad@ericsson.com
Carlos J. Bernardos
Universidad Carlos III de Madrid
Av. Universidad, 30
Leganes, Madrid 28911
Spain
Phone: +34 91624 6236
EMail: cjbc@it.uc3m.es
URI: http://www.it.uc3m.es/cjbc/
That's the whole spec, bestie! ๐ Literally iconic ๐
๐ฆ where this page comes from
- ietf: rfc6276 2011-07
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms