< draft-pfister-6man-sadr-ra-00.txt   draft-pfister-6man-sadr-ra-01.txt >
Network Working Group P. Pfister Network Working Group P. Pfister
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Updates: 4191 (if approved) February 27, 2015 Updates: 4191 (if approved) June 22, 2015
Intended status: Standards Track Intended status: Standards Track
Expires: August 31, 2015 Expires: December 24, 2015
Source Address Dependent Route Information Option for Router Source Address Dependent Route Information Option for Router
Advertisements Advertisements
draft-pfister-6man-sadr-ra-00 draft-pfister-6man-sadr-ra-01
Abstract Abstract
This document defines the Source Address Dependent Route Information This document defines the Source Address Dependent Route Information
option for Router Advertisements, enabling source address dependent option for Router Advertisements, enabling source address dependent
routes to be installed in hosts by neighboring routers. It also adds routes to be installed in hosts by neighboring routers. It also adds
a new flag to the existing Route Information option for backward a new flag to the existing Route Information option for backward
compatibility purposes. compatibility purposes.
Status of This Memo Status of This Memo
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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 August 31, 2015. This Internet-Draft will expire on December 24, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Source Address Dependent Route Information Option . . . . . . 2 2. Source Address Dependent Route Information Option . . . . . . 3
3. Route Information Option ignore flag . . . . . . . . . . . . 4 3. Route Information Option ignore flag . . . . . . . . . . . . 4
4. Host Behavior . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Host Behavior . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Receiving Source Address Dependent Route Information 4.1. Selecting the next-hop router . . . . . . . . . . . . . . 6
option . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.2. Receiving Source Address Dependent Route Information
4.2. Receiving Route Information option . . . . . . . . . . . 6 option . . . . . . . . . . . . . . . . . . . . . . . . . 6
5. Router Behavior . . . . . . . . . . . . . . . . . . . . . . . 6 4.3. Receiving Route Information options . . . . . . . . . . . 7
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 5. Router Behavior . . . . . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8
9.1. Normative References . . . . . . . . . . . . . . . . . . 7 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
9.2. Informative References . . . . . . . . . . . . . . . . . 7 9.1. Normative References . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 9.2. Informative References . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
Hosts may have multiple non-link-local addresses, possibly provided Hosts may have multiple non-link-local addresses, possibly provided
by different routers located on one or multiple links. In such by different routers located on one or multiple links. In such
situations, hosts must make sure packets with a given source address situations, hosts must make sure packets with a given source address
are sent to the right next-hop router. Failing in selecting the are sent to the right next-hop router. Failing in selecting the
right next-hop router may, at best, induce sub-optimal routing and, right next-hop router may, at best, induce sub-optimal routing and,
at worst, cause the packet to be dropped ([RFC2827]). Rules 5 and at worst, cause the packet to be dropped ([RFC2827]). Rules 5 and
5.5 from the default address selection algorithm [RFC6724] make sure 5.5 from the default address selection algorithm [RFC6724] make sure
skipping to change at page 3, line 11 skipping to change at page 3, line 17
This section defines a new Router Advertisement option called the This section defines a new Router Advertisement option called the
Source Address Dependent Route Information option. Its use is Source Address Dependent Route Information option. Its use is
similar to the Route Information option defined in [RFC4191] but also similar to the Route Information option defined in [RFC4191] but also
includes additional source prefix fields, allowing source address includes additional source prefix fields, allowing source address
dependent routes to be installed on hosts receiving the Router dependent routes to be installed on hosts receiving the Router
Advertisement. Advertisement.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Src Length | Dst Length | | Type | Length | Dst Length |Resvd|Prf|Resvd|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Lifetime | | Route Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Resvd|Prf|Resvd| Source Prefix (Variable Length) | | |
+-+-+-+-+-+-+-+-+ + . Destination Prefix (Variable Length) .
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Prefix (Variable Length) |
. . . .
. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. | Src Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
. Source Prefix (Variable Length) .
. . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Source Address Dependent Route Information Option Source Address Dependent Route Information Option
Type: To be defined by IANA. Type: To be defined by IANA.
Length: The length of the option (including the Type and Length Length: The length of the option (including the Type and Length
fields) in units of 8 octets. It ranges from 2 to 6. fields) in units of 8 octets. It ranges from 2 to 6.
Src Length: The number of significant bits in the Source Prefix
field.
Dst Length: The number of significant bits in the Destination Prefix Dst Length: The number of significant bits in the Destination Prefix
field. field.
Route Lifetime: Time in seconds (relative to the time the packet is
sent) that the prefix is valid for route determination. A value
of all one bits (0xffffffff) represents infinity.
Resvd (Reserved): Bits reserved for futur use. They MUST be set to Resvd (Reserved): Bits reserved for futur use. They MUST be set to
zero by the sender and ignored by the receiver. zero by the sender and ignored by the receiver.
Prf (Route Preference): The route preference as specified in Prf (Route Preference): The route preference as specified in
[RFC4191]. When the Reserved value (10) is received, the option [RFC4191]. When the Reserved value (10) is received, the option
MUST be ignored. MUST be ignored.
Source Prefix: The source prefix significant bits padded to the next Route Lifetime: Time in seconds (relative to the time the packet is
8-bits boundary. sent) that the prefix is valid for route determination. A value
of all one bits (0xffffffff) represents infinity.
Destination Prefix: The destination prefix significant bits padded Destination Prefix: The destination prefix significant bits padded
to the next 64-bits boundary. to the next 8-bits boundary.
Note: The alignment is a bit awkward. I am not sure reserving 24 Src Length: The number of significant bits in the Source Prefix
bits for the purpose of aligning the source prefix would be helpful. field.
The destination prefix cannot be aligned neither due to the variable
length of the source prefix, unless we add unused bytes in between. Source Prefix: The source prefix significant bits padded to the next
Propositions are welcome concerning the best format for this option. 64-bits boundary.
The following C code is given as an help for implementation:
#define ALIGN(bitlength, alignment) \
(((bitlength != 0)?(((bitlength - 1) / alignment) + 1):0) * \
(alignment / 8))
unsigned char *option;
size_t src_len_index = 8 + ALIGN(option[2], 8);
size_t total_byte_length = ALIGN((src_len_index + 1) * 8
+ option[src_len_index], 64);
Note: Comments have been made regarding address alignment. There is
no format providing at the same time good alignment and optimal TLV
size, while aligning both source and destination prefixes would waste
from 7 to 21 bytes per option. This TLV format is proposed based on
implementation experience and provides both TLV size efficiency, and
relative compatibility with the Route Information option (Linux
implementation of this option support is less than 100 lines of
code).
Comments and propositions are welcome regarding which format to
adopt.
3. Route Information Option ignore flag 3. Route Information Option ignore flag
This document adds the Ignore flag to the Route Information option This document adds the Ignore flag to the Route Information option
specified in [RFC4191]. It is used in order to configure type C specified in [RFC4191]. It is used in order to configure type C
hosts with more specific routes which will be ignored by hosts hosts with more specific routes which will be ignored by hosts
implementing this specification. Most of the time, such options with implementing this specification. Most of the time, such options with
the I bit set will be used in conjunction with Source Address the I bit set will be used in conjunction with Source Address
Dependent Route Information options including the same or a similar Dependent Route Information options including the same or a similar
destination prefix. destination prefix.
skipping to change at page 4, line 47 skipping to change at page 5, line 28
Route Information Option Route Information Option
I flag: Ignore flag. When this flag is set, the option MUST be I flag: Ignore flag. When this flag is set, the option MUST be
ignored. ignored.
Other fields: No changes (see [RFC4191]). Other fields: No changes (see [RFC4191]).
4. Host Behavior 4. Host Behavior
Hosts implementing this specification MUST behave similarly to type C Hosts implementing this specification are referred to as type D
hosts as specified in [RFC4191], unless stated otherwise in this hosts, in reference to host types A, B and C defined in [RFC4191].
section. As a reminder, type A hosts are hosts behaving as specified in
[RFC4191]. Type B hosts behave similarly to type A hosts with the
addition that they act upon the Default Router Preference values
present in Router Advertisement headers. Finally, type C hosts
behave as type B hosts with the addition that they act upon received
Route Information Options.
Hosts implementing this specification MUST use a Routing Table with This section specifies type D hosts behavior. Type D hosts MUST
source address dependent entries. Such entries have a source prefix, behave as type C hosts unless stated otherwise in this section. For
a destination prefix, a preference value, a lifetime, an interface the sake of clarity, in this whole section, 'host' refers to 'type D
and a next-hop router address. host'.
Hosts MUST use a Routing Table with source address dependent entries.
Such entries have a:
o Source prefix
o Destination prefix
o Preference value
o Interface
o Next-hop router address
o Lifetime and associated timer
4.1. Selecting the next-hop router
When sending a packet, hosts MUST select the next-hop router based on When sending a packet, hosts MUST select the next-hop router based on
the usual source address dependent routing algorithm, i.e., by the usual source address dependent routing algorithm, i.e., by
picking the matching entry with, by order of precedence: picking the matching entry with, by order of precedence:
The longest destination address match. The longest destination address match.
The longest source address match. The longest source address match.
The highest route preference value. The greatest route preference value.
In case of a tie, hosts MAY either pick one entry or use load-sharing In case of a tie, hosts MAY either pick one entry or use load-sharing
techniques. techniques.
4.1. Receiving Source Address Dependent Route Information option 4.2. Receiving Source Address Dependent Route Information option
When receiving a Source Address Dependent Route Information option, a When receiving a Source Address Dependent Route Information option, a
host MUST look for an existing routing entry with: host MUST look for an existing routing entry with:
1. The same source prefix. 1. The same source prefix.
2. The same destination prefix. 2. The same destination prefix.
3. The next-hop router address equal to the source address of the 3. The next-hop router address equal to the source address of the
received Router Advertisement. received Router Advertisement.
skipping to change at page 5, line 44 skipping to change at page 6, line 47
If no routing entry is found and the Route Lifetime is not null, If no routing entry is found and the Route Lifetime is not null,
insert a routing entry with the given source prefix, destination insert a routing entry with the given source prefix, destination
prefix, route preference, having as next-hop the source address of prefix, route preference, having as next-hop the source address of
the received Router Advertisement, on the interface receiving the the received Router Advertisement, on the interface receiving the
packet. If the Route Lifetime is not infinity, set the routing entry packet. If the Route Lifetime is not infinity, set the routing entry
timer to the Route Lifetime value. timer to the Route Lifetime value.
If a routing entry is found and the Route Lifetime is not null, If a routing entry is found and the Route Lifetime is not null,
cancel the associated timer. If the Route Lifetime is not infinity, cancel the associated timer. If the Route Lifetime is not infinity,
set it to the Route Lifetime value. Finally, update the entry set the timer to the Route Lifetime value. Finally, update the entry
preference with the Route Preference value. preference with the Route Preference value.
If a routing entry is found and the Route Lifetime is null, remove If a routing entry is found and the Route Lifetime is null, remove
the routing entry. the routing entry.
If both destination and source prefixes specified by the option are If both destination and source prefixes specified by the option are
::/0, the router preference and route lifetime present in the option ::/0, the router preference and route lifetime present in the option
override the default router lifetime and default router preference overrides the default router lifetime and default router preference
present in the header of the Router Advertisement. present in the header of the Router Advertisement.
4.2. Receiving Route Information option 4.3. Receiving Route Information options
When receiving a Route Information option, a host MUST behave as When receiving a Route Information option, a host MUST behave as
follows: follows:
If the I bit is set, ignore the option. If the I bit is set, ignore the option.
Otherwise, act as when receiving a Source Address Dependent Route Otherwise, act as when receiving a Source Address Dependent Route
Information option with source prefix length set to zero. Information option with source prefix length set to zero.
5. Router Behavior 5. Router Behavior
skipping to change at page 6, line 32 skipping to change at page 7, line 35
Routers MUST NOT send multiple Route Information options with the Routers MUST NOT send multiple Route Information options with the
same Prefix (no matter what the Ignore flag value is) or multiple same Prefix (no matter what the Ignore flag value is) or multiple
Source Address Dependent Route Information options with the same Source Address Dependent Route Information options with the same
Source and Destination Prefixes. Additionally, routers MUST NOT send Source and Destination Prefixes. Additionally, routers MUST NOT send
a Route Information option with the Ignore bit not set and a Source a Route Information option with the Ignore bit not set and a Source
Address Dependent Route Information with the source length equal to Address Dependent Route Information with the source length equal to
zero if the Prefix from the Route Information option is equal to the zero if the Prefix from the Route Information option is equal to the
Destination Prefix from the Source Address Dependent Route Destination Prefix from the Source Address Dependent Route
Information option. Information option.
The Ignore bit is used to configure hosts implementing this The Ignore bit is used to configure type D hosts differently from
specification differently from other types of hosts (A, B or C). hosts of types A, B or C. Different combinations will result in
Different combinations will result in different behaviors. For different behaviors. For instance:
instance:
When injecting a source address dependent route is desired, a When injecting a source address dependent route is desired, a
Source Address Dependent Route Information option is sent in every Source Address Dependent Route Information option is sent in every
RA. Depending on the context, a Route Information with the same RA. Depending on the context, a Route Information with the same
prefix and the Ignore bit set MAY be sent as well in order to prefix and the Ignore bit set MAY be sent as well in order to
inject non source address dependent route into type C hosts. inject a non source address dependent route into type C hosts.
Obviously, Source Address Dependent Route Information options can Obviously, Source Address Dependent Route Information options can
be used to inject non-source dependent routes as well. This be used to inject non-source dependent routes as well. This
technique and the use of the Ignore bit allow type C hosts and technique and the use of the Ignore bit allow type C hosts and
hosts implementing this specification to be configured with type D hosts to be configured with possibly independent routes.
independent routes.
When injecting a non source address dependent route is desired, When injecting a non source address dependent route is desired,
the router MAY either use a Route Information option with the the router MAY either use a Route Information option with the
Ignore flag not set, in which case type C hosts as well as hosts Ignore flag not set, in which case both type C and D hosts will be
implementing this specification will be configured, or use a configured, or use a Source Address Dependent Route Information
Source Address Dependent Route Information option with a source option with a source prefix ::/0, in which case type C hosts will
prefix ::/0, in which case type C hosts will not be configured. not be configured.
When a Source Address Dependent Route Information option is removed When a Source Address Dependent Route Information option is removed
from the set of advertised options, the router SHOULD send multiple from the set of advertised options, or when the interface ceases to
unsolicited Router Advertisements with the Route Lifetime set to be an advertising interface, the router SHOULD send up to
zero. MAX_INITIAL_RTR_ADVERTISEMENTS unsolicited Router Advertisements,
using the same rule as in [RFC2461], with the Route Lifetime set to
zero in all Source Address Dependent Route Information options that
have become invalid.
6. Security Considerations 6. Security Considerations
This document allows routers to configure neighboring hosts with This document allows routers to configure neighboring hosts with
source address dependent routing entries. Based on [RFC4191], source address dependent routing entries. Based on [RFC4191],
attackers can inject default routes to type A and B hosts as well as attackers can inject default routes to type A and B hosts as well as
destination address dependent routes to type C hosts. The Source destination address dependent routes to type C hosts. The Source
Address Dependent Route Information option adds the ability for Address Dependent Route Information option adds the ability for
attackers to inject even more specific routes, making attacks attackers to inject even more specific routes, making attacks
slightly harder to detect. slightly harder to detect.
skipping to change at page 7, line 35 skipping to change at page 8, line 38
be used by the Source Address Dependent Route Information option. be used by the Source Address Dependent Route Information option.
8. Acknowledgments 8. Acknowledgments
The author would appreciate reviews and comments. The author would appreciate reviews and comments.
9. References 9. References
9.1. Normative References 9.1. Normative References
[RFC2461] Narten, T., Nordmark, E., and W. Simpson, "Neighbor
Discovery for IP Version 6 (IPv6)", RFC 2461, December
1998.
[RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and
More-Specific Routes", RFC 4191, November 2005. More-Specific Routes", RFC 4191, November 2005.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007. September 2007.
9.2. Informative References 9.2. Informative References
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering:
 End of changes. 27 change blocks. 
65 lines changed or deleted 110 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/