draft-ietf-shim6-failure-detection-12.txt   faildet.txt 
Network Working Group J. Arkko Network Working Group J. Arkko
Internet-Draft Ericsson Internet-Draft Ericsson
Intended status: Standards Track I. van Beijnum Intended status: Standards Track I. van Beijnum
Expires: December 8, 2008 IMDEA Networks Expires: February 2, 2009 IMDEA Networks
June 6, 2008 August 2008
Failure Detection and Locator Pair Exploration Protocol for IPv6 Failure Detection and Locator Pair Exploration Protocol for IPv6
Multihoming Multihoming
draft-ietf-shim6-failure-detection-12 draft-ietf-shim6-failure-detection-14
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on December 8, 2008. This Internet-Draft will expire on February 2, 2009.
Abstract Abstract
This document specifies how the level 3 multihoming shim protocol This document specifies how the level 3 multihoming shim protocol
(SHIM6) detects failures between two communicating hosts. It also (SHIM6) detects failures between two communicating hosts. It also
specifies an exploration protocol for switching to another pair of specifies an exploration protocol for switching to another pair of
interfaces and/or addresses between the same hosts if a failure interfaces and/or addresses between the same hosts if a failure
occurs and an operational pair can be found. occurs and an operational pair can be found.
Table of Contents Table of Contents
skipping to change at page 3, line 19 skipping to change at page 3, line 19
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1. Available Addresses . . . . . . . . . . . . . . . . . . 7 3.1. Available Addresses . . . . . . . . . . . . . . . . . . 7
3.2. Locally Operational Addresses . . . . . . . . . . . . . 8 3.2. Locally Operational Addresses . . . . . . . . . . . . . 8
3.3. Operational Address Pairs . . . . . . . . . . . . . . . 8 3.3. Operational Address Pairs . . . . . . . . . . . . . . . 8
3.4. Primary Address Pair . . . . . . . . . . . . . . . . . . 10 3.4. Primary Address Pair . . . . . . . . . . . . . . . . . . 10
3.5. Current Address Pair . . . . . . . . . . . . . . . . . . 10 3.5. Current Address Pair . . . . . . . . . . . . . . . . . . 10
4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 11 4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 11
4.1. Failure Detection . . . . . . . . . . . . . . . . . . . 11 4.1. Failure Detection . . . . . . . . . . . . . . . . . . . 11
4.2. Full Reachability Exploration . . . . . . . . . . . . . 13 4.2. Full Reachability Exploration . . . . . . . . . . . . . 13
4.3. Exploration Order . . . . . . . . . . . . . . . . . . . 14 4.3. Exploration Order . . . . . . . . . . . . . . . . . . . 14
5. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 16 5. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 17
5.1. Keepalive Message . . . . . . . . . . . . . . . . . . . 16 5.1. Keepalive Message . . . . . . . . . . . . . . . . . . . 17
5.2. Probe Message . . . . . . . . . . . . . . . . . . . . . 17 5.2. Probe Message . . . . . . . . . . . . . . . . . . . . . 18
5.3. Keepalive Timeout Option Format . . . . . . . . . . . . 21 5.3. Keepalive Timeout Option Format . . . . . . . . . . . . 22
6. Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6. Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.1. Incoming payload packet . . . . . . . . . . . . . . . . 23 6.1. Incoming payload packet . . . . . . . . . . . . . . . . 24
6.2. Outgoing payload packet . . . . . . . . . . . . . . . . 24 6.2. Outgoing payload packet . . . . . . . . . . . . . . . . 25
6.3. Keepalive timeout . . . . . . . . . . . . . . . . . . . 24 6.3. Keepalive timeout . . . . . . . . . . . . . . . . . . . 25
6.4. Send timeout . . . . . . . . . . . . . . . . . . . . . . 25 6.4. Send timeout . . . . . . . . . . . . . . . . . . . . . . 26
6.5. Retransmission . . . . . . . . . . . . . . . . . . . . . 25 6.5. Retransmission . . . . . . . . . . . . . . . . . . . . . 26
6.6. Reception of the Keepalive message . . . . . . . . . . . 25 6.6. Reception of the Keepalive message . . . . . . . . . . . 26
6.7. Reception of the Probe message State=Exploring . . . . . 26 6.7. Reception of the Probe message State=Exploring . . . . . 27
6.8. Reception of the Probe message State=InboundOk . . . . . 26 6.8. Reception of the Probe message State=InboundOk . . . . . 27
6.9. Reception of the Probe message State=Operational . . . . 26 6.9. Reception of the Probe message State=Operational . . . . 27
6.10. Graphical Representation of the State Machine . . . . . 27 6.10. Graphical Representation of the State Machine . . . . . 28
7. Protocol Constants . . . . . . . . . . . . . . . . . . . . . . 28 7. Protocol Constants . . . . . . . . . . . . . . . . . . . . . . 29
8. Security Considerations . . . . . . . . . . . . . . . . . . . 29 8. Security Considerations . . . . . . . . . . . . . . . . . . . 30
9. Operational Considerations . . . . . . . . . . . . . . . . . . 31 9. Operational Considerations . . . . . . . . . . . . . . . . . . 32
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35
11.1. Normative References . . . . . . . . . . . . . . . . . . 34 11.1. Normative References . . . . . . . . . . . . . . . . . . 35
11.2. Informative References . . . . . . . . . . . . . . . . . 34 11.2. Informative References . . . . . . . . . . . . . . . . . 35
Appendix A. Example Protocol Runs . . . . . . . . . . . . . . . . 36 Appendix A. Example Protocol Runs . . . . . . . . . . . . . . . . 38
Appendix B. Contributors . . . . . . . . . . . . . . . . . . . . 41 Appendix B. Contributors . . . . . . . . . . . . . . . . . . . . 43
Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 42 Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 44
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 43 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45
Intellectual Property and Copyright Statements . . . . . . . . . . 44 Intellectual Property and Copyright Statements . . . . . . . . . . 46
1. Introduction 1. Introduction
The SHIM6 protocol [I-D.ietf-shim6-proto] extends IPv6 to support The SHIM6 protocol [I-D.ietf-shim6-proto] extends IPv6 to support
multihoming. It is an IP layer mechanism that hides multihoming from multihoming. It is an IP layer mechanism that hides multihoming from
applications. A part of the SHIM6 solution involves detecting when a applications. A part of the SHIM6 solution involves detecting when a
currently used pair of addresses (or interfaces) between two currently used pair of addresses (or interfaces) between two
communication hosts has failed, and picking another pair when this communication hosts has failed, and picking another pair when this
occurs. We call the former failure detection, and the latter locator occurs. We call the former failure detection, and the latter locator
pair exploration. pair exploration.
skipping to change at page 9, line 17 skipping to change at page 9, line 17
Definition. Unidirectionally operational address pair - a pair of Definition. Unidirectionally operational address pair - a pair of
locally operational addresses are said to be an unidirectionally locally operational addresses are said to be an unidirectionally
operational address pair when packets sent with the first address as operational address pair when packets sent with the first address as
the source and the second address as the destination reaches the the source and the second address as the destination reaches the
destination. destination.
SHIM6 implementations MUST support the discovery of operational SHIM6 implementations MUST support the discovery of operational
address pairs through the use of explicit reachability tests and address pairs through the use of explicit reachability tests and
Forced Bidirectional Communication (FBD), described later in this Forced Bidirectional Communication (FBD), described later in this
specification. In addition, implementations MAY employ additional specification. Future extensions of SHIM6 may specify additional
mechanisms. Some ideas of such mechanisms are listed below, but not mechanisms. Some ideas of such mechanisms are listed below, but not
fully specified in this document: fully specified in this document:
o Positive feedback from upper layer protocols. For instance, TCP o Positive feedback from upper layer protocols. For instance, TCP
can indicate to the IP layer that it is making progress. This is can indicate to the IP layer that it is making progress. This is
similar to how IPv6 Neighbor Unreachability Detection can in some similar to how IPv6 Neighbor Unreachability Detection can in some
cases be avoided when upper layers provide information about cases be avoided when upper layers provide information about
bidirectional connectivity [RFC4861]. bidirectional connectivity [RFC4861].
In the case of unidirectional connectivity, the upper layer In the case of unidirectional connectivity, the upper layer
skipping to change at page 9, line 39 skipping to change at page 9, line 39
that the messages sent using the first address pair have been that the messages sent using the first address pair have been
received. received.
o Negative feedback from upper layer protocols. It is conceivable o Negative feedback from upper layer protocols. It is conceivable
that upper layer protocols give an indication of a problem to the that upper layer protocols give an indication of a problem to the
multihoming layer. For instance, TCP could indicate that there's multihoming layer. For instance, TCP could indicate that there's
either congestion or lack of connectivity in the path because it either congestion or lack of connectivity in the path because it
is not getting ACKs. is not getting ACKs.
o ICMP error messages. Given the ease of spoofing ICMP messages, o ICMP error messages. Given the ease of spoofing ICMP messages,
one should be careful to not trust these blindly, however. Our one should be careful to not trust these blindly, however. One
suggestion is to use ICMP error messages only as a hint to perform approach would be to use ICMP error messages only as a hint to
an explicit reachability test or move an address pair to a lower perform an explicit reachability test or move an address pair to a
place in the list of address pairs to be probed, but not as a lower place in the list of address pairs to be probed, but not as
reason to disrupt ongoing communications without other indications a reason to disrupt ongoing communications without other
of problems. The situation may be different when certain indications of problems. The situation may be different when
verifications of the ICMP messages are being performed, as certain verifications of the ICMP messages are being performed, as
explained by Gont in [I-D.ietf-tcpm-icmp-attacks]. These explained by Gont in [I-D.ietf-tcpm-icmp-attacks]. These
verifications can ensure that (practically) only on-path attackers verifications can ensure that (practically) only on-path attackers
can spoof the messages. can spoof the messages.
3.4. Primary Address Pair 3.4. Primary Address Pair
The primary address pair consists of the addresses that upper layer The primary address pair consists of the addresses that upper layer
protocols use in their interaction with the SHIM6 layer. Use of the protocols use in their interaction with the SHIM6 layer. Use of the
primary address pair means that the communication is compatible with primary address pair means that the communication is compatible with
regular non-SHIM6 communication and no context ID needs to be regular non-SHIM6 communication and no context ID needs to be
skipping to change at page 14, line 32 skipping to change at page 14, line 32
having only unidirectionally operational address pairs. However, due having only unidirectionally operational address pairs. However, due
to security concerns discussed in Section 8, the exploration process to security concerns discussed in Section 8, the exploration process
can typically be run only for a session that has already been can typically be run only for a session that has already been
established. Specifically, while REAP would in theory be capable of established. Specifically, while REAP would in theory be capable of
exploration even during connection establishment, its use within the exploration even during connection establishment, its use within the
SHIM6 protocol does not allow this. SHIM6 protocol does not allow this.
4.3. Exploration Order 4.3. Exploration Order
The exploration process assumes an ability to choose address pairs The exploration process assumes an ability to choose address pairs
for testing, in some sequence. This process may result in a for testing. An overview of the choosing process used by REAP is as
combinatorial explosion when there are many addresses on both sides, follows:
but a back-off procedure is employed to avoid a "signaling storm".
Nodes first consult the RFC 3484 default address selection rules o As an input to start the process, the node has knowledge of its
[RFC3484] to determine what combinations of addresses are allowed own addresses and has been told via SHIM6 protocol messages what
from a local point of view, as this reduces the search space. RFC the addresses of the peer are. A list of possible pairs of
3484 also provides a priority ordering among different address pairs, addresses can be constructed by combining the two pieces of
making the search possibly faster. (Additional mechanisms may be information.
defined in the future for arriving at an initial ordering of address
pairs before testing starts [I-D.ietf-shim6-locator-pair-selection].) o By employing standard IPv6 address selection rules, the list is
Nodes may also use local information, such as known quality of pruned by removing combinations that are inappropriate, such as
service parameters or interface types to determine what addresses are attempting to use a link local address when contacting a peer that
preferred over others, and try pairs containing such addresses first. uses an off-link global unicast address.
The SHIM6 protocol also carries preference information in its
messages. o Similarly, standard IPv6 address selection rules provide a basic
priority order for the pairs.
o Local preferences may be applied for some additional tuning of the
order in the list. The mechanisms for local preference settings
are not specified, but can involve, for instance, configuration
that sets the preference for using one interface over another.
o As a result, the node has a prioritized list of address pairs to
try. However, the list may still be long, as there may be a
combinatorial explosion when there are many addresses on both
sides. REAP employs these pairs sequentially, however, and uses a
back-off procedure is to avoid a "signaling storm". This ensures
that the exploration process is relatively conservative or "safe".
The tradeoff is that finding a working path may take time if there
are many addresses on both sides.
In more detail, the process is as follows. Nodes first consult the
RFC 3484 default address selection rules [RFC3484] to determine what
combinations of addresses are allowed from a local point of view, as
this reduces the search space. RFC 3484 also provides a priority
ordering among different address pairs, making the search possibly
faster. (Additional mechanisms may be defined in the future for
arriving at an initial ordering of address pairs before testing
starts [I-D.ietf-shim6-locator-pair-selection].) Nodes may also use
local information, such as known quality of service parameters or
interface types to determine what addresses are preferred over
others, and try pairs containing such addresses first. The SHIM6
protocol also carries preference information in its messages.
Out of the set of possible candidate address pairs, nodes SHOULD Out of the set of possible candidate address pairs, nodes SHOULD
attempt to test through all of them until an operational pair is attempt to test through all of them until an operational pair is
found, and retrying the process as is necessary. However, all nodes found, and retrying the process as is necessary. However, all nodes
MUST perform this process sequentially and with exponential back-off. MUST perform this process sequentially and with exponential back-off.
This sequential process is necessary in order to avoid a "signaling This sequential process is necessary in order to avoid a "signaling
storm" when an outage occurs (particularly for a complete site). storm" when an outage occurs (particularly for a complete site).
However, it also limits the number of addresses that can in practice However, it also limits the number of addresses that can in practice
be used for multihoming, considering that transport and application be used for multihoming, considering that transport and application
layer protocols will fail if the switch to a new address pair takes layer protocols will fail if the switch to a new address pair takes
skipping to change at page 35, line 5 skipping to change at page 36, line 5
environments", draft-bagnulo-shim6-addr-selection-00 (work environments", draft-bagnulo-shim6-addr-selection-00 (work
in progress), October 2005. in progress), October 2005.
[I-D.huitema-multi6-addr-selection] [I-D.huitema-multi6-addr-selection]
Huitema, C., "Address selection in multihomed Huitema, C., "Address selection in multihomed
environments", draft-huitema-multi6-addr-selection-00 environments", draft-huitema-multi6-addr-selection-00
(work in progress), October 2004. (work in progress), October 2004.
[I-D.ietf-bfd-base] [I-D.ietf-bfd-base]
Katz, D. and D. Ward, "Bidirectional Forwarding Katz, D. and D. Ward, "Bidirectional Forwarding
Detection", draft-ietf-bfd-base-06 (work in progress), Detection", draft-ietf-bfd-base-08 (work in progress),
March 2007. March 2008.
[I-D.ietf-dna-cpl] [I-D.ietf-dna-cpl]
Nordmark, E. and J. Choi, "DNA with unmodified routers: Nordmark, E. and J. Choi, "DNA with unmodified routers:
Prefix list based approach", draft-ietf-dna-cpl-02 (work Prefix list based approach", draft-ietf-dna-cpl-02 (work
in progress), January 2006. in progress), January 2006.
[I-D.ietf-dna-protocol] [I-D.ietf-dna-protocol]
Kempf, J., "Detecting Network Attachment in IPv6 Networks Narayanan, S., Kempf, J., Nordmark, E., Pentland, B.,
(DNAv6)", draft-ietf-dna-protocol-06 (work in progress), Choi, J., Daley, G., and N. Montavont, "Detecting Network
June 2007. Attachment in IPv6 Networks (DNAv6)",
draft-ietf-dna-protocol-07 (work in progress),
February 2008.
[I-D.ietf-hip-mm] [I-D.ietf-hip-mm]
Henderson, T., "End-Host Mobility and Multihoming with the Henderson, T., "End-Host Mobility and Multihoming with the
Host Identity Protocol", draft-ietf-hip-mm-05 (work in Host Identity Protocol", draft-ietf-hip-mm-05 (work in
progress), March 2007. progress), March 2007.
[I-D.ietf-shim6-locator-pair-selection] [I-D.ietf-shim6-locator-pair-selection]
Bagnulo, M., "Default Locator-pair selection algorithm for Bagnulo, M., "Default Locator-pair selection algorithm for
the SHIM6 protocol", the SHIM6 protocol",
draft-ietf-shim6-locator-pair-selection-02 (work in draft-ietf-shim6-locator-pair-selection-03 (work in
progress), July 2007. progress), February 2008.
[I-D.ietf-shim6-proto] [I-D.ietf-shim6-proto]
Bagnulo, M. and E. Nordmark, "Shim6: Level 3 Multihoming Nordmark, E. and M. Bagnulo, "Shim6: Level 3 Multihoming
Shim Protocol for IPv6", draft-ietf-shim6-proto-09 (work Shim Protocol for IPv6", draft-ietf-shim6-proto-10 (work
in progress), November 2007. in progress), February 2008.
[I-D.ietf-shim6-reach-detect] [I-D.ietf-shim6-reach-detect]
Beijnum, I., "Shim6 Reachability Detection", Beijnum, I., "Shim6 Reachability Detection",
draft-ietf-shim6-reach-detect-01 (work in progress), draft-ietf-shim6-reach-detect-01 (work in progress),
October 2005. October 2005.
[I-D.ietf-tcpm-icmp-attacks] [I-D.ietf-tcpm-icmp-attacks]
Gont, F., "ICMP attacks against TCP", Gont, F., "ICMP attacks against TCP",
draft-ietf-tcpm-icmp-attacks-02 (work in progress), draft-ietf-tcpm-icmp-attacks-03 (work in progress),
May 2007. March 2008.
[RFC1122] Braden, R., "Requirements for Internet Hosts - [RFC1122] Braden, R., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, October 1989. Communication Layers", STD 3, RFC 1122, October 1989.
[RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure
Neighbor Discovery (SEND)", RFC 3971, March 2005. Neighbor Discovery (SEND)", RFC 3971, March 2005.
[RFC4960] Stewart, R., "Stream Control Transmission Protocol", [RFC4960] Stewart, R., "Stream Control Transmission Protocol",
RFC 4960, September 2007. RFC 4960, September 2007.
 End of changes. 13 change blocks. 
66 lines changed or deleted 95 lines changed or added

This html diff was produced by rfcdiff 1.32. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/