draft-ietf-lisp-map-versioning-04.txt | draft-ietf-lisp-map-versioning-05.txt | |||
---|---|---|---|---|
Network Working Group L. Iannone | Network Working Group L. Iannone | |||
Internet-Draft TU Berlin - Deutsche Telekom | Internet-Draft TU Berlin - Deutsche Telekom | |||
Intended status: Experimental Laboratories AG | Intended status: Experimental Laboratories AG | |||
Expires: March 23, 2012 D. Saucez | Expires: April 15, 2012 D. Saucez | |||
O. Bonaventure | O. Bonaventure | |||
Universite catholique de Louvain | Universite catholique de Louvain | |||
September 20, 2011 | October 13, 2011 | |||
LISP Map-Versioning | LISP Map-Versioning | |||
draft-ietf-lisp-map-versioning-04.txt | draft-ietf-lisp-map-versioning-05.txt | |||
Abstract | Abstract | |||
This document describes the LISP (Locator/ID Separation Protocol) | This document describes the LISP (Locator/ID Separation Protocol) | |||
Map-Versioning mechanism, which provides in-packet information about | Map-Versioning mechanism, which provides in-packet information about | |||
Endpoint-ID to Routing Locator (EID-to-RLOC) mappings used to | Endpoint-ID to Routing Locator (EID-to-RLOC) mappings used to | |||
encapsulate LISP data packets. The proposed approach is based on | encapsulate LISP data packets. The proposed approach is based on | |||
associating a version number to EID-to-RLOC mappings and transport | associating a version number to EID-to-RLOC mappings and transport | |||
such a version number in the LISP specific header of LISP- | such a version number in the LISP specific header of LISP- | |||
encapsulated packets. LISP Map-Versioning is particularly useful to | encapsulated packets. LISP Map-Versioning is particularly useful to | |||
skipping to change at page 1, line 45 | skipping to change at page 1, line 45 | |||
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 March 23, 2012. | This Internet-Draft will expire on April 15, 2012. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 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 25 | skipping to change at page 2, line 25 | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Definitions of Terms . . . . . . . . . . . . . . . . . . . . . 4 | 3. Definitions of Terms . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. EID-to-RLOC Map-Version number . . . . . . . . . . . . . . . . 4 | 4. EID-to-RLOC Map-Version number . . . . . . . . . . . . . . . . 4 | |||
4.1. The Null Map-Version . . . . . . . . . . . . . . . . . . . 5 | 4.1. The Null Map-Version . . . . . . . . . . . . . . . . . . . 5 | |||
5. Dealing with Map-Version numbers . . . . . . . . . . . . . . . 6 | 5. Dealing with Map-Version numbers . . . . . . . . . . . . . . . 6 | |||
5.1. Handling Destination Map-Version number . . . . . . . . . 7 | 5.1. Handling Destination Map-Version number . . . . . . . . . 7 | |||
5.2. Handling Source Map-Version number . . . . . . . . . . . . 8 | 5.2. Handling Source Map-Version number . . . . . . . . . . . . 9 | |||
6. LISP header and Map-Version numbers . . . . . . . . . . . . . 9 | 6. LISP header and Map-Version numbers . . . . . . . . . . . . . 9 | |||
7. Map Record and Map-Version . . . . . . . . . . . . . . . . . . 10 | 7. Map Record and Map-Version . . . . . . . . . . . . . . . . . . 10 | |||
8. Benefits and case studies for Map-Versioning . . . . . . . . . 11 | 8. Benefits and case studies for Map-Versioning . . . . . . . . . 11 | |||
8.1. Synchronization of different xTRs . . . . . . . . . . . . 11 | 8.1. Synchronization of different xTRs . . . . . . . . . . . . 11 | |||
8.2. Map-Versioning and unidirectional traffic . . . . . . . . 12 | 8.2. Map-Versioning and unidirectional traffic . . . . . . . . 12 | |||
8.3. Map-Versioning and interworking . . . . . . . . . . . . . 13 | 8.3. Map-Versioning and interworking . . . . . . . . . . . . . 13 | |||
8.3.1. Map-Versioning and Proxy-ITRs . . . . . . . . . . . . 13 | 8.3.1. Map-Versioning and Proxy-ITRs . . . . . . . . . . . . 13 | |||
8.3.2. Map-Versioning and LISP-NAT . . . . . . . . . . . . . 14 | 8.3.2. Map-Versioning and LISP-NAT . . . . . . . . . . . . . 14 | |||
8.3.3. Map-Versioning and Proxy-ETRs . . . . . . . . . . . . 14 | 8.3.3. Map-Versioning and Proxy-ETRs . . . . . . . . . . . . 14 | |||
8.4. RLOC shutdown/withdraw . . . . . . . . . . . . . . . . . . 15 | 8.4. RLOC shutdown/withdraw . . . . . . . . . . . . . . . . . . 15 | |||
skipping to change at page 3, line 13 | skipping to change at page 3, line 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
1. Introduction | 1. Introduction | |||
This document describes the Map-Versioning mechanism used to provide | This document describes the Map-Versioning mechanism used to provide | |||
information on changes in the EID-to-RLOC mappings used in the LISP | information on changes in the EID-to-RLOC mappings used in the LISP | |||
([I-D.ietf-lisp]) context to perform packet encapsulation. The | ([I-D.ietf-lisp]) context to perform packet encapsulation. The | |||
mechanism is totally transparent to xTRs not supporting such | mechanism is totally transparent to xTRs not supporting such | |||
functionality. It is not meant to replace any existing LISP | functionality. It is not meant to replace any existing LISP | |||
mechanism, but rather to extend them providing new functionalities. | mechanism, but rather to extend them providing new functionalities. | |||
If for any unforseen reason a normative conflict between the present | ||||
document and the LISP main specifications is found, the latter | ||||
([I-D.ietf-lisp]) has precedence on the present document. | ||||
The basic mechanism is to associate a Map-Version number to each LISP | The basic mechanism is to associate a Map-Version number to each LISP | |||
EID-to-RLOC mapping and transport such a version number in the LISP- | EID-to-RLOC mapping and transport such a version number in the LISP- | |||
specific header. When a mapping changes, a new version number is | specific header. When a mapping changes, a new version number is | |||
assigned to the updated mapping. A change in an EID-to-RLOC mapping | assigned to the updated mapping. A change in an EID-to-RLOC mapping | |||
can be a change in the RLOCs set, by adding or removing one or more | can be a change in the RLOCs set, by adding or removing one or more | |||
RLOCs, but it can also be a change in the priority or weight of one | RLOCs, but it can also be a change in the priority or weight of one | |||
or more RLOCs. | or more RLOCs. | |||
When Map-Versioning is used, LISP-encapsulated data packets contain | When Map-Versioning is used, LISP-encapsulated data packets contain | |||
the version number of the two mappings used to select the RLOCs in | the version number of the two mappings used to select the RLOCs in | |||
skipping to change at page 4, line 15 | skipping to change at page 4, line 15 | |||
2. Requirements Notation | 2. Requirements Notation | |||
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 [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
3. Definitions of Terms | 3. Definitions of Terms | |||
The present document uses terms already defined in main LISP | The present document uses terms already defined in main LISP | |||
specification [I-D.ietf-lisp]. Hereafter are defined only the terms | specification [I-D.ietf-lisp]. Hereafter are defined only the terms | |||
that are specific to the Map-Versioning mechanism. | that are specific to the Map-Versioning mechanism. Throughout the | |||
whole document Big Endian bit ordering is used. | ||||
Map-Version number: An unsigned 12-bits assigned to an EID-to-RLOC | Map-Version number: An unsigned 12-bits assigned to an EID-to-RLOC | |||
mapping, not including the value 0 (0x000). | mapping, not including the value 0 (0x000). | |||
Null Map-Version: The 12-bits null value of 0 (0x000) is not used as | Null Map-Version: The 12-bits null value of 0 (0x000) is not used as | |||
Map-Version number. It is used to signal that no Map-Version | Map-Version number. It is used to signal that no Map-Version | |||
number is assigned to the EID-to-RLOC mapping. | number is assigned to the EID-to-RLOC mapping. | |||
Source Map-Version number: Map-Version number of the EID-to-RLOC | Source Map-Version number: Map-Version number of the EID-to-RLOC | |||
mapping used to select the source address (RLOC) of the outer IP | mapping used to select the source address (RLOC) of the outer IP | |||
skipping to change at page 4, line 43 | skipping to change at page 4, line 44 | |||
The EID-to-RLOC Map-Version number consists in an unsigned 12-bits | The EID-to-RLOC Map-Version number consists in an unsigned 12-bits | |||
integer. The version number is assigned on a per-mapping basis, | integer. The version number is assigned on a per-mapping basis, | |||
meaning that different mappings have a different version number, | meaning that different mappings have a different version number, | |||
which is also updated independently. An update in the version number | which is also updated independently. An update in the version number | |||
(i.e., a newer version) consists in incrementing by one the older | (i.e., a newer version) consists in incrementing by one the older | |||
version number. Appendix A contains a rough estimation of the wrap- | version number. Appendix A contains a rough estimation of the wrap- | |||
around time for the Map-Version number. | around time for the Map-Version number. | |||
The space of version numbers has a circular order where half of the | The space of version numbers has a circular order where half of the | |||
version numbers is greater than the current Map-Version number and | version numbers is greater(i.e., newer) than the current Map-Version | |||
the other half is smaller than current Map-Version number. In a more | number and the other half is smaller (i.e., older) than current Map- | |||
formal way, assuming we have two version numbers V1 and V2 and that | Version number. In a more formal way, assuming we have two version | |||
the numbers are expressed on N bits, the following three cases may | numbers V1 and V2 and that the numbers are expressed on N bits, the | |||
happen: | following steps MUST be performed (in the same order as hereafter) to | |||
strictly define their order: | ||||
V1 = V2 : This is the exact match case. | 1. V1 = V2 : The map-version number are the same. | |||
V1 < V2 : True if and only if V1 < V2 < (V1 + 2**(N-1)). | 2. V2 > V1 : if and only if | |||
V1 > V2 : True if and only if V1 > V2 > (V1 - 2**(N-1)). | V2 > V1 AND (V2 - V1) <= 2**(N-1) | |||
OR | ||||
V1 > V2 AND (V1 - V2) > 2**(N-1) | ||||
3. V1 > V2 : otherwise. | ||||
Using 12 bits, as defined in this document, and assuming a Map- | Using 12 bits, as defined in this document, and assuming a Map- | |||
Version value of 69, Map-Version numbers in the range [70; 69 + 2047] | Version value of 69, Map-Version numbers in the range [70; 69 + 2048] | |||
are greater than 69, while Map-Version numbers in the range [69 + | are greater than 69, while Map-Version numbers in the range [69 + | |||
2048; (69 + 4095) mod 4096] are smaller than 69. | 2049; (69 + 4096) mod 4096] are smaller than 69. | |||
The initial Map-Version number of a new EID-to-RLOC mapping SHOULD be | Map-version number are assigned to mappings by configuration. The | |||
randomly generated. However, it MUST NOT be set to the Null Map- | initial Map-Version number of a new EID-to-RLOC mapping SHOULD be | |||
Version value (0x000), because it has a special meaning (see | assigned randomly, but it MUST NOT be set to the Null Map-Version | |||
Section 4.1). | value (0x000), because it has a special meaning (see Section 4.1). | |||
Upon reboot, an ETR will use mappings configured in its EID-to-RLOC | ||||
Database. If those mappings have a Map-Version number, it will be | ||||
used according to the mechnisms described in this document. ETRs | ||||
MUST NOT automatically generate and assign Map-Version numbers to | ||||
mappings in the EID-to-RLOC Database. | ||||
4.1. The Null Map-Version | 4.1. The Null Map-Version | |||
The value 0x000 (zero) is not a valid Map-Version number indicating | The value 0x000 (zero) is not a valid Map-Version number indicating | |||
the version of the EID-to-RLOC mapping. Such a value is used for | the version of the EID-to-RLOC mapping. Such a value is used for | |||
special purposes and is named the Null Map-Version number. | special purposes and is named the Null Map-Version number. | |||
The Null Map-Version MAY appear in the LISP specific header as either | The Null Map-Version MAY appear in the LISP specific header as either | |||
Source Map-Version number (cf. Section 5.2) or Destination Map- | Source Map-Version number (cf. Section 5.2) or Destination Map- | |||
Version number (cf. Section 5.1). When the Source Map-Version number | Version number (cf. Section 5.1). When the Source Map-Version number | |||
skipping to change at page 6, line 25 | skipping to change at page 6, line 37 | |||
anymore from a local perspective (e.g., through IGP, or policy | anymore from a local perspective (e.g., through IGP, or policy | |||
changes) the LISP site updates the mapping also assigning a new Map- | changes) the LISP site updates the mapping also assigning a new Map- | |||
Version number. | Version number. | |||
To each mapping, a version number is associated and changes each time | To each mapping, a version number is associated and changes each time | |||
the mapping is changed. Note that map-versioning does not introduce | the mapping is changed. Note that map-versioning does not introduce | |||
new problems concerning the coordination of different ETRs of a | new problems concerning the coordination of different ETRs of a | |||
domain. Indeed, ETRs belonging to the same LISP site must return for | domain. Indeed, ETRs belonging to the same LISP site must return for | |||
a specific EID-prefix the same mapping, including the same Map- | a specific EID-prefix the same mapping, including the same Map- | |||
Version number. In principle this is orthogonal to whether or not | Version number. In principle this is orthogonal to whether or not | |||
map-versioning is used. The synchronization problem is out of the | map-versioning is used. The synchronization problem and its | |||
scope of this document. | implication on the traffic is out of the scope of this document. | |||
In order to announce in a data-driven fashion that the mapping has | In order to announce in a data-driven fashion that the mapping has | |||
been updated, Map-Version numbers used to create the outer IP header | been updated, Map-Version numbers used to create the outer IP header | |||
of the LISP-encapsulated packet are embedded in the LISP-specific | of the LISP-encapsulated packet are embedded in the LISP-specific | |||
header. This means that the header needs to contain two Map-Version | header. This means that the header needs to contain two Map-Version | |||
numbers: | numbers: | |||
o The Source Map-Version number of the EID-to-RLOC mapping in the | o The Source Map-Version number of the EID-to-RLOC mapping in the | |||
EID-to-RLOC Database used to select the source RLOC. | EID-to-RLOC Database used to select the source RLOC. | |||
skipping to change at page 19, line 41 | skipping to change at page 19, line 41 | |||
| 15 | 22 Days | 9 Hours | | | 15 | 22 Days | 9 Hours | | |||
| 14 | 11 Days | 4 Hours | | | 14 | 11 Days | 4 Hours | | |||
| 13 | 5.6 Days | 2.2 Hours | | | 13 | 5.6 Days | 2.2 Hours | | |||
| 12 | 2.8 Days | 1.1 Hours | | | 12 | 2.8 Days | 1.1 Hours | | |||
+---------------+---------------------+----------------------+ | +---------------+---------------------+----------------------+ | |||
Figure 5: Estimation of time before wrap-around | Figure 5: Estimation of time before wrap-around | |||
Appendix B. Document Change Log | Appendix B. Document Change Log | |||
o Version 05 Posted October 2011. | ||||
* Added sentence in Section 3 on the use of Big Endian, as for | ||||
comment of P. Resnick. | ||||
* Extended the end of Section 4 in order to clarify that Map- | ||||
Version numbers are assigned to mappings by configuration and | ||||
not automatically generated by ETRs, as for comments of R. | ||||
Sparks | ||||
* Changed formal definition of Map-Version order (greater vs. | ||||
smaller) in Section 4 as for comments from R. Housley and R. | ||||
Sparks. | ||||
* Added disclaimer in Section 1 stating that in case of unforseen | ||||
conflict with the main spec the base document has precedence on | ||||
the present one, as for comment from Sthephen Farrell. | ||||
o Version 04 Posted September 2011. | o Version 04 Posted September 2011. | |||
* Added clarifications in Section 1, Section 4, Section 5.2, and | * Added clarifications in Section 1, Section 4, Section 5.2, and | |||
Section 5.1 to address Stephen Farrell's comments. | Section 5.1 to address Stephen Farrell's comments. | |||
* Used the term LISP Site instead of ISP in Section 5 as | * Used the term LISP Site instead of ISP in Section 5 as | |||
suggested by Stephen Farrell. | suggested by Stephen Farrell. | |||
* Deleted "(usually contains the nonce)" from Section 6 because | * Deleted "(usually contains the nonce)" from Section 6 because | |||
confusing, as suggested by Stephen Farrell. | confusing, as suggested by Stephen Farrell. | |||
End of changes. 16 change blocks. | ||||
22 lines changed or deleted | 58 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |