draft-ietf-ipv6-router-selection-02.txt   draft-ietf-ipv6-router-selection-03.txt 
IPng Working Group R. Draves IPng Working Group R. Draves
Internet Draft Microsoft Research Internet Draft D. Thaler
Document: draft-ietf-ipv6-router-selection-02.txt R. Hinden Document: draft-ietf-ipv6-router-selection-03.txt Microsoft
Nokia December 16, 2003
June 10, 2002
Default Router Preferences, More-Specific Routes, and Load Sharing Default Router Preferences and More-Specific Routes
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026 [1]. all provisions of Section 10 of RFC 2026.
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as reference at any 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.
Abstract Abstract
This document describes two changes to Neighbor Discovery. The first This document describes an optional extension to Router
change is an optional extension to Router Advertisement messages for Advertisement messages for communicating default router preferences
communicating default router preferences and more-specific routes and more-specific routes from routers to hosts. This improves the
from routers to hosts. This improves the ability of hosts to pick an ability of hosts to pick an appropriate router, especially when the
appropriate router, especially when the host is multi-homed and the host is multi-homed and the routers are on different links. The
routers are on different links. The preference values and specific preference values and specific routes advertised to hosts require
routes advertised to hosts require administrative configuration; administrative configuration; they are not automatically derived
they are not automatically derived from routing tables. The second from routing tables.
change is a mandatory modification of the conceptual sending
algorithm to support load-sharing among equivalent routers.
1. Introduction 1. Introduction
Neighbor Discovery [2] specifies a conceptual model for hosts that Neighbor Discovery [RFC2461] specifies a conceptual model for hosts
includes a Default Router List and a Prefix List. Hosts send Router that includes a Default Router List and a Prefix List. Hosts send
Solicitation messages and receive Router Advertisement messages from Router Solicitation messages and receive Router Advertisement
routers. Hosts populate their Default Router List and Prefix List messages from routers. Hosts populate their Default Router List and
based on information in the Router Advertisement messages. A Prefix List based on information in the Router Advertisement
conceptual sending algorithm uses the Prefix List to determine if a messages. A conceptual sending algorithm uses the Prefix List to
destination address is on-link and the Default Router List to select determine if a destination address is on-link and the Default Router
a router for off-link destinations. List to select a router for off-link destinations.
Draves Expires January 2003 1
In some network topologies where the host has multiple routers on In some network topologies where the host has multiple routers on
its Default Router List, the choice of router for an off-link its Default Router List, the choice of router for an off-link
destination is important. In some situations, one router may provide destination is important. In some situations, one router may provide
Draves Expires May 2004 1
much better performance than another for a destination. In other much better performance than another for a destination. In other
situations, choosing the wrong router may result in a failure to situations, choosing the wrong router may result in a failure to
communicate. (A later section gives specific examples of these communicate. (A later section gives specific examples of these
scenarios.) scenarios.)
This document describes an optional extension to Neighbor Discovery This document describes an optional extension to Neighbor Discovery
Router Advertisement messages for communicating default router Router Advertisement messages for communicating default router
preferences and more-specific routes from routers to hosts. This preferences and more-specific routes from routers to hosts. This
improves the ability of hosts to pick an appropriate router for an improves the ability of hosts to pick an appropriate router for an
off-link destination. off-link destination.
skipping to change at line 86 skipping to change at line 84
homed hosts select an appropriate router. homed hosts select an appropriate router.
Multi-homed hosts are an increasingly important scenario, especially Multi-homed hosts are an increasingly important scenario, especially
with IPv6. In addition to a wired network connection, like Ethernet, with IPv6. In addition to a wired network connection, like Ethernet,
hosts may have one or more wireless connections, like 802.11 or hosts may have one or more wireless connections, like 802.11 or
Bluetooth. In addition to physical network connections, hosts may Bluetooth. In addition to physical network connections, hosts may
have virtual or tunnel network connections. For example, in addition have virtual or tunnel network connections. For example, in addition
to a direct connection to the public Internet, a host may have a to a direct connection to the public Internet, a host may have a
tunnel into a private corporate network. Some IPv6 transition tunnel into a private corporate network. Some IPv6 transition
scenarios can add additional tunnels. For example, hosts may have scenarios can add additional tunnels. For example, hosts may have
6-over-4 [3] or configured tunnel [4] network connections. 6-over-4 [RFC3056] or configured tunnel [RFC1933] network
connections.
This document requires that the preference values and specific This document requires that the preference values and specific
routes advertised to hosts require explicit administrative routes advertised to hosts require explicit administrative
configuration. They are not automatically derived from routing configuration. They are not automatically derived from routing
tables. In particular, the preference values are not routing metrics tables. In particular, the preference values are not routing metrics
and it is not recommended that routers "dump out" their entire and it is not recommended that routers "dump out" their entire
routing tables to hosts. routing tables to hosts.
We use Router Advertisement messages, instead of some other protocol We use Router Advertisement messages, instead of some other protocol
like RIP [5], because Router Advertisements are an existing like RIP [RFC2080], because Router Advertisements are an existing
standard, stable protocol for router-to-host communication. standard, stable protocol for router-to-host communication.
Piggybacking this information on existing message traffic from Piggybacking this information on existing message traffic from
routers to hosts reduces network overhead. Neighbor Discovery is to routers to hosts reduces network overhead. Neighbor Discovery shares
unicast routing as Multicast Listener Discovery is to multicast with Multicast Listener Discovery the property that they both define
routing. In both cases, a single simple protocol insulates the host host-to-router interactions, while shielding the host from having to
from the variety of router-to-router protocols. In addition, RIP is participate in more general router-to-router interactions. In
unsuitable because it does not carry route lifetimes so it requires addition, RIP is unsuitable because it does not carry route
frequent message traffic with greater processing overheads. lifetimes so it requires frequent message traffic with greater
processing overheads.
This document also describes a mandatory change in host behavior.
Neighbor DiscoveryĘs conceptual sending algorithm is modified to
require hosts to select randomly among equivalent routers. This
Draves Expires January 2003 2
distributes traffic to different destinations among the routers.
Traffic to a single destination continues to use a single router,
because of the Destination Cache.
The mechanisms specified here are backwards-compatible, so that The mechanisms specified here are backwards-compatible, so that
hosts that do not implement them continue to function as well as hosts that do not implement them continue to function as well as
they did previously. they did previously.
Draves Expires June 2004 2
1.1. Conventions used in this document 1.1. Conventions used in this document
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 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC-2119 [6]. this document are to be interpreted as described in [RFC2119].
2. Message Formats 2. Message Formats
2.1. Preference Values 2.1. Preference Values
Default router preferences and preferences for more-specific routes Default router preferences and preferences for more-specific routes
are encoded the same way. are encoded the same way.
Preference values are encoded in two bits, as follows: Preference values are encoded in two bits, as follows:
01 High 01 High
00 Medium (default) 00 Medium (default)
11 Low 11 Low
10 Reserved - MUST NOT be sent 10 Reserved - MUST NOT be sent
Note that implementations can treat the value as a two-bit signed Note that implementations can treat the value as a two-bit signed
integer. integer.
Having just three values reinforces that they are not metrics and Having just three values reinforces that they are not metrics and
more values does not appear to be necessary for reasonable more values do not appear to be necessary for reasonable scenarios.
scenarios.
2.2. Changes to Router Advertisement Message Format 2.2. Changes to Router Advertisement Message Format
The changes from Neighbor Discovery [2] section 4.2 are as follows: The changes from Neighbor Discovery [RFC2461] section 4.2 are as
follows:
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 | Code | Checksum | | Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cur Hop Limit |M|O|H|Prf|Resvd| Router Lifetime | | Cur Hop Limit |M|O|H|Prf|Resvd| Router Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reachable Time | | Reachable Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Retrans Timer | | Retrans Timer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ... | Options ...
+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-+-+-+-
Fields: Fields:
Draves Expires January 2003 3
Prf (Default Router Preference) Prf (Default Router Preference)
2-bit signed integer. Indicates whether or not to prefer 2-bit signed integer. Indicates whether or not to prefer
this router over other default routers. If Router this router over other default routers. If Router
Lifetime is zero, it MUST be initialized to zero by the Lifetime is zero, it MUST be initialized to zero by the
sender and MUST be ignored by the receiver. If the sender and MUST be ignored by the receiver. If the
Reserved (10) value is received, the receiver should Reserved (10) value is received, the receiver MUST treat
treat the RA as having a zero Router Lifetime. the treat the value as if it had the value 00.
Draves Expires June 2004 3
Resvd (Reserved) Resvd (Reserved)
A 3-bit unused field. It MUST be initialized to zero by A 3-bit unused field. It MUST be initialized to zero by
the sender and MUST be ignored by the receiver. the sender and MUST be ignored by the receiver.
Possible Options: Possible Options:
Route Information Route Information
These options specify prefixes that are reachable via These options specify prefixes that are reachable via
the router. the router.
Discussion: Discussion:
Note that in addition to the preference value in the message header, Note that in addition to the preference value in the message header,
a Router Advertisement can also contain a Route Information Option a Router Advertisement can also contain a Route Information Option
for ::/0, with a preference value and lifetime. Encoding a for ::/0, with a preference value and lifetime. Encoding a
preference value in the Router Advertisement header has some preference value in the Router Advertisement header has some
advantages: advantages:
1. It allows for a distinction between "best default router" and 1. It allows for a distinction between the "best router for the
"best router for default", as described below in section 5.1. default route" and the "router least likely to redirect common
traffic", as described below in section 5.1.
2. When the best default router is also the best router for 2. When the best router for the default route is also the router
default (which will be a common case), encoding the preference least likely to redirect common traffic (which will be a common
value in the message header is more efficient than having to send case), encoding the preference value in the message header is more
a separate option. efficient than having to send a separate option.
2.3. Route Information Option 2.3. Route Information Option
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 | Prefix Length |Resvd|Prf|Resvd| | Type | Length | Prefix Length |Resvd|Prf|Resvd|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Lifetime | | Route Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | Prefix (Variable Length) |
+ + . .
| | . .
+ Prefix +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields: Fields:
Draves Expires January 2003 4
Type TBD Type TBD
Length 8-bit unsigned integer. The length of the option Length 8-bit unsigned integer. The length of the option
(including the Type and Length fields) in units of (including the Type and Length fields) in units of
8 octets. 8 octets. The Length field is 1, 2, or 3 depending on
Prefix Length. If Prefix Length is greater than 64, then
Length must be 3. If Prefix Length is greater than 0,
then Length must be 2 or 3. If Prefix Length is zero,
then Length must be 1, 2, or 3.
Draves Expires June 2004 4
Prefix Length Prefix Length
8-bit unsigned integer. The number of leading bits in 8-bit unsigned integer. The number of leading bits in
the Prefix that are valid. The value ranges from 0 to the Prefix that are valid. The value ranges from 0 to
128. 128. The Prefix field is 0, 8, or 16 octets depending on
Length.
Prf (Route Preference) Prf (Route Preference)
2-bit signed integer. Indicates whether or not to prefer 2-bit signed integer. The Route Preference indicates
this router for the prefix over others. If the Reserved whether to prefer the router associated with this prefix
over others, when multiple identical prefixes (for
different routers) have been received. If the Reserved
(10) value is received, the Route Information Option (10) value is received, the Route Information Option
MUST be ignored. MUST be ignored.
Resvd (Reserved) Resvd (Reserved)
Two 3-bit unused fields. They MUST be initialized to Two 3-bit unused fields. They MUST be initialized to
zero by the sender and MUST be ignored by the receiver. zero by the sender and MUST be ignored by the receiver.
Route Lifetime Route Lifetime
32-bit unsigned integer. The length of time in seconds 32-bit unsigned integer. The length of time in seconds
(relative to the time the packet is sent) that the (relative to the time the packet is sent) that the
prefix is valid for route determination. A value of all prefix is valid for route determination. A value of all
one bits (0xffffffff) represents infinity. one bits (0xffffffff) represents infinity.
Prefix Variable-length field containing an IP address or a Prefix Variable-length field containing an IP address or a
prefix of an IP address. The Prefix Length field prefix of an IP address. The Prefix Length field
contains the number of valid leading bits in the prefix. contains the number of valid leading bits in the prefix.
The bits in the prefix after the prefix length (if any) The bits in the prefix after the prefix length (if any)
are reserved and MUST be initialized to zero by the are reserved and MUST be initialized to zero by the
sender and ignored by the receiver. sender and ignored by the receiver.
The Length field is 1, 2, or 3 depending on Prefix Length. If Prefix Routers MUST NOT include two Route Information Options with the same
Length is greater than 64, then Length must be 3. If Prefix Length Prefix and Prefix Length in the same Router Advertisement. If a host
is greater than 0, then Length must be 2 or 3. If Prefix Length is processes a Router Advertisement carrying multiple Router
zero, then Length must be 1, 2, or 3.
The Prefix field is 0, 8, or 16 octets depending on Length.
Routers SHOULD NOT include in a Router Advertisement two Route
Information Options with the same Prefix and Prefix Length. If a
host processes a Router Advertisement carrying multiple Router
Information Options with the same Prefix and Prefix Length, it MUST Information Options with the same Prefix and Prefix Length, it MUST
process one of the options (unspecified which one) and it MUST process one of the options (unspecified which one) and it MUST
effectively ignore the rest. It MUST NOT retain some information effectively ignore the rest. It MUST NOT retain some information
(like preference) from one option and other information (like (like preference) from one option and other information (like
lifetime) from another option. lifetime) from another option.
Discussion: Discussion:
Draves Expires January 2003 5
There are several reasons for using a new Route Information Option, There are several reasons for using a new Route Information Option,
instead of using flag bits to overload the existing Prefix instead of using flag bits to overload the existing Prefix
Information Option: Information Option:
1. Prefixes will typically only show up in one or the other kind 1. Prefixes will typically only show up in one or the other kind
of option, not both, so a new option does not introduce of option, not both, so a new option does not introduce
duplication. duplication.
2. The Route Information Option is typically 16 octets while the 2. The Route Information Option is typically 16 octets while the
Prefix Information Option is 32 octets. Prefix Information Option is 32 octets.
Draves Expires June 2004 5
3. Using a new option may improve backwards-compatibility with 3. Using a new option may improve backwards-compatibility with
some host implementations. some host implementations.
3. Conceptual Model of a Host 3. Conceptual Model of a Host
There are three possible conceptual models for host implementation There are three possible conceptual models for host implementation
of default router preferences and more-specific routes, of default router preferences and more-specific routes,
corresponding to different levels of support. We refer to these as corresponding to different levels of support. We refer to these as
host A, host B, and host C. Note that these are really classes of type A, type B, and type C.
hosts, not individual hosts.
3.1. Conceptual Data Structures for Hosts 3.1. Conceptual Data Structures for Hosts
Host A ignores default router preferences and more-specific routes. Type A hosts ignore default router preferences and more-specific
Host A uses the conceptual data structures described in Neighbor routes. They use the conceptual data structures described in
Discovery [2]. Neighbor Discovery [RFC2461].
Host B uses a Default Router List augmented with preference values. Type B hosts use a Default Router List augmented with preference
Host B does not have a routing table. Host B uses the Default Router values, but ignore all Route Information Options. They use the
Preference value in the Router Advertisement header. Host B ignores Default Router Preference value in the Router Advertisement header.
Route Information Options. They ignore Route Information Options.
Host C uses a Routing Table instead of a Default Router List. (The Type C hosts use a Routing Table instead of a Default Router List.
Routing Table may also subsume the Prefix List, but that is beyond (The Routing Table may also subsume the Prefix List, but that is
the scope of this document.) Entries in the Routing Table have a beyond the scope of this document.) Entries in the Routing Table
prefix, prefix length, preference value, lifetime, and next-hop have a prefix, prefix length, preference value, lifetime, and next-
router. Host C uses both the Default Router Preference value in the hop router. Type C hosts use both the Default Router Preference
Router Advertisement header and Route Information Options. value in the Router Advertisement header and Route Information
Options.
When host C receives a Router Advertisement, it modifies its Routing When a type C host receives a Router Advertisement, it modifies its
Table as follows. If the received route's lifetime is zero, the Routing Table as follows. If the received route's lifetime is zero,
route is removed from the Routing Table if present. If a route's the route is removed from the Routing Table if present. If a route's
lifetime is non-zero, the route is added to the Routing Table if not lifetime is non-zero, the route is added to the Routing Table if not
present and the route's lifetime and preference is updated if the present and the route's lifetime and preference is updated if the
route is already present. A route is located in the Routing Table route is already present. A route is located in the Routing Table
based on prefix, prefix length, and next-hop router. When processing based on prefix, prefix length, and next-hop router. When processing
a Router Advertisement, host C first updates a ::/0 route based on a Router Advertisement, a type C host first updates a ::/0 route
the Router Lifetime and Default Router Preference in the Router based on the Router Lifetime and Default Router Preference in the
Advertisement message header. Then as host C processes Route Router Advertisement message header. Then as the host processes
Information Options in the Router Advertisement message body, it Route Information Options in the Router Advertisement message body,
updates its routing table for each such option. The Router it updates its routing table for each such option. The Router
Preference and Lifetime values in a ::/0 Route Information Option Preference and Lifetime values in a ::/0 Route Information Option
Draves Expires January 2003 6
override the preference and lifetime values in the Router override the preference and lifetime values in the Router
Advertisement header. Advertisement header.
For example, suppose a host receives a Router Advertisement from For example, suppose hosts receive a Router Advertisement from
router X with a Router Lifetime of 100 seconds and Default Router router X with a Router Lifetime of 100 seconds and Default Router
Preference of Medium. The body of the Router Advertisement contains Preference of Medium. The body of the Router Advertisement contains
a Route Information Option for ::/0 with a Route Lifetime of 200 a Route Information Option for ::/0 with a Route Lifetime of 200
seconds and a Route Preference of Low. After processing the Router seconds and a Route Preference of Low. After processing the Router
Advertisement, host A will have an entry for router X in its Default Advertisement, a type A host will have an entry for router X in its
Router List with lifetime 100 seconds. If host B receives the same Default Router List with lifetime 100 seconds. If a type B host
Router Advertisement, it will have an entry in its Default Router receives the same Router Advertisement, it will have an entry in its
List for router X with Medium preference and lifetime 100 seconds.
Host C will have an entry in its Routing Table for ::/0 -> router X, Draves Expires June 2004 6
with Low preference and lifetime 200 seconds. Host C MAY have a Default Router List for router X with Medium preference and lifetime
transient state, during processing of the Router Advertisement, in 100 seconds. A type C host will have an entry in its Routing Table
which it has an entry in its Routing Table for ::/0 -> router X with for ::/0 -> router X, with Low preference and lifetime 200 seconds.
Medium preference and lifetime 100 seconds. A type C host MAY have a transient state, during processing of the
Router Advertisement, in which it has an entry in its Routing Table
for ::/0 -> router X with Medium preference and lifetime 100
seconds.
3.2. Conceptual Sending Algorithm for Hosts 3.2. Conceptual Sending Algorithm for Hosts
Host A uses the conceptual sending algorithm described in Neighbor Type A hosts use the conceptual sending algorithm described in
Discovery [2], modified slightly to support load sharing as Neighbor Discovery [RFC2461].
described in section 3.5.
When host B does next-hop determination and consults its Default When a type B host does next-hop determination and consults its
Router List, it primarily prefers reachable routers over non- Default Router List, it primarily prefers reachable routers over
reachable routers and secondarily uses the router preference values. non-reachable routers and secondarily uses the router preference
values. If the host has no information about the routerĘs
reachability then the host assumes the router is reachable.
When host C does next-hop determination and consults its Routing When a type C host does next-hop determination and consults its
Table for an off-link destination, it first prefers reachable Routing Table for an off-link destination, it first prefers
routers over non-reachable routers, second uses longest-matching- reachable routers over non-reachable routers, second uses longest-
prefix, and third uses route preference values. matching-prefix, and third uses route preference values. Again, if
the host has no information about the routerĘs reachability then the
host assumes the router is reachable.
If there are no routes matching the destination (i.e., no default If there are no routes matching the destination (i.e., no default
routes and no more-specific routes), then if host C has a single routes and no more-specific routes), then if a type C host has a
interface then it SHOULD assume the destination is on-link to that single interface then it SHOULD assume the destination is on-link to
interface. If host C has multiple interfaces then it SHOULD discard that interface. If the type C host has multiple interfaces then it
the packet and report a Destination Unreachable / No Route To SHOULD discard the packet and report a Destination Unreachable / No
Destination error to the upper layer. Route To Destination error to the upper layer.
3.3. Destination Cache Management 3.3. Destination Cache Management
When host C processes a Router Advertisement and updates its When a type C host processes a Router Advertisement and updates its
conceptual Routing Table, it SHOULD invalidate or remove Destination conceptual Routing Table, it MUST invalidate or remove Destination
Cache Entries and redo next-hop determination for destinations Cache Entries and redo next-hop determination for destinations
affected by the Routing Table changes. The host MAY implement this affected by the Routing Table changes.
requirement by flushing its entire Destination Cache.
3.4. Router Reachability Probing 3.4. Client Configurability
When a host avoids using a non-reachable router X and instead uses Type B and C hosts MAY be configurable with preference values that
another router Y, and the host would have used router X if router X override the values in Router Advertisements received. This is
were reachable, then the host SHOULD probe router X's reachability especially useful for dealing with routers which may not support
preferences.
Draves Expires January 2003 7 3.5. Router Reachability Probing
by sending a Neighbor Solicitation. A host MUST NOT probe a router's
reachability in the absence of useful traffic that the host would When a host avoids using any non-reachable router X and instead
have sent to the router if it were reachable. In any case, these sends a data packet to another router Y, and the host would have
probes MUST be rate-limited to no more than one per minute per used router X if router X were reachable, then the host SHOULD probe
each such router X's reachability by sending a single Neighbor
Draves Expires June 2004 7
Solicitation to that routerĘs address. A host MUST NOT probe a
router's reachability in the absence of useful traffic that the host
would have sent to the router if it were reachable. In any case,
these probes MUST be rate-limited to no more than one per minute per
router. router.
This requirement allows the host to discover when router X becomes This requirement allows the host to discover when router X becomes
reachable and to start using router X at that point. Otherwise, the reachable and to start using router X at that point. Otherwise, the
host might not notice router XĘs reachability and continue to use host might not notice router X's reachability and continue to use
the less-desirable router Y. the less-desirable router Y.
3.5. Host Load Sharing
Sometimes a host has a choice of multiple "equivalent" routers for a
destination. We say that two routers are equivalent for a
destination if they have the same reachability, the same matching
prefix length (if the host supports a Routing Table), and the same
preference values (if the host supports preference values).
When a host chooses from multiple equivalent routers, it MUST choose
randomly.
This has the effect of distributing load for new destinations among
the equivalent routers. Note that traffic to a single destination
will use a single router as long as the Destination Cache Entry for
the destination is not deleted. Random selection, instead of round-
robin, is used to avoid synchronization issues.
3.6. Example 3.6. Example
For example: suppose host C has five entries in its Routing Table: Suppose a type C host has four entries in its Routing Table:
::/0 -> router W with Medium preference ::/0 -> router W with Medium preference
2001::/16 -> router X with Medium preference 2001::/16 -> router X with Medium preference
3ffe::/16 -> router Y1 with High preference 3ffe::/16 -> router Y with High preference
3ffe::/16 -> router Y2 with High preference
3ffe::/16 -> router Z with Low preference 3ffe::/16 -> router Z with Low preference
and host C is sending to 3ffe::1, an off-link destination. If all and the host is sending to 3ffe::1, an off-link destination. If all
routers are reachable, then the host will choose randomly between routers are reachable, then the host will choose router Y. If router
routers Y1 and Y2. If routers Y1 and Y2 are not reachable, then Y is not reachable, then router Z will be chosen and the
router Z will be chosen and the reachability of routers Y1 and Y2 reachability of router Y will be probed. If routers Y and Z are not
will be probed. If routers Y1, Y2, and Z are not reachable, then reachable, then router W will be chosen and the reachability of
router W will be chosen and the reachability of routers Y1, Y2, and routers Y and Z will be probed. If routers W, Y, and Z are all not
Z will be probed. If routers W, Y1, Y2, and Z are all not reachable, reachable, then the host should use Y while probing the reachability
then host C should round-robin among Y1 and Y2 while probing the of W and Z. Router X will never be chosen because its prefix does
reachability of W and Z. Router X will never be chosen because its not match the destination.
prefix does not match the destination.
4. Router Configuration 4. Router Configuration
Routers should not advertise preferences or routes by default. In Routers should not advertise preferences or routes by default. In
particular, they should not "dump out" their entire routing table to particular, they should not "dump out" their entire routing table to
hosts. Routers MAY have a configuration mode where a filter is hosts. Routers MAY have a configuration mode where a filter is
Draves Expires January 2003 8
applied to their routing table to obtain the routes that are applied to their routing table to obtain the routes that are
advertised to hosts. advertised to hosts.
Routers SHOULD NOT send more than 17 Route Information Options in
Router Advertisements per link. This arbitrary bound is meant to
reinforce that relatively few and carefully selected routes should
be advertised to hosts.
The preference values (both Default Router Preferences and Route The preference values (both Default Router Preferences and Route
Preferences) should not be routing metrics or automatically derived Preferences) should not be routing metrics or automatically derived
from metrics: the preference values should be configured. The High from metrics: the preference values should be configured.
and Low (non-default) preference values should only be used when
someone with knowledge of both routers and the network topology 4.1. Guidance to Administrators
The High and Low (non-default) preference values should only be used
when someone with knowledge of both routers and the network topology
configures them explicitly. For example, it could be a common configures them explicitly. For example, it could be a common
network administrator, or it could be a customer request to network administrator, or it could be a customer request to
different administrators managing the routers. different administrators managing the routers.
Draves Expires June 2004 8
As one exception to this general rule, the administrator of a router As one exception to this general rule, the administrator of a router
that does not have a connection to the internet, or is connected that does not have a connection to the internet, or is connected
through a firewall that blocks general traffic, may configure the through a firewall that blocks general traffic, should configure the
router to advertise a Low Default Router Preference. router to advertise a Low Default Router Preference.
An administrator of a router may configure the router to advertise In addition, the administrator of a router should configure the
specific routes for directly connected subnets and any shorter router to advertise a specific route for the site prefix of the
prefixes (eg, site, NLA, or TLA prefixes) for networks to which the network(s) to which the router belongs. The administrator may also
configure the router to advertise specific routes for directly
connected subnets and any shorter prefixes for networks to which the
router belongs. router belongs.
For example, if a home user sets up a tunnel into a firewalled For example, if a home user sets up a tunnel into a firewalled
corporate network, the access router on the corporate network end of corporate network, the access router on the corporate network end of
the tunnel can advertise itself as a default router, but with a Low the tunnel should advertise itself as a default router, but with a
preference. Furthermore the corporate router can advertise a Low preference. Furthermore the corporate router should advertise a
specific route for the corporate site prefix. The net result is that specific route for the corporate site prefix. The net result is that
destinations in the corporate network will be reached via the destinations in the corporate network will be reached via the
tunnel, and general internet destinations will be reached via the tunnel, and general internet destinations will be reached via the
home ISP. Without these mechanisms, the home machine might choose to home ISP. Without these mechanisms, the home machine might choose to
send internet traffic into the corporate network or corporate send internet traffic into the corporate network or corporate
traffic into the internet, leading to communication failure because traffic into the internet, leading to communication failure because
of the firewall. of the firewall.
Routers SHOULD NOT send more than 17 Route Information Options in
Router Advertisements per link. This arbitrary bound is meant to
reinforce that relatively few and carefully selected routes should
be advertised to hosts.
5. Examples 5. Examples
5.1. Best Default Router vs Best Route for Default 5.1. Best Router for ::/0 vs Router Least Likely to Redirect
The best default router is not quite the same thing as the best The best router for the default route is the router with the best
router for default. The best default router is the router that will route toward the wider internet. The router least likely to
generate the fewest number of redirects for the host's traffic. The redirect traffic depends on the actual traffic usage. The two
best router for default is the router with the best route toward the concepts can be different when the majority of communication
wider internet. actually needs to go through some other router.
For example, suppose a situation where you have a link with two For example, consider a situation where you have a link with two
routers X and Y. Router X is the best for 2002::/16. (It's your 6to4 routers X and Y. Router X is the best for 2002::/16. (It's your 6to4
site gateway.) Router Y is the best for ::/0. (It connects to the site gateway.) Router Y is the best for ::/0. (It connects to the
native IPv6 internet.) Router X forwards native IPv6 traffic to native IPv6 internet.) Router X forwards native IPv6 traffic to
router Y; router Y forwards 6to4 traffic to router X. If most
traffic from this site is sent to 2002:/16 destinations, then router
X is the one least likely to redirect.
Draves Expires January 2003 9 To make type A hosts work well, both routers should advertise
router Y; router Y forwards 6to4 traffic to router X. But most themselves as default routers. In particular, if router Y goes down,
traffic from this site is sent to 2002:/16 destinations. In this type A hosts should send traffic to router X to maintain 6to4
scenario, router X is the best default router and router Y is the connectivity, so router X as well as router Y needs to be a default
best router for default. router.
To make host A work well, both routers should advertise themselves To make type B hosts work well, router X should in addition
as default routers. In particular, if router Y goes down host A advertise itself with a High default router preference. This will
should send traffic to router X to maintain 6to4 connectivity, so cause type B hosts to prefer router X, minimizing the number of
router X as well as router Y needs to be a default router. redirects.
To make host B work well, router X should in addition advertise
itself with a High default router preference. This will cause host B
to prefer router X, minimizing the number of redirects.
To make host C work well, router X should in addition advertise the Draves Expires June 2004 9
::/0 route with Low preference and the 2002::/16 route with Medium To make type C hosts work well, router X should in addition
preference. Host C will end up with three routes in its routing advertise the ::/0 route with Low preference and the 2002::/16 route
table: ::/0 -> router X (Low), ::/0 -> router Y (Medium), 2002::/16 with Medium preference. A type C host will end up with three routes
-> router X (Medium). It will send 6to4 traffic to router X and in its routing table: ::/0 -> router X (Low), ::/0 -> router Y
other traffic to router Y. Host C will not cause any redirects. (Medium), 2002::/16 -> router X (Medium). It will send 6to4 traffic
to router X and other traffic to router Y. Type C hosts will not
cause any redirects.
Note that when host C processes the Router Advertisement from router Note that when type C hosts process the Router Advertisement from
X, the Low preference for ::/0 overrides the High default router router X, the Low preference for ::/0 overrides the High default
preference. If the ::/0 specific route were not present, then host C router preference. If the ::/0 specific route were not present, then
would apply the High default router preference to its ::/0 route to a type C host would apply the High default router preference to its
router X. ::/0 route to router X.
5.2. Multi-Homed Host and Isolated Network 5.2. Multi-Homed Host and Isolated Network
Here's another scenario: a multi-homed host is connected to the Here's another scenario: a multi-homed host is connected to the
6bone/internet via router X on one link and to an isolated network 6bone/internet via router X on one link and to an isolated network
via router Y on another link. The multi-homed host might have a via router Y on another link. The multi-homed host might have a
tunnel into a fire-walled corporate network, or it might be directly tunnel into a firewalled corporate network, or it might be directly
connected to an isolated test network. connected to an isolated test network.
In this situation, a multi-homed host A (which has no default router In this situation, a type A multi-homed host (which has no default
preferences or more-specific routes) will have no way to choose router preferences or more-specific routes) will have no way to
between the two routers X and Y on its Default Router List. Users of intelligently choose between the two routers X and Y on its Default
the host will see unpredictable connectivity failures, depending on Router List. Users of the host will see unpredictable connectivity
the destination address and the choice of router. failures, depending on the destination address and the choice of
router.
A multi-homed host C in this same situation can correctly choose A multi-homed type C host in this same situation can correctly
between routers X and Y, if the routers are configured choose between routers X and Y, if the routers are configured
appropriately. For example, router X on the isolated network should appropriately. For example, router X on the isolated network should
advertise a Route Information Option for the isolated network advertise a Route Information Option for the isolated network
prefix. It might not advertise itself as a default router at all prefix. It might not advertise itself as a default router at all
(zero Router Lifetime), or it might advertise itself as a default (zero Router Lifetime), or it might advertise itself as a default
router with Low preference. Router Y should advertise itself as a router with Low preference. Router Y should advertise itself as a
default router with Medium preference. default router with Medium preference.
6. Security Considerations 6. Security Considerations
A malicious node could send Router Advertisement messages, A malicious node could send Router Advertisement messages,
specifying High Default Router Preference or carrying specific specifying High Default Router Preference or carrying specific
Draves Expires January 2003 10
routes, with the effect of pulling traffic away from legitimate routes, with the effect of pulling traffic away from legitimate
routers. However, a malicious node could easily achieve this same routers. However, a malicious node could easily achieve this same
effect in other ways. For example, it could fabricate Router effect in other ways. For example, it could fabricate Router
Advertisement messages with zero Router Lifetime from the other Advertisement messages with zero Router Lifetime from the other
routers, causing hosts to stop using the other routes. Hence, this routers, causing hosts to stop using the other routes. Hence, this
document has no new appreciable impact on Internet infrastructure document has no new appreciable impact on Internet infrastructure
security. security.
References Draves Expires June 2004 10
1 S. Bradner, "The Internet Standards Process -- Revision 3", BCP 7. Acknowledgments
9, RFC 2026, October 1996.
2 T. Narten, E. Nordmark, W. Simpson. "Neighbor Discovery for IP The authors would like to acknowledge the contributions of Balash
Version 6 (IPv6)", RFC 2461, December 1998. Akbari, Steve Deering, Robert Elz, Tony Hain, Bob Hinden, Christian
Huitema, JINMEI Tatuya, Erik Nordmark, Pekka Savola, Kresimir
Segaric, and Brian Zill. The packet diagrams are derived from
Neighbor Discovery [RFC2461].
3 B. Carpenter, K. Moore. "Connection of IPv6 Domains via IPv4 8. Normative References
Clouds", RFC 3056, February 2001.
4 R. Gilligan, E. Nordmark. "Transition Mechanisms for IPv6 Hosts [RFC2461] Narten, T., Nordmark, E. and W. Simpson, "Neighbor
and Routers", RFC 1933, April 1996. Discovery for IP Version 6 (IPv6)", RFC 2461, December
1998.
5 G. Malkin, R. Minnear. "RIPng for IPv6", RFC 2080 , January 1997. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
6 S. Bradner, "Key words for use in RFCs to Indicate Requirement 9. Informative References
Levels", BCP 14, RFC 2119, March 1997.
Acknowledgments [RFC3056] Carpenter, B. and K. Moore, "Connection of IPv6 Domains
via IPv4 Clouds", RFC 3056, February 2001.
The authors would like to acknowledge the contributions of Balash [RFC1933] Gilligan, R. and E. Nordmark, "Transition Mechanisms for
Akbari, Steve Deering, Robert Elz, Tony Hain, Christian Huitema, IPv6 Hosts and Routers", RFC 1933, April 1996.
JINMEI Tatuya, Erik Nordmark, Pekka Savola, Dave Thaler, and Brian
Zill. The packet diagrams are derived from Neighbor Discovery [2]. [RFC2080] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080,
The description of host load sharing is derived from Bob Hinden's January 1997.
draft on the subject.
Author's Addresses Author's Addresses
Richard Draves Richard Draves
Microsoft Research Microsoft Research
One Microsoft Way One Microsoft Way
Redmond, WA 98052 Redmond, WA 98052
Phone: +1 425 706 2268 Phone: +1 425 706 2268
Email: richdr@microsoft.com Email: richdr@microsoft.com
Robert M. Hinden Dave Thaler
Nokia Microsoft
313 Fairchild Drive One Microsoft Way
Mountain View, CA 94043 Redmond, WA 98052
Phone: +1 650 625 2004 Phone: +1 425 703 8835
Email: hinden@iprg.nokia.com Email: dthaler@microsoft.com
Draves Expires January 2003 11 Revision History (to be removed before publication as an RFC)
Revision History Changes from draft-ietf-ipv6-router-selection-02
Added Dave Thaler as co-author.
Various clarifications and textual improvements.
Split all load sharing text back into a separate document.
Draves Expires June 2004 11
Changes from draft-ietf-ipv6-router-selection-01 Changes from draft-ietf-ipv6-router-selection-01
Added Bob Hinden as co-author. Added Bob Hinden as co-author.
Various clarifications and textual improvements. Various clarifications and textual improvements.
Slightly simplified the specification of round-robining in next-hop Slightly simplified the specification of round-robining in next-hop
determination, relying on router-reachability probing in some cases. determination, relying on router-reachability probing in some cases.
skipping to change at line 651 skipping to change at line 648
Changes from draft-draves-ipngwg-router-selection-00 Changes from draft-draves-ipngwg-router-selection-00
Made the option variable length. Must ignore prefix bits past prefix Made the option variable length. Must ignore prefix bits past prefix
length. length.
Added more allowable router configuration scenarios, weakening the Added more allowable router configuration scenarios, weakening the
requirement that one administrator must coordinate the configuration requirement that one administrator must coordinate the configuration
of all relevant routers. of all relevant routers.
Draves Expires January 2003 12 Draves Expires June 2004 12
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
skipping to change at line 680 skipping to change at line 677
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Draves Expires January 2003 13 Draves Expires June 2004 13
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/