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/