draft-ietf-hip-rfc5206-bis-00.txt | draft-ietf-hip-rfc5206-bis-01.txt | |||
---|---|---|---|---|
Network Working Group P. Nikander | Network Working Group P. Nikander | |||
Internet-Draft Ericsson Research NomadicLab | Internet-Draft Ericsson Research NomadicLab | |||
Obsoletes: 5206 (if approved) T. Henderson, Ed. | Obsoletes: 5206 (if approved) T. Henderson, Ed. | |||
Intended status: Standards Track The Boeing Company | Intended status: Standards Track The Boeing Company | |||
Expires: February 23, 2011 C. Vogt | Expires: April 21, 2011 C. Vogt | |||
J. Arkko | J. Arkko | |||
Ericsson Research NomadicLab | Ericsson Research NomadicLab | |||
August 22, 2010 | October 18, 2010 | |||
End-Host Mobility and Multihoming with the Host Identity Protocol | Host Mobility with the Host Identity Protocol | |||
draft-ietf-hip-rfc5206-bis-00 | draft-ietf-hip-rfc5206-bis-01 | |||
Abstract | Abstract | |||
This document defines mobility and multihoming extensions to the Host | This document defines mobility extensions to the Host Identity | |||
Identity Protocol (HIP). Specifically, this document defines a | Protocol (HIP). Specifically, this document defines a general | |||
general "LOCATOR" parameter for HIP messages that allows for a HIP | "LOCATOR" parameter for HIP messages that allows for a HIP host to | |||
host to notify peers about alternate addresses at which it may be | notify peers about alternate addresses at which it may be reached. | |||
reached. This document also defines elements of procedure for | This document also defines elements of procedure for mobility of a | |||
mobility of a HIP host -- the process by which a host dynamically | HIP host -- the process by which a host dynamically changes the | |||
changes the primary locator that it uses to receive packets. While | primary locator that it uses to receive packets. While the same | |||
the same LOCATOR parameter can also be used to support end-host | LOCATOR parameter can also be used to support end-host multihoming, | |||
multihoming, detailed procedures are left for further study. | detailed procedures are out of scope for this document. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on February 23, 2011. | This Internet-Draft will expire on April 21, 2011. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 33 | skipping to change at page 3, line 13 | |||
than English. | than English. | |||
Table of Contents | Table of Contents | |||
1. Introduction and Scope . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction and Scope . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Terminology and Conventions . . . . . . . . . . . . . . . . . 5 | 2. Terminology and Conventions . . . . . . . . . . . . . . . . . 5 | |||
3. Protocol Model . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Protocol Model . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.1. Operating Environment . . . . . . . . . . . . . . . . . . 6 | 3.1. Operating Environment . . . . . . . . . . . . . . . . . . 6 | |||
3.1.1. Locator . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.1.1. Locator . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1.2. Mobility Overview . . . . . . . . . . . . . . . . . . 8 | 3.1.2. Mobility Overview . . . . . . . . . . . . . . . . . . 8 | |||
3.1.3. Multihoming Overview . . . . . . . . . . . . . . . . . 9 | 3.2. Protocol Overview . . . . . . . . . . . . . . . . . . . . 8 | |||
3.2. Protocol Overview . . . . . . . . . . . . . . . . . . . . 9 | 3.2.1. Mobility with a Single SA Pair (No Rekeying) . . . . . 9 | |||
3.2.1. Mobility with a Single SA Pair (No Rekeying) . . . . . 10 | ||||
3.2.2. Mobility with a Single SA Pair (Mobile-Initiated | 3.2.2. Mobility with a Single SA Pair (Mobile-Initiated | |||
Rekey) . . . . . . . . . . . . . . . . . . . . . . . . 12 | Rekey) . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.2.3. Host Multihoming . . . . . . . . . . . . . . . . . . . 12 | 3.2.3. Using LOCATORs across Addressing Realms . . . . . . . 11 | |||
3.2.4. Site Multihoming . . . . . . . . . . . . . . . . . . . 14 | 3.2.4. Network Renumbering . . . . . . . . . . . . . . . . . 11 | |||
3.2.5. Dual host multihoming . . . . . . . . . . . . . . . . 14 | 3.3. Other Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
3.2.6. Combined Mobility and Multihoming . . . . . . . . . . 15 | 3.3.1. Address Verification . . . . . . . . . . . . . . . . . 12 | |||
3.2.7. Using LOCATORs across Addressing Realms . . . . . . . 15 | 3.3.2. Credit-Based Authorization . . . . . . . . . . . . . . 12 | |||
3.2.8. Network Renumbering . . . . . . . . . . . . . . . . . 15 | 3.3.3. Preferred Locator . . . . . . . . . . . . . . . . . . 13 | |||
3.2.9. Initiating the Protocol in R1 or I2 . . . . . . . . . 16 | 4. LOCATOR Parameter Format . . . . . . . . . . . . . . . . . . . 14 | |||
3.3. Other Considerations . . . . . . . . . . . . . . . . . . . 17 | 4.1. Traffic Type and Preferred Locator . . . . . . . . . . . . 15 | |||
3.3.1. Address Verification . . . . . . . . . . . . . . . . . 17 | 4.2. Locator Type and Locator . . . . . . . . . . . . . . . . . 16 | |||
3.3.2. Credit-Based Authorization . . . . . . . . . . . . . . 17 | 4.3. UPDATE Packet with Included LOCATOR . . . . . . . . . . . 16 | |||
3.3.3. Preferred Locator . . . . . . . . . . . . . . . . . . 19 | 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
3.3.4. Interaction with Security Associations . . . . . . . . 19 | 5.1. Locator Data Structure and Status . . . . . . . . . . . . 16 | |||
4. LOCATOR Parameter Format . . . . . . . . . . . . . . . . . . . 22 | 5.2. Sending LOCATORs . . . . . . . . . . . . . . . . . . . . . 18 | |||
4.1. Traffic Type and Preferred Locator . . . . . . . . . . . . 24 | 5.3. Handling Received LOCATORs . . . . . . . . . . . . . . . . 19 | |||
4.2. Locator Type and Locator . . . . . . . . . . . . . . . . . 24 | 5.4. Verifying Address Reachability . . . . . . . . . . . . . . 21 | |||
4.3. UPDATE Packet with Included LOCATOR . . . . . . . . . . . 25 | 5.5. Changing the Preferred Locator . . . . . . . . . . . . . . 22 | |||
5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 25 | 5.6. Credit-Based Authorization . . . . . . . . . . . . . . . . 23 | |||
5.1. Locator Data Structure and Status . . . . . . . . . . . . 25 | 5.6.1. Handling Payload Packets . . . . . . . . . . . . . . . 23 | |||
5.2. Sending LOCATORs . . . . . . . . . . . . . . . . . . . . . 26 | 5.6.2. Credit Aging . . . . . . . . . . . . . . . . . . . . . 25 | |||
5.3. Handling Received LOCATORs . . . . . . . . . . . . . . . . 28 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | |||
5.4. Verifying Address Reachability . . . . . . . . . . . . . . 30 | 6.1. Impersonation Attacks . . . . . . . . . . . . . . . . . . 27 | |||
5.5. Changing the Preferred Locator . . . . . . . . . . . . . . 32 | 6.2. Denial-of-Service Attacks . . . . . . . . . . . . . . . . 28 | |||
5.6. Credit-Based Authorization . . . . . . . . . . . . . . . . 32 | 6.2.1. Flooding Attacks . . . . . . . . . . . . . . . . . . . 28 | |||
5.6.1. Handling Payload Packets . . . . . . . . . . . . . . . 33 | 6.2.2. Memory/Computational-Exhaustion DoS Attacks . . . . . 28 | |||
5.6.2. Credit Aging . . . . . . . . . . . . . . . . . . . . . 34 | 6.3. Mixed Deployment Environment . . . . . . . . . . . . . . . 29 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 35 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | |||
6.1. Impersonation Attacks . . . . . . . . . . . . . . . . . . 36 | 8. Authors and Acknowledgments . . . . . . . . . . . . . . . . . 30 | |||
6.2. Denial-of-Service Attacks . . . . . . . . . . . . . . . . 37 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
6.2.1. Flooding Attacks . . . . . . . . . . . . . . . . . . . 37 | 9.1. Normative references . . . . . . . . . . . . . . . . . . . 30 | |||
6.2.2. Memory/Computational-Exhaustion DoS Attacks . . . . . 37 | 9.2. Informative references . . . . . . . . . . . . . . . . . . 30 | |||
6.3. Mixed Deployment Environment . . . . . . . . . . . . . . . 38 | Appendix A. Document Revision History . . . . . . . . . . . . . . 31 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 | ||||
8. Authors and Acknowledgments . . . . . . . . . . . . . . . . . 39 | ||||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
9.1. Normative references . . . . . . . . . . . . . . . . . . . 39 | ||||
9.2. Informative references . . . . . . . . . . . . . . . . . . 39 | ||||
Appendix A. Document Revision History . . . . . . . . . . . . . . 40 | ||||
1. Introduction and Scope | 1. Introduction and Scope | |||
The Host Identity Protocol [RFC4423] (HIP) supports an architecture | The Host Identity Protocol [RFC4423] (HIP) supports an architecture | |||
that decouples the transport layer (TCP, UDP, etc.) from the | that decouples the transport layer (TCP, UDP, etc.) from the | |||
internetworking layer (IPv4 and IPv6) by using public/private key | internetworking layer (IPv4 and IPv6) by using public/private key | |||
pairs, instead of IP addresses, as host identities. When a host uses | pairs, instead of IP addresses, as host identities. When a host uses | |||
HIP, the overlying protocol sublayers (e.g., transport layer sockets | HIP, the overlying protocol sublayers (e.g., transport layer sockets | |||
and Encapsulating Security Payload (ESP) Security Associations (SAs)) | and Encapsulating Security Payload (ESP) Security Associations (SAs)) | |||
are instead bound to representations of these host identities, and | are instead bound to representations of these host identities, and | |||
the IP addresses are only used for packet forwarding. However, each | the IP addresses are only used for packet forwarding. However, each | |||
host must also know at least one IP address at which its peers are | host must also know at least one IP address at which its peers are | |||
reachable. Initially, these IP addresses are the ones used during | reachable. Initially, these IP addresses are the ones used during | |||
the HIP base exchange [RFC5201]. | the HIP base exchange [RFC5201]. | |||
One consequence of such a decoupling is that new solutions to | One consequence of such a decoupling is that new solutions to | |||
network-layer mobility and host multihoming are possible. There are | network-layer mobility and host multihoming are possible. There are | |||
potentially many variations of mobility and multihoming possible. | potentially many variations of mobility and multihoming possible. | |||
The scope of this document encompasses messaging and elements of | The scope of this document encompasses messaging and elements of | |||
procedure for basic network-level mobility and simple multihoming, | procedure for basic network-level host mobility, leaving more | |||
leaving more complicated scenarios and other variations for further | complicated scenarios and other variations for further study. More | |||
study. More specifically: | specifically: | |||
This document defines a generalized LOCATOR parameter for use in | This document defines a generalized LOCATOR parameter for use in | |||
HIP messages. The LOCATOR parameter allows a HIP host to notify a | HIP messages. The LOCATOR parameter allows a HIP host to notify a | |||
peer about alternate addresses at which it is reachable. The | peer about alternate addresses at which it is reachable. The | |||
LOCATORs may be merely IP addresses, or they may have additional | LOCATORs may be merely IP addresses, or they may have additional | |||
multiplexing and demultiplexing context to aid the packet handling | multiplexing and demultiplexing context to aid the packet handling | |||
in the lower layers. For instance, an IP address may need to be | in the lower layers. For instance, an IP address may need to be | |||
paired with an ESP Security Parameter Index (SPI) so that packets | paired with an ESP Security Parameter Index (SPI) so that packets | |||
are sent on the correct SA for a given address. | are sent on the correct SA for a given address. | |||
This document also specifies the messaging and elements of | This document also specifies the messaging and elements of | |||
procedure for end-host mobility of a HIP host -- the sequential | procedure for end-host mobility of a HIP host -- the sequential | |||
change in the preferred IP address used to reach a host. In | change in the preferred IP address used to reach a host. In | |||
particular, message flows to enable successful host mobility, | particular, message flows to enable successful host mobility, | |||
including address verification methods, are defined herein. | including address verification methods, are defined herein. | |||
However, while the same LOCATOR parameter is intended to support | However, while the same LOCATOR parameter is intended to support | |||
host multihoming (parallel support of a number of addresses), and | host multihoming (parallel support of a number of addresses), and | |||
experimentation is encouraged, detailed elements of procedure for | experimentation is encouraged, detailed elements of procedure for | |||
host multihoming are left for further study. | host multihoming are out of scope. | |||
While HIP can potentially be used with transports other than the ESP | While HIP can potentially be used with transports other than the ESP | |||
transport format [RFC5202], this document largely assumes the use of | transport format [RFC5202], this document largely assumes the use of | |||
ESP and leaves other transport formats for further study. | ESP and leaves other transport formats for further study. | |||
There are a number of situations where the simple end-to-end | There are a number of situations where the simple end-to-end | |||
readdressing functionality is not sufficient. These include the | readdressing functionality is not sufficient. These include the | |||
initial reachability of a mobile host, location privacy, simultaneous | initial reachability of a mobile host, location privacy, simultaneous | |||
mobility of both hosts, and some modes of NAT traversal. In these | mobility of both hosts, and some modes of NAT traversal. In these | |||
situations, there is a need for some helper functionality in the | situations, there is a need for some helper functionality in the | |||
network, such as a HIP rendezvous server [RFC5204]. Such | network, such as a HIP rendezvous server [RFC5204]. Such | |||
functionality is out of the scope of this document. We also do not | functionality is out of the scope of this document. We also do not | |||
consider localized mobility management extensions (i.e., mobility | consider localized mobility management extensions (i.e., mobility | |||
management techniques that do not involve directly signaling the | management techniques that do not involve directly signaling the | |||
correspondent node); this document is concerned with end-to-end | correspondent node); this document is concerned with end-to-end | |||
mobility. Finally, making underlying IP mobility transparent to the | mobility. Making underlying IP mobility transparent to the transport | |||
transport layer has implications on the proper response of transport | layer has implications on the proper response of transport congestion | |||
congestion control, path MTU selection, and Quality of Service (QoS). | control, path MTU selection, and Quality of Service (QoS). | |||
Transport-layer mobility triggers, and the proper transport response | Transport-layer mobility triggers, and the proper transport response | |||
to a HIP mobility or multihoming address change, are outside the | to a HIP mobility or multihoming address change, are outside the | |||
scope of this document. | scope of this document. | |||
2. Terminology and Conventions | 2. Terminology and Conventions | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
skipping to change at page 5, line 47 | skipping to change at page 5, line 47 | |||
The two most common examples are an IPv4 address and an IPv6 | The two most common examples are an IPv4 address and an IPv6 | |||
address. The set of possible addresses is a subset of the set of | address. The set of possible addresses is a subset of the set of | |||
possible locators. | possible locators. | |||
Preferred locator. A locator on which a host prefers to receive | Preferred locator. A locator on which a host prefers to receive | |||
data. With respect to a given peer, a host always has one active | data. With respect to a given peer, a host always has one active | |||
Preferred locator, unless there are no active locators. By | Preferred locator, unless there are no active locators. By | |||
default, the locators used in the HIP base exchange are the | default, the locators used in the HIP base exchange are the | |||
Preferred locators. | Preferred locators. | |||
Credit Based Authorization. A host must verify a mobile or | Credit Based Authorization. A host must verify a peer host's | |||
multihomed peer's reachability at a new locator. Credit-Based | reachability at a new locator. Credit-Based Authorization | |||
Authorization authorizes the peer to receive a certain amount of | authorizes the peer to receive a certain amount of data at the new | |||
data at the new locator before the result of such verification is | locator before the result of such verification is known. | |||
known. | ||||
3. Protocol Model | 3. Protocol Model | |||
This section is an overview; more detailed specification follows this | This section is an overview; more detailed specification follows this | |||
section. | section. | |||
3.1. Operating Environment | 3.1. Operating Environment | |||
The Host Identity Protocol (HIP) [RFC5201] is a key establishment and | The Host Identity Protocol (HIP) [RFC5201] is a key establishment and | |||
parameter negotiation protocol. Its primary applications are for | parameter negotiation protocol. Its primary applications are for | |||
skipping to change at page 7, line 21 | skipping to change at page 7, line 21 | |||
| --------- | | --------- | |||
| | | | | | |||
---- --------- | ---- --------- | |||
| MH |-> | HIP | {HIT_s, HIT_d, SPI} <-> {IP_s, IP_d, SPI} | | MH |-> | HIP | {HIT_s, HIT_d, SPI} <-> {IP_s, IP_d, SPI} | |||
---- --------- | ---- --------- | |||
| | | | |||
--------- | --------- | |||
| IP | | | IP | | |||
--------- | --------- | |||
Figure 2: Architecture for HIP Mobility and Multihoming (MH) | Figure 2: Architecture for HIP Host Mobility (MH) | |||
Figure 2 depicts a layered architectural view of a HIP-enabled stack | Figure 2 depicts a layered architectural view of a HIP-enabled stack | |||
using the ESP transport format. In HIP, upper-layer protocols | using the ESP transport format. In HIP, upper-layer protocols | |||
(including TCP and ESP in this figure) are bound to Host Identity | (including TCP and ESP in this figure) are bound to Host Identity | |||
Tags (HITs) and not IP addresses. The HIP sublayer is responsible | Tags (HITs) and not IP addresses. The HIP sublayer is responsible | |||
for maintaining the binding between HITs and IP addresses. The SPI | for maintaining the binding between HITs and IP addresses. The SPI | |||
is used to associate an incoming packet with the right HITs. The | is used to associate an incoming packet with the right HITs. The | |||
block labeled "MH" is introduced below. | block labeled "MH" is introduced below. | |||
Consider first the case in which there is no mobility or multihoming, | Consider first the case in which there is no mobility or multihoming, | |||
skipping to change at page 7, line 43 | skipping to change at page 7, line 43 | |||
base exchange establishes the HITs in use between the hosts, the SPIs | base exchange establishes the HITs in use between the hosts, the SPIs | |||
to use for ESP, and the IP addresses (used in both the HIP signaling | to use for ESP, and the IP addresses (used in both the HIP signaling | |||
packets and ESP data packets). Note that there can only be one such | packets and ESP data packets). Note that there can only be one such | |||
set of bindings in the outbound direction for any given packet, and | set of bindings in the outbound direction for any given packet, and | |||
the only fields used for the binding at the HIP layer are the fields | the only fields used for the binding at the HIP layer are the fields | |||
exposed by ESP (the SPI and HITs). For the inbound direction, the | exposed by ESP (the SPI and HITs). For the inbound direction, the | |||
SPI is all that is required to find the right host context. ESP | SPI is all that is required to find the right host context. ESP | |||
rekeying events change the mapping between the HIT pair and SPI, but | rekeying events change the mapping between the HIT pair and SPI, but | |||
do not change the IP addresses. | do not change the IP addresses. | |||
Consider next a mobility event, in which a host is still single-homed | Consider next a mobility event, in which a host moves to another IP | |||
but moves to another IP address. Two things must occur in this case. | address. Two things must occur in this case. First, the peer must | |||
First, the peer must be notified of the address change using a HIP | be notified of the address change using a HIP UPDATE message. | |||
UPDATE message. Second, each host must change its local bindings at | Second, each host must change its local bindings at the HIP sublayer | |||
the HIP sublayer (new IP addresses). It may be that both the SPIs | (new IP addresses). It may be that both the SPIs and IP addresses | |||
and IP addresses are changed simultaneously in a single UPDATE; the | are changed simultaneously in a single UPDATE; the protocol described | |||
protocol described herein supports this. However, simultaneous | herein supports this. However, simultaneous movement of both hosts, | |||
movement of both hosts, notification of transport layer protocols of | notification of transport layer protocols of the path change, and | |||
the path change, and procedures for possibly traversing middleboxes | procedures for possibly traversing middleboxes are not covered by | |||
are not covered by this document. | this document. | |||
Finally, consider the case when a host is multihomed (has more than | ||||
one globally routable address) and has multiple addresses available | ||||
at the HIP layer as alternative locators for fault tolerance. | ||||
Examples include the use of (possibly multiple) IPv4 and IPv6 | ||||
addresses on the same interface, or the use of multiple interfaces | ||||
attached to different service providers. Such host multihoming | ||||
generally necessitates that a separate ESP SA is maintained for each | ||||
interface in order to prevent packets that arrive over different | ||||
paths from falling outside of the ESP anti-replay window [RFC4303]. | ||||
Multihoming thus makes it possible that the bindings shown on the | ||||
right side of Figure 2 are one to many (in the outbound direction, | ||||
one HIT pair to multiple SPIs, and possibly then to multiple IP | ||||
addresses). However, only one SPI and address pair can be used for | ||||
any given packet, so the job of the "MH" block depicted above is to | ||||
dynamically manipulate these bindings. Beyond locally managing such | ||||
multiple bindings, the peer-to-peer HIP signaling protocol needs to | ||||
be flexible enough to define the desired mappings between HITs, SPIs, | ||||
and addresses, and needs to ensure that UPDATE messages are sent | ||||
along the right network paths so that any HIP-aware middleboxes can | ||||
observe the SPIs. This document does not specify the "MH" block, nor | ||||
does it specify detailed elements of procedure for how to handle | ||||
various multihoming (perhaps combined with mobility) scenarios. The | ||||
"MH" block may apply to more general problems outside of HIP. | ||||
However, this document does describe a basic multihoming case (one | ||||
host adds one address to its initial address and notifies the peer) | ||||
and leave more complicated scenarios for experimentation and future | ||||
documents. | ||||
3.1.1. Locator | 3.1.1. Locator | |||
This document defines a generalization of an address called a | This document defines a generalization of an address called a | |||
"locator". A locator specifies a point-of-attachment to the network | "locator". A locator specifies a point-of-attachment to the network | |||
but may also include additional end-to-end tunneling or per-host | but may also include additional end-to-end tunneling or per-host | |||
demultiplexing context that affects how packets are handled below the | demultiplexing context that affects how packets are handled below the | |||
logical HIP sublayer of the stack. This generalization is useful | logical HIP sublayer of the stack. This generalization is useful | |||
because IP addresses alone may not be sufficient to describe how | because IP addresses alone may not be sufficient to describe how | |||
packets should be handled below HIP. For example, in a host | packets should be handled below HIP. For example, in a host | |||
skipping to change at page 9, line 28 | skipping to change at page 8, line 49 | |||
the host is able to receive packets that are protected using a HIP | the host is able to receive packets that are protected using a HIP | |||
created ESP SA from any address. Thus, a host can change its IP | created ESP SA from any address. Thus, a host can change its IP | |||
address and continue to send packets to its peers without necessarily | address and continue to send packets to its peers without necessarily | |||
rekeying. However, the peers are not able to send packets to these | rekeying. However, the peers are not able to send packets to these | |||
new addresses before they can reliably and securely update the set of | new addresses before they can reliably and securely update the set of | |||
addresses that they associate with the sending host. Furthermore, | addresses that they associate with the sending host. Furthermore, | |||
mobility may change the path characteristics in such a manner that | mobility may change the path characteristics in such a manner that | |||
reordering occurs and packets fall outside the ESP anti-replay window | reordering occurs and packets fall outside the ESP anti-replay window | |||
for the SA, thereby requiring rekeying. | for the SA, thereby requiring rekeying. | |||
3.1.3. Multihoming Overview | ||||
A related operational configuration is host multihoming, in which a | ||||
host has multiple locators simultaneously rather than sequentially, | ||||
as in the case of mobility. By using the LOCATOR parameter defined | ||||
herein, a host can inform its peers of additional (multiple) locators | ||||
at which it can be reached, and can declare a particular locator as a | ||||
"preferred" locator. Although this document defines a basic | ||||
mechanism for multihoming, it does not define detailed policies and | ||||
procedures, such as which locators to choose when more than one pair | ||||
is available, the operation of simultaneous mobility and multihoming, | ||||
source address selection policies (beyond those specified in | ||||
[RFC3484]), and the implications of multihoming on transport | ||||
protocols and ESP anti-replay windows. Additional definitions of | ||||
HIP-based multihoming are expected to be part of future documents. | ||||
3.2. Protocol Overview | 3.2. Protocol Overview | |||
In this section, we briefly introduce a number of usage scenarios for | In this section, we briefly introduce a number of usage scenarios for | |||
HIP mobility and multihoming. These scenarios assume that HIP is | HIP host mobility. These scenarios assume that HIP is being used | |||
being used with the ESP transform [RFC5202], although other scenarios | with the ESP transform [RFC5202], although other scenarios may be | |||
may be defined in the future. To understand these usage scenarios, | defined in the future. To understand these usage scenarios, the | |||
the reader should be at least minimally familiar with the HIP | reader should be at least minimally familiar with the HIP protocol | |||
protocol specification [RFC5201]. However, for the (relatively) | specification [RFC5201]. However, for the (relatively) uninitiated | |||
uninitiated reader, it is most important to keep in mind that in HIP | reader, it is most important to keep in mind that in HIP the actual | |||
the actual payload traffic is protected with ESP, and that the ESP | payload traffic is protected with ESP, and that the ESP SPI acts as | |||
SPI acts as an index to the right host-to-host context. More | an index to the right host-to-host context. More specification | |||
specification details are found later in Section 4 and Section 5. | details are found later in Section 4 and Section 5. | |||
The scenarios below assume that the two hosts have completed a single | The scenarios below assume that the two hosts have completed a single | |||
HIP base exchange with each other. Both of the hosts therefore have | HIP base exchange with each other. Both of the hosts therefore have | |||
one incoming and one outgoing SA. Further, each SA uses the same | one incoming and one outgoing SA. Further, each SA uses the same | |||
pair of IP addresses, which are the ones used in the base exchange. | pair of IP addresses, which are the ones used in the base exchange. | |||
The readdressing protocol is an asymmetric protocol where a mobile or | The readdressing protocol is an asymmetric protocol where a mobile | |||
multihomed host informs a peer host about changes of IP addresses on | host informs a peer host about changes of IP addresses on affected | |||
affected SPIs. The readdressing exchange is designed to be | SPIs. The readdressing exchange is designed to be piggybacked on | |||
piggybacked on existing HIP exchanges. The majority of the packets | existing HIP exchanges. The majority of the packets on which the | |||
on which the LOCATOR parameters are expected to be carried are UPDATE | LOCATOR parameters are expected to be carried are UPDATE packets. | |||
packets. However, some implementations may want to experiment with | However, some implementations may want to experiment with sending | |||
sending LOCATOR parameters also on other packets, such as R1, I2, and | LOCATOR parameters also on other packets, such as R1, I2, and NOTIFY. | |||
NOTIFY. | ||||
The scenarios below at times describe addresses as being in either an | The scenarios below at times describe addresses as being in either an | |||
ACTIVE, VERIFIED, or DEPRECATED state. From the perspective of a | ACTIVE, VERIFIED, or DEPRECATED state. From the perspective of a | |||
host, newly-learned addresses of the peer must be verified before put | host, newly-learned addresses of the peer must be verified before put | |||
into active service, and addresses removed by the peer are put into a | into active service, and addresses removed by the peer are put into a | |||
deprecated state. Under limited conditions described below | deprecated state. Under limited conditions described below | |||
(Section 5.6), an UNVERIFIED address may be used. The addressing | (Section 5.6), an UNVERIFIED address may be used. The addressing | |||
states are defined more formally in Section 5.1. | states are defined more formally in Section 5.1. | |||
Hosts that use link-local addresses as source addresses in their HIP | Hosts that use link-local addresses as source addresses in their HIP | |||
skipping to change at page 12, line 32 | skipping to change at page 11, line 32 | |||
UPDATE(ESP_INFO, LOCATOR, SEQ, [DIFFIE_HELLMAN]) | UPDATE(ESP_INFO, LOCATOR, SEQ, [DIFFIE_HELLMAN]) | |||
-----------------------------------> | -----------------------------------> | |||
UPDATE(ESP_INFO, SEQ, ACK, [DIFFIE_HELLMAN,] ECHO_REQUEST) | UPDATE(ESP_INFO, SEQ, ACK, [DIFFIE_HELLMAN,] ECHO_REQUEST) | |||
<----------------------------------- | <----------------------------------- | |||
UPDATE(ACK, ECHO_RESPONSE) | UPDATE(ACK, ECHO_RESPONSE) | |||
-----------------------------------> | -----------------------------------> | |||
Figure 4: Readdress with Mobile-Initiated Rekey | Figure 4: Readdress with Mobile-Initiated Rekey | |||
3.2.3. Host Multihoming | 3.2.3. Using LOCATORs across Addressing Realms | |||
A (mobile or stationary) host may sometimes have more than one | ||||
interface or global address. The host may notify the peer host of | ||||
the additional interface or address by using the LOCATOR parameter. | ||||
To avoid problems with the ESP anti-replay window, a host SHOULD use | ||||
a different SA for each interface or address used to receive packets | ||||
from the peer host when multiple locator pairs are being used | ||||
simultaneously rather than sequentially. | ||||
When more than one locator is provided to the peer host, the host | ||||
SHOULD indicate which locator is preferred (the locator on which the | ||||
host prefers to receive traffic). By default, the addresses used in | ||||
the base exchange are preferred until indicated otherwise. | ||||
In the multihoming case, the sender may also have multiple valid | ||||
locators from which to source traffic. In practice, a HIP | ||||
association in a multihoming configuration may have both a preferred | ||||
peer locator and a preferred local locator, although rules for source | ||||
address selection should ultimately govern the selection of the | ||||
source locator based on the destination locator. | ||||
Although the protocol may allow for configurations in which there is | ||||
an asymmetric number of SAs between the hosts (e.g., one host has two | ||||
interfaces and two inbound SAs, while the peer has one interface and | ||||
one inbound SA), it is RECOMMENDED that inbound and outbound SAs be | ||||
created pairwise between hosts. When an ESP_INFO arrives to rekey a | ||||
particular outbound SA, the corresponding inbound SA should be also | ||||
rekeyed at that time. Although asymmetric SA configurations might be | ||||
experimented with, their usage may constrain interoperability at this | ||||
time. However, it is recommended that implementations attempt to | ||||
support peers that prefer to use non-paired SAs. It is expected that | ||||
this section and behavior will be modified in future revisions of | ||||
this protocol, once the issue and its implications are better | ||||
understood. | ||||
Consider the case between two hosts, one single-homed and one | ||||
multihomed. The multihomed host may decide to inform the single- | ||||
homed host about its other address. It is RECOMMENDED that the | ||||
multihomed host set up a new SA pair for use on this new address. To | ||||
do this, the multihomed host sends a LOCATOR with an ESP_INFO, | ||||
indicating the request for a new SA by setting the OLD SPI value to | ||||
zero, and the NEW SPI value to the newly created incoming SPI. A | ||||
Locator Type of "1" is used to associate the new address with the new | ||||
SPI. The LOCATOR parameter also contains a second Type "1" locator, | ||||
that of the original address and SPI. To simplify parameter | ||||
processing and avoid explicit protocol extensions to remove locators, | ||||
each LOCATOR parameter MUST list all locators in use on a connection | ||||
(a complete listing of inbound locators and SPIs for the host). The | ||||
multihomed host waits for an ESP_INFO (new outbound SA) from the peer | ||||
and an ACK of its own UPDATE. As in the mobility case, the peer host | ||||
must perform an address verification before actively using the new | ||||
address. Figure 5 illustrates this scenario. | ||||
Multi-homed Host Peer Host | ||||
UPDATE(ESP_INFO, LOCATOR, SEQ, [DIFFIE_HELLMAN]) | ||||
-----------------------------------> | ||||
UPDATE(ESP_INFO, SEQ, ACK, [DIFFIE_HELLMAN,] ECHO_REQUEST) | ||||
<----------------------------------- | ||||
UPDATE(ACK, ECHO_RESPONSE) | ||||
-----------------------------------> | ||||
Figure 5: Basic Multihoming Scenario | ||||
In multihoming scenarios, it is important that hosts receiving | ||||
UPDATEs associate them correctly with the destination address used in | ||||
the packet carrying the UPDATE. When processing inbound LOCATORs | ||||
that establish new security associations on an interface with | ||||
multiple addresses, a host uses the destination address of the UPDATE | ||||
containing the LOCATOR as the local address to which the LOCATOR plus | ||||
ESP_INFO is targeted. This is because hosts may send UPDATEs with | ||||
the same (locator) IP address to different peer addresses -- this has | ||||
the effect of creating multiple inbound SAs implicitly affiliated | ||||
with different peer source addresses. | ||||
3.2.4. Site Multihoming | ||||
A host may have an interface that has multiple globally routable IP | ||||
addresses. Such a situation may be a result of the site having | ||||
multiple upper Internet Service Providers, or just because the site | ||||
provides all hosts with both IPv4 and IPv6 addresses. The host | ||||
should stay reachable at all or any subset of the currently available | ||||
global routable addresses, independent of how they are provided. | ||||
This case is handled the same as if there were different IP | ||||
addresses, described above in Section 3.2.3. Note that a single | ||||
interface may experience site multihoming while the host itself may | ||||
have multiple interfaces. | ||||
Note that a host may be multihomed and mobile simultaneously, and | ||||
that a multihomed host may want to protect the location of some of | ||||
its interfaces while revealing the real IP address of some others. | ||||
This document does not presently specify additional site multihoming | ||||
extensions to HIP; further alignment with the IETF shim6 working | ||||
group may be considered in the future. | ||||
3.2.5. Dual host multihoming | ||||
Consider the case in which both hosts would like to add an additional | ||||
address after the base exchange completes. In Figure 6, consider | ||||
that host1, which used address addr1a in the base exchange to set up | ||||
SPI1a and SPI2a, wants to add address addr1b. It would send an | ||||
UPDATE with LOCATOR (containing the address addr1b) to host2, using | ||||
destination address addr2a, and a new set of SPIs would be added | ||||
between hosts 1 and 2 (call them SPI1b and SPI2b -- not shown in the | ||||
figure). Next, consider host2 deciding to add addr2b to the | ||||
relationship. Host2 must select one of host1's addresses towards | ||||
which to initiate an UPDATE. It may choose to initiate an UPDATE to | ||||
addr1a, addr1b, or both. If it chooses to send to both, then a full | ||||
mesh (four SA pairs) of SAs would exist between the two hosts. This | ||||
is the most general case; it often may be the case that hosts | ||||
primarily establish new SAs only with the peer's Preferred locator. | ||||
The readdressing protocol is flexible enough to accommodate this | ||||
choice. | ||||
-<- SPI1a -- -- SPI2a ->- | ||||
host1 < > addr1a <---> addr2a < > host2 | ||||
->- SPI2a -- -- SPI1a -<- | ||||
addr1b <---> addr2a (second SA pair) | ||||
addr1a <---> addr2b (third SA pair) | ||||
addr1b <---> addr2b (fourth SA pair) | ||||
Figure 6: Dual Multihoming Case in Which Each Host Uses LOCATOR to | ||||
Add a Second Address | ||||
3.2.6. Combined Mobility and Multihoming | ||||
It looks likely that in the future, many mobile hosts will be | ||||
simultaneously mobile and multihomed, i.e., have multiple mobile | ||||
interfaces. Furthermore, if the interfaces use different access | ||||
technologies, it is fairly likely that one of the interfaces may | ||||
appear stable (retain its current IP address) while some other(s) may | ||||
experience mobility (undergo IP address change). | ||||
The use of LOCATOR plus ESP_INFO should be flexible enough to handle | ||||
most such scenarios, although more complicated scenarios have not | ||||
been studied so far. | ||||
3.2.7. Using LOCATORs across Addressing Realms | ||||
It is possible for HIP associations to migrate to a state in which | It is possible for HIP associations to migrate to a state in which | |||
both parties are only using locators in different addressing realms. | both parties are only using locators in different addressing realms. | |||
For example, the two hosts may initiate the HIP association when both | For example, the two hosts may initiate the HIP association when both | |||
are using IPv6 locators, then one host may loose its IPv6 | are using IPv6 locators, then one host may loose its IPv6 | |||
connectivity and obtain an IPv4 address. In such a case, some type | connectivity and obtain an IPv4 address. In such a case, some type | |||
of mechanism for interworking between the different realms must be | of mechanism for interworking between the different realms must be | |||
employed; such techniques are outside the scope of the present text. | employed; such techniques are outside the scope of the present text. | |||
The basic problem in this example is that the host readdressing to | The basic problem in this example is that the host readdressing to | |||
IPv4 does not know a corresponding IPv4 address of the peer. This | IPv4 does not know a corresponding IPv4 address of the peer. This | |||
may be handled (experimentally) by possibly configuring this address | may be handled (experimentally) by possibly configuring this address | |||
information manually or in the DNS, or the hosts exchange both IPv4 | information manually or in the DNS, or the hosts exchange both IPv4 | |||
and IPv6 addresses in the locator. | and IPv6 addresses in the locator. | |||
3.2.8. Network Renumbering | 3.2.4. Network Renumbering | |||
It is expected that IPv6 networks will be renumbered much more often | It is expected that IPv6 networks will be renumbered much more often | |||
than most IPv4 networks. From an end-host point of view, network | than most IPv4 networks. From an end-host point of view, network | |||
renumbering is similar to mobility. | renumbering is similar to mobility. | |||
3.2.9. Initiating the Protocol in R1 or I2 | ||||
A Responder host MAY include a LOCATOR parameter in the R1 packet | ||||
that it sends to the Initiator. This parameter MUST be protected by | ||||
the R1 signature. If the R1 packet contains LOCATOR parameters with | ||||
a new Preferred locator, the Initiator SHOULD directly set the new | ||||
Preferred locator to status ACTIVE without performing address | ||||
verification first, and MUST send the I2 packet to the new Preferred | ||||
locator. The I1 destination address and the new Preferred locator | ||||
may be identical. All new non-preferred locators must still undergo | ||||
address verification once the base exchange completes. | ||||
Initiator Responder | ||||
R1 with LOCATOR | ||||
<----------------------------------- | ||||
record additional addresses | ||||
change responder address | ||||
I2 sent to newly indicated preferred address | ||||
-----------------------------------> | ||||
(process normally) | ||||
R2 | ||||
<----------------------------------- | ||||
(process normally, later verification of non-preferred locators) | ||||
Figure 7: LOCATOR Inclusion in R1 | ||||
An Initiator MAY include one or more LOCATOR parameters in the I2 | ||||
packet, independent of whether or not there was a LOCATOR parameter | ||||
in the R1. These parameters MUST be protected by the I2 signature. | ||||
Even if the I2 packet contains LOCATOR parameters, the Responder MUST | ||||
still send the R2 packet to the source address of the I2. The new | ||||
Preferred locator SHOULD be identical to the I2 source address. If | ||||
the I2 packet contains LOCATOR parameters, all new locators must | ||||
undergo address verification as usual, and the ESP traffic that | ||||
subsequently follows should use the Preferred locator. | ||||
Initiator Responder | ||||
I2 with LOCATOR | ||||
-----------------------------------> | ||||
(process normally) | ||||
record additional addresses | ||||
R2 sent to source address of I2 | ||||
<----------------------------------- | ||||
(process normally) | ||||
Figure 8: LOCATOR Inclusion in I2 | ||||
The I1 and I2 may be arriving from different source addresses if the | ||||
LOCATOR parameter is present in R1. In this case, implementations | ||||
simultaneously using multiple pre-created R1s, indexed by Initiator | ||||
IP addresses, may inadvertently fail the puzzle solution of I2 | ||||
packets due to a perceived puzzle mismatch. See, for instance, the | ||||
example in Appendix A of [RFC5201]. As a solution, the Responder's | ||||
puzzle indexing mechanism must be flexible enough to accommodate the | ||||
situation when R1 includes a LOCATOR parameter. | ||||
3.3. Other Considerations | 3.3. Other Considerations | |||
3.3.1. Address Verification | 3.3.1. Address Verification | |||
When a HIP host receives a set of locators from another HIP host in a | When a HIP host receives a set of locators from another HIP host in a | |||
LOCATOR, it does not necessarily know whether the other host is | LOCATOR, it does not necessarily know whether the other host is | |||
actually reachable at the claimed addresses. In fact, a malicious | actually reachable at the claimed addresses. In fact, a malicious | |||
peer host may be intentionally giving bogus addresses in order to | peer host may be intentionally giving bogus addresses in order to | |||
cause a packet flood towards the target addresses [RFC4225]. | cause a packet flood towards the target addresses [RFC4225]. | |||
Likewise, viral software may have compromised the peer host, | Likewise, viral software may have compromised the peer host, | |||
skipping to change at page 18, line 20 | skipping to change at page 13, line 11 | |||
amplification could be obtained this way. | amplification could be obtained this way. | |||
On this basis, rather than eliminating malicious packet redirection | On this basis, rather than eliminating malicious packet redirection | |||
in the first place, Credit-Based Authorization prevents | in the first place, Credit-Based Authorization prevents | |||
amplifications. This is accomplished by limiting the data a host can | amplifications. This is accomplished by limiting the data a host can | |||
send to an unverified address of a peer by the data recently received | send to an unverified address of a peer by the data recently received | |||
from that peer. Redirection-based flooding attacks thus become less | from that peer. Redirection-based flooding attacks thus become less | |||
attractive than, for example, pure direct flooding, where the | attractive than, for example, pure direct flooding, where the | |||
attacker itself sends bogus packets to the victim. | attacker itself sends bogus packets to the victim. | |||
Figure 9 illustrates Credit-Based Authorization: Host B measures the | Figure 5 illustrates Credit-Based Authorization: Host B measures the | |||
amount of data recently received from peer A and, when A readdresses, | amount of data recently received from peer A and, when A readdresses, | |||
sends packets to A's new, unverified address as long as the sum of | sends packets to A's new, unverified address as long as the sum of | |||
the packet sizes does not exceed the measured, received data volume. | the packet sizes does not exceed the measured, received data volume. | |||
When insufficient credit is left, B stops sending further packets to | When insufficient credit is left, B stops sending further packets to | |||
A until A's address becomes ACTIVE. The address changes may be due | A until A's address becomes ACTIVE. The address changes may be due | |||
to mobility, multihoming, or any other reason. Not shown in Figure 9 | to mobility, multihoming, or any other reason. Not shown in Figure 5 | |||
are the results of credit aging (Section 5.6.2), a mechanism used to | are the results of credit aging (Section 5.6.2), a mechanism used to | |||
dampen possible time-shifting attacks. | dampen possible time-shifting attacks. | |||
+-------+ +-------+ | +-------+ +-------+ | |||
| A | | B | | | A | | B | | |||
+-------+ +-------+ | +-------+ +-------+ | |||
| | | | | | |||
address |------------------------------->| credit += size(packet) | address |------------------------------->| credit += size(packet) | |||
ACTIVE | | | ACTIVE | | | |||
|------------------------------->| credit += size(packet) | |------------------------------->| credit += size(packet) | |||
skipping to change at page 19, line 28 | skipping to change at page 13, line 44 | |||
|<-------------------------------| credit -= size(packet) | |<-------------------------------| credit -= size(packet) | |||
| | | | | | |||
|<-------------------------------| credit -= size(packet) | |<-------------------------------| credit -= size(packet) | |||
| X credit < size(packet) | | X credit < size(packet) | |||
| | => do not send packet! | | | => do not send packet! | |||
+ address verification concludes | | + address verification concludes | | |||
address | | | address | | | |||
ACTIVE |<-------------------------------| do not change credit | ACTIVE |<-------------------------------| do not change credit | |||
| | | | | | |||
Figure 9: Readdressing Scenario | Figure 5: Readdressing Scenario | |||
3.3.3. Preferred Locator | 3.3.3. Preferred Locator | |||
When a host has multiple locators, the peer host must decide which to | When a host has multiple locators, the peer host must decide which to | |||
use for outbound packets. It may be that a host would prefer to | use for outbound packets. It may be that a host would prefer to | |||
receive data on a particular inbound interface. HIP allows a | receive data on a particular inbound interface. HIP allows a | |||
particular locator to be designated as a Preferred locator and | particular locator to be designated as a Preferred locator and | |||
communicated to the peer (see Section 4). | communicated to the peer (see Section 4). | |||
In general, when multiple locators are used for a session, there is | ||||
the question of using multiple locators for failover only or for | ||||
load-balancing. Due to the implications of load-balancing on the | ||||
transport layer that still need to be worked out, this document | ||||
assumes that multiple locators are used primarily for failover. An | ||||
implementation may use ICMP interactions, reachability checks, or | ||||
other means to detect the failure of a locator. | ||||
3.3.4. Interaction with Security Associations | ||||
This document specifies a new HIP protocol parameter, the LOCATOR | ||||
parameter (see Section 4), that allows the hosts to exchange | ||||
information about their locator(s) and any changes in their | ||||
locator(s). The logical structure created with LOCATOR parameters | ||||
has three levels: hosts, Security Associations (SAs) indexed by | ||||
Security Parameter Indices (SPIs), and addresses. | ||||
The relation between these levels for an association constructed as | ||||
defined in the base specification [RFC5201] and ESP transform | ||||
[RFC5202] is illustrated in Figure 10. | ||||
-<- SPI1a -- -- SPI2a ->- | ||||
host1 < > addr1a <---> addr2a < > host2 | ||||
->- SPI2a -- -- SPI1a -<- | ||||
Figure 10: Relation between Hosts, SPIs, and Addresses (Base | ||||
Specification) | ||||
In Figure 10, host1 and host2 negotiate two unidirectional SAs, and | ||||
each host selects the SPI value for its inbound SA. The addresses | ||||
addr1a and addr2a are the source addresses that the hosts use in the | ||||
base HIP exchange. These are the "preferred" (and only) addresses | ||||
conveyed to the peer for use on each SA. That is, although packets | ||||
sent to any of the hosts' interfaces may be accepted on the inbound | ||||
SA, the peer host in general knows of only the single destination | ||||
address learned in the base exchange (e.g., for host1, it sends a | ||||
packet on SPI2a to addr2a to reach host2), unless other mechanisms | ||||
exist to learn of new addresses. | ||||
In general, the bindings that exist in an implementation | ||||
corresponding to this document can be depicted as shown in Figure 11. | ||||
In this figure, a host can have multiple inbound SPIs (and, not | ||||
shown, multiple outbound SPIs) associated with another host. | ||||
Furthermore, each SPI may have multiple addresses associated with it. | ||||
These addresses that are bound to an SPI are not used to lookup the | ||||
incoming SA. Rather, the addresses are those that are provided to | ||||
the peer host, as hints for which addresses to use to reach the host | ||||
on that SPI. The LOCATOR parameter is used to change the set of | ||||
addresses that a peer associates with a particular SPI. | ||||
address11 | ||||
/ | ||||
SPI1 - address12 | ||||
/ | ||||
/ address21 | ||||
host -- SPI2 < | ||||
\ address22 | ||||
\ | ||||
SPI3 - address31 | ||||
\ | ||||
address32 | ||||
Figure 11: Relation between Hosts, SPIs, and Addresses (General Case) | ||||
A host may establish any number of security associations (or SPIs) | ||||
with a peer. The main purpose of having multiple SPIs with a peer is | ||||
to group the addresses into collections that are likely to experience | ||||
fate sharing. For example, if the host needs to change its addresses | ||||
on SPI2, it is likely that both address21 and address22 will | ||||
simultaneously become obsolete. In a typical case, such SPIs may | ||||
correspond with physical interfaces; see below. Note, however, that | ||||
especially in the case of site multihoming, one of the addresses may | ||||
become unreachable while the other one still works. In the typical | ||||
case, however, this does not require the host to inform its peers | ||||
about the situation, since even the non-working address still | ||||
logically exists. | ||||
A basic property of HIP SAs is that the inbound IP address is not | ||||
used to lookup the incoming SA. Therefore, in Figure 11, it may seem | ||||
unnecessary for address31, for example, to be associated only with | ||||
SPI3 -- in practice, a packet may arrive to SPI1 via destination | ||||
address address31 as well. However, the use of different source and | ||||
destination addresses typically leads to different paths, with | ||||
different latencies in the network, and if packets were to arrive via | ||||
an arbitrary destination IP address (or path) for a given SPI, the | ||||
reordering due to different latencies may cause some packets to fall | ||||
outside of the ESP anti-replay window. For this reason, HIP provides | ||||
a mechanism to affiliate destination addresses with inbound SPIs, | ||||
when there is a concern that anti-replay windows might be violated. | ||||
In this sense, we can say that a given inbound SPI has an "affinity" | ||||
for certain inbound IP addresses, and this affinity is communicated | ||||
to the peer host. Each physical interface SHOULD have a separate SA, | ||||
unless the ESP anti-replay window is loose. | ||||
Moreover, even when the destination addresses used for a particular | ||||
SPI are held constant, the use of different source interfaces may | ||||
also cause packets to fall outside of the ESP anti-replay window, | ||||
since the path traversed is often affected by the source address or | ||||
interface used. A host has no way to influence the source interface | ||||
on which a peer sends its packets on a given SPI. A host SHOULD | ||||
consistently use the same source interface and address when sending | ||||
to a particular destination IP address and SPI. For this reason, a | ||||
host may find it useful to change its SPI or at least reset its ESP | ||||
anti-replay window when the peer host readdresses. | ||||
An address may appear on more than one SPI. This creates no | ||||
ambiguity since the receiver will ignore the IP addresses during SA | ||||
lookup anyway. However, this document does not specify such cases. | ||||
When the LOCATOR parameter is sent in an UPDATE packet, then the | ||||
receiver will respond with an UPDATE acknowledgment. When the | ||||
LOCATOR parameter is sent in an R1 or I2 packet, the base exchange | ||||
retransmission mechanism will confirm its successful delivery. | ||||
LOCATORs may experimentally be used in NOTIFY packets; in this case, | ||||
the recipient MUST consider the LOCATOR as informational and not | ||||
immediately change the current preferred address, but can test the | ||||
additional locators when the need arises. The use of the LOCATOR in | ||||
a NOTIFY message may not be compatible with middleboxes. | ||||
4. LOCATOR Parameter Format | 4. LOCATOR Parameter Format | |||
The LOCATOR parameter is a critical parameter as defined by | The LOCATOR parameter is a critical parameter as defined by | |||
[RFC5201]. It consists of the standard HIP parameter Type and Length | [RFC5201]. It consists of the standard HIP parameter Type and Length | |||
fields, plus zero or more Locator sub-parameters. Each Locator sub- | fields, plus zero or more Locator sub-parameters. Each Locator sub- | |||
parameter contains a Traffic Type, Locator Type, Locator Length, | parameter contains a Traffic Type, Locator Type, Locator Length, | |||
Preferred locator bit, Locator Lifetime, and a Locator encoding. A | Preferred locator bit, Locator Lifetime, and a Locator encoding. A | |||
LOCATOR containing zero Locator fields is permitted but has the | LOCATOR containing zero Locator fields is permitted but has the | |||
effect of deprecating all addresses. | effect of deprecating all addresses. | |||
skipping to change at page 23, line 32 | skipping to change at page 14, line 44 | |||
| Traffic Type | Locator Type | Locator Length | Reserved |P| | | Traffic Type | Locator Type | Locator Length | Reserved |P| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Locator Lifetime | | | Locator Lifetime | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Locator | | | Locator | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 12: LOCATOR Parameter Format | Figure 6: LOCATOR Parameter Format | |||
Type: 193 | Type: 193 | |||
Length: Length in octets, excluding Type and Length fields, and | Length: Length in octets, excluding Type and Length fields, and | |||
excluding padding. | excluding padding. | |||
Traffic Type: Defines whether the locator pertains to HIP signaling, | Traffic Type: Defines whether the locator pertains to HIP signaling, | |||
user data, or both. | user data, or both. | |||
Locator Type: Defines the semantics of the Locator field. | Locator Type: Defines the semantics of the Locator field. | |||
Locator Length: Defines the length of the Locator field, in units of | Locator Length: Defines the length of the Locator field, in units of | |||
4-byte words (Locators up to a maximum of 4*255 octets are | 4-byte words (Locators up to a maximum of 4*255 octets are | |||
skipping to change at page 27, line 41 | skipping to change at page 19, line 4 | |||
host moves to another link. In any case, link-local addresses MUST | host moves to another link. In any case, link-local addresses MUST | |||
NOT be announced to a peer unless that peer is known to be on the | NOT be announced to a peer unless that peer is known to be on the | |||
same link. | same link. | |||
Once the host has decided on the groups and assignment of addresses | Once the host has decided on the groups and assignment of addresses | |||
to the SPIs, it creates a LOCATOR parameter that serves as a complete | to the SPIs, it creates a LOCATOR parameter that serves as a complete | |||
representation of the addresses and affiliated SPIs intended for | representation of the addresses and affiliated SPIs intended for | |||
active use. We now describe a few cases introduced in Section 3.2. | active use. We now describe a few cases introduced in Section 3.2. | |||
We assume that the Traffic Type for each locator is set to "0" (other | We assume that the Traffic Type for each locator is set to "0" (other | |||
values for Traffic Type may be specified in documents that separate | values for Traffic Type may be specified in documents that separate | |||
the HIP control plane from data plane traffic). Other mobility and | the HIP control plane from data plane traffic). Other mobility cases | |||
multihoming cases are possible but are left for further | are possible but are left for further experimentation. | |||
experimentation. | ||||
1. Host mobility with no multihoming and no rekeying. The mobile | 1. Host mobility with no multihoming and no rekeying. The mobile | |||
host creates a single UPDATE containing a single ESP_INFO with a | host creates a single UPDATE containing a single ESP_INFO with a | |||
single LOCATOR parameter. The ESP_INFO contains the current | single LOCATOR parameter. The ESP_INFO contains the current | |||
value of the SPI in both the OLD SPI and NEW SPI fields. The | value of the SPI in both the OLD SPI and NEW SPI fields. The | |||
LOCATOR contains a single Locator with a "Locator Type" of "1"; | LOCATOR contains a single Locator with a "Locator Type" of "1"; | |||
the SPI must match that of the ESP_INFO. The Preferred bit | the SPI must match that of the ESP_INFO. The Preferred bit | |||
SHOULD be set and the "Locator Lifetime" is set according to | SHOULD be set and the "Locator Lifetime" is set according to | |||
local policy. The UPDATE also contains a SEQ parameter as usual. | local policy. The UPDATE also contains a SEQ parameter as usual. | |||
This packet is retransmitted as defined in the HIP protocol | This packet is retransmitted as defined in the HIP protocol | |||
skipping to change at page 28, line 22 | skipping to change at page 19, line 32 | |||
single LOCATOR parameter (with a single address). The ESP_INFO | single LOCATOR parameter (with a single address). The ESP_INFO | |||
contains the current value of the SPI in the OLD SPI and the new | contains the current value of the SPI in the OLD SPI and the new | |||
value of the SPI in the NEW SPI, and a KEYMAT Index as selected | value of the SPI in the NEW SPI, and a KEYMAT Index as selected | |||
by local policy. Optionally, the host may choose to initiate a | by local policy. Optionally, the host may choose to initiate a | |||
Diffie Hellman rekey by including a DIFFIE_HELLMAN parameter. | Diffie Hellman rekey by including a DIFFIE_HELLMAN parameter. | |||
The LOCATOR contains a single Locator with "Locator Type" of "1"; | The LOCATOR contains a single Locator with "Locator Type" of "1"; | |||
the SPI must match that of the NEW SPI in the ESP_INFO. | the SPI must match that of the NEW SPI in the ESP_INFO. | |||
Otherwise, the steps are identical to the case in which no | Otherwise, the steps are identical to the case in which no | |||
rekeying is initiated. | rekeying is initiated. | |||
3. Host multihoming (addition of an address). We only describe the | ||||
simple case of adding an additional address to a (previously) | ||||
single-homed, non-mobile host. The host SHOULD set up a new SA | ||||
pair between this new address and the preferred address of the | ||||
peer host. To do this, the multihomed host creates a new inbound | ||||
SA and creates a new SPI. For the outgoing UPDATE message, it | ||||
inserts an ESP_INFO parameter with an OLD SPI field of "0", a NEW | ||||
SPI field corresponding to the new SPI, and a KEYMAT Index as | ||||
selected by local policy. The host adds to the UPDATE message a | ||||
LOCATOR with two Type "1" Locators: the original address and SPI | ||||
active on the association, and the new address and new SPI being | ||||
added (with the SPI matching the NEW SPI contained in the | ||||
ESP_INFO). The Preferred bit SHOULD be set depending on the | ||||
policy to tell the peer host which of the two locators is | ||||
preferred. The UPDATE also contains a SEQ parameter and | ||||
optionally a DIFFIE_HELLMAN parameter, and follows rekeying | ||||
procedures with respect to this new address. The UPDATE message | ||||
SHOULD be sent to the peer's Preferred address with a source | ||||
address corresponding to the new locator. | ||||
The sending of multiple LOCATORs, locators with Locator Type "0", and | The sending of multiple LOCATORs, locators with Locator Type "0", and | |||
multiple ESP_INFO parameters is for further study. Note that the | multiple ESP_INFO parameters is for further study. Note that the | |||
inclusion of LOCATOR in an R1 packet requires the use of Type "0" | inclusion of LOCATOR in an R1 packet requires the use of Type "0" | |||
locators since no SAs are set up at that point. | locators since no SAs are set up at that point. | |||
5.3. Handling Received LOCATORs | 5.3. Handling Received LOCATORs | |||
A host SHOULD be prepared to receive a LOCATOR parameter in the | A host SHOULD be prepared to receive a LOCATOR parameter in the | |||
following HIP packets: R1, I2, UPDATE, and NOTIFY. | following HIP packets: R1, I2, UPDATE, and NOTIFY. | |||
skipping to change at page 31, line 26 | skipping to change at page 22, line 16 | |||
Note that in the case of receiving a LOCATOR in an R1 and replying | Note that in the case of receiving a LOCATOR in an R1 and replying | |||
with an I2 to the new address in the LOCATOR, receiving the | with an I2 to the new address in the LOCATOR, receiving the | |||
corresponding R2 is sufficient proof of reachability for the | corresponding R2 is sufficient proof of reachability for the | |||
Responder's preferred address. Since further address verification of | Responder's preferred address. Since further address verification of | |||
such an address can impede the HIP-base exchange, a host MUST NOT | such an address can impede the HIP-base exchange, a host MUST NOT | |||
separately verify reachability of a new Preferred locator that was | separately verify reachability of a new Preferred locator that was | |||
received on an R1. | received on an R1. | |||
In some cases, it MAY be sufficient to use the arrival of data on a | In some cases, it MAY be sufficient to use the arrival of data on a | |||
newly advertised SA as implicit address reachability verification as | newly advertised SA as implicit address reachability verification as | |||
depicted in Figure 13, instead of waiting for the confirmation via a | depicted in Figure 7, instead of waiting for the confirmation via a | |||
HIP packet. In this case, a host advertising a new SPI as part of | HIP packet. In this case, a host advertising a new SPI as part of | |||
its address reachability check SHOULD be prepared to receive traffic | its address reachability check SHOULD be prepared to receive traffic | |||
on the new SA. | on the new SA. | |||
Mobile host Peer host | Mobile host Peer host | |||
prepare incoming SA | prepare incoming SA | |||
NEW SPI in ESP_INFO (UPDATE) | NEW SPI in ESP_INFO (UPDATE) | |||
<----------------------------------- | <----------------------------------- | |||
switch to new outgoing SA | switch to new outgoing SA | |||
data on new SA | data on new SA | |||
-----------------------------------> | -----------------------------------> | |||
mark address ACTIVE | mark address ACTIVE | |||
Figure 13: Address Activation Via Use of a New SA | Figure 7: Address Activation Via Use of a New SA | |||
When address verification is in progress for a new Preferred locator, | When address verification is in progress for a new Preferred locator, | |||
the host SHOULD select a different locator listed as ACTIVE, if one | the host SHOULD select a different locator listed as ACTIVE, if one | |||
such locator is available, to continue communications until address | such locator is available, to continue communications until address | |||
verification completes. Alternatively, the host MAY use the new | verification completes. Alternatively, the host MAY use the new | |||
Preferred locator while in UNVERIFIED status to the extent Credit- | Preferred locator while in UNVERIFIED status to the extent Credit- | |||
Based Authorization permits. Credit-Based Authorization is explained | Based Authorization permits. Credit-Based Authorization is explained | |||
in Section 5.6. Once address verification succeeds, the status of | in Section 5.6. Once address verification succeeds, the status of | |||
the new Preferred locator changes to ACTIVE. | the new Preferred locator changes to ACTIVE. | |||
skipping to change at page 33, line 22 | skipping to change at page 24, line 9 | |||
status ACTIVE is available, the host checks whether it can send the | status ACTIVE is available, the host checks whether it can send the | |||
packet to the UNVERIFIED locator. The packet SHOULD be sent if the | packet to the UNVERIFIED locator. The packet SHOULD be sent if the | |||
value of the credit counter is higher than the size of the outbound | value of the credit counter is higher than the size of the outbound | |||
packet. If the credit counter is too low, the packet MUST be | packet. If the credit counter is too low, the packet MUST be | |||
discarded or buffered until address verification succeeds. When a | discarded or buffered until address verification succeeds. When a | |||
packet is sent to a peer at an UNVERIFIED locator, the peer's credit | packet is sent to a peer at an UNVERIFIED locator, the peer's credit | |||
counter MUST be reduced by the size of the packet. The peer's credit | counter MUST be reduced by the size of the packet. The peer's credit | |||
counter is not affected by packets that the host sends to an ACTIVE | counter is not affected by packets that the host sends to an ACTIVE | |||
locator of that peer. | locator of that peer. | |||
Figure 14 depicts the actions taken by the host when a packet is | Figure 8 depicts the actions taken by the host when a packet is | |||
received. Figure 15 shows the decision chain in the event a packet | received. Figure 9 shows the decision chain in the event a packet is | |||
is sent. | sent. | |||
Inbound | Inbound | |||
packet | packet | |||
| | | | |||
| +----------------+ +---------------+ | | +----------------+ +---------------+ | |||
| | Increase | | Deliver | | | | Increase | | Deliver | | |||
+-----> | credit counter |-------------> | packet to | | +-----> | credit counter |-------------> | packet to | | |||
| by packet size | | application | | | by packet size | | application | | |||
+----------------+ +---------------+ | +----------------+ +---------------+ | |||
Figure 14: Receiving Packets with Credit-Based Authorization | Figure 8: Receiving Packets with Credit-Based Authorization | |||
Outbound | Outbound | |||
packet | packet | |||
| _________________ | | _________________ | |||
| / \ +---------------+ | | / \ +---------------+ | |||
| / Is the preferred \ No | Send packet | | | / Is the preferred \ No | Send packet | | |||
+-----> | destination address |-------------> | to preferred | | +-----> | destination address |-------------> | to preferred | | |||
\ UNVERIFIED? / | address | | \ UNVERIFIED? / | address | | |||
\_________________/ +---------------+ | \_________________/ +---------------+ | |||
| | | | |||
skipping to change at page 34, line 43 | skipping to change at page 25, line 43 | |||
| | | | |||
| Yes | | Yes | |||
| | | | |||
v | v | |||
+---------------+ +---------------+ | +---------------+ +---------------+ | |||
| Reduce credit | | Send packet | | | Reduce credit | | Send packet | | |||
| counter by |----------------> | to preferred | | | counter by |----------------> | to preferred | | |||
| packet size | | address | | | packet size | | address | | |||
+---------------+ +---------------+ | +---------------+ +---------------+ | |||
Figure 15: Sending Packets with Credit-Based Authorization | Figure 9: Sending Packets with Credit-Based Authorization | |||
5.6.2. Credit Aging | 5.6.2. Credit Aging | |||
A host ensures that the credit counters it maintains for its peers | A host ensures that the credit counters it maintains for its peers | |||
gradually decrease over time. Such "credit aging" prevents a | gradually decrease over time. Such "credit aging" prevents a | |||
malicious peer from building up credit at a very slow speed and using | malicious peer from building up credit at a very slow speed and using | |||
this, all at once, for a severe burst of redirected packets. | this, all at once, for a severe burst of redirected packets. | |||
Credit aging may be implemented by multiplying credit counters with a | Credit aging may be implemented by multiplying credit counters with a | |||
factor, CreditAgingFactor (a fractional value less than one), in | factor, CreditAgingFactor (a fractional value less than one), in | |||
skipping to change at page 40, line 21 | skipping to change at page 31, line 21 | |||
in Progress, February 2006. | in Progress, February 2006. | |||
Appendix A. Document Revision History | Appendix A. Document Revision History | |||
To be removed upon publication | To be removed upon publication | |||
+----------+-------------------------------------------------------+ | +----------+-------------------------------------------------------+ | |||
| Revision | Comments | | | Revision | Comments | | |||
+----------+-------------------------------------------------------+ | +----------+-------------------------------------------------------+ | |||
| draft-00 | Initial version from RFC5206 xml (unchanged). | | | draft-00 | Initial version from RFC5206 xml (unchanged). | | |||
| draft-01 | Remove multihoming-specific text; no other changes. | | ||||
+----------+-------------------------------------------------------+ | +----------+-------------------------------------------------------+ | |||
Authors' Addresses | Authors' Addresses | |||
Pekka Nikander | Pekka Nikander | |||
Ericsson Research NomadicLab | Ericsson Research NomadicLab | |||
JORVAS FIN-02420 | JORVAS FIN-02420 | |||
FINLAND | FINLAND | |||
Phone: +358 9 299 1 | Phone: +358 9 299 1 | |||
End of changes. 33 change blocks. | ||||
494 lines changed or deleted | 102 lines changed or added | |||
This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |