SADR Host Problem Space: Source-Address-Dependent Routing and Source Address Selection for IPv6 Hosts: Overview of the Problem Space
Why computers with multiple networks must choose which source address to use
Sarikaya, B. and M. Boucadair, "Source-Address-Dependent Routing and Source Address Selection for IPv6 Hosts: Overview of the Problem Space", RFC 8043, DOI 10.17487/RFC8043, January 2017, <https://www.rfc-editor.org/info/rfc8043>.
@misc{rfc8043,
series = {Request for Comments},
number = 8043,
howpublished = {RFC 8043},
publisher = {RFC Editor},
doi = {10.17487/RFC8043},
url = {https://www.rfc-editor.org/info/rfc8043},
author = {B. Sarikaya and M. Boucadair},
title = {{Source-Address-Dependent Routing and Source Address Selection for IPv6 Hosts: Overview of the Problem Space}},
pagetotal = 16,
year = 2017,
month = jan,
} RFC text
Contents
Independent Submission B. Sarikaya
Request for Comments: 8043 Huawei USA
Category: Informational M. Boucadair
ISSN: 2070-1721 Orange
January 2017
Source-Address-Dependent Routing and Source Address Selection
for IPv6 Hosts: Overview of the Problem Space
Abstract
This document presents the source-address-dependent routing (SADR)
problem space from the host's perspective. Both multihomed hosts and
hosts with multiple interfaces are considered. Several network
architectures are presented to illustrate why source address
selection and next-hop resolution are needed in view of
source-address-dependent routing.
The document is scoped on identifying a set of scenarios for
source-address-dependent routing from the host's perspective and
analyzing a set of solutions to mitigate encountered issues. The
document does not make any solution recommendations.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This is a contribution to the RFC Series, independently of any other
RFC stream. The RFC Editor has chosen to publish this document at
its discretion and makes no statement about its value for
implementation or deployment. Documents approved for publication by
the RFC Editor are not a candidate for any level of Internet
Standard; see Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc8043.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Overall Context . . . . . . . . . . . . . . . . . . . . . 3
1.2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Source-Address-Dependent Routing (SADR) Scenarios . . . . . . 4
2.1. Multi-Prefix Multihoming . . . . . . . . . . . . . . . . 5
2.2. Multi-Prefix Multi-Interface . . . . . . . . . . . . . . 5
2.3. Home Network (Homenet) . . . . . . . . . . . . . . . . . 7
2.4. Service-Specific Egress Routing . . . . . . . . . . . . . 7
3. Analysis of Source-Address-Dependent Routing . . . . . . . . 8
3.1. Scenarios Analysis . . . . . . . . . . . . . . . . . . . 8
3.2. Provisioning Domains and SADR . . . . . . . . . . . . . . 10
4. Discussion of Alternate Solutions . . . . . . . . . . . . . . 11
4.1. Router Advertisement Option . . . . . . . . . . . . . . . 11
4.2. Router Advertisement Option Set . . . . . . . . . . . . . 12
4.3. Rule 5.5 for Source Address Selection . . . . . . . . . . 12
5. Security Considerations . . . . . . . . . . . . . . . . . . . 13
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1. Normative References . . . . . . . . . . . . . . . . . . 13
6.2. Informative References . . . . . . . . . . . . . . . . . 14
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction
1.1. Overall Context
BCP 38 recommends ingress traffic filtering to prohibit Denial-of-
Service (DoS) attacks. As such, datagrams with source addresses that
do not match with the network where the host is attached are
discarded [RFC2827]. Preventing packets from being dropped due to
ingress filtering is difficult, especially in multihomed networks
where the host receives more than one prefix from the networks it is
connected to, and consequently may have more than one source address.
Based on BCP 38, BCP 84 introduced recommendations on the routing
system for multihomed networks [RFC3704].
Recommendations on the routing system for ingress filtering such as
in BCP 84 inevitably involve source address checks. This leads to
source-address-dependent-routing (SADR). Source-address-dependent
routing can be problematic, especially when the host is connected to
a multihomed network and is communicating with another host in
another multihomed network. In such a case, the communication can be
broken in both directions if Network Providers apply ingress
filtering and the datagrams contain the wrong source addresses (see
[INGRESS_FIL] for more details).
Hosts with simultaneously active interfaces receive multiple prefixes
and have multiple source addresses. Datagrams originating from such
hosts are likely to be filtered due to ingress filtering policies.
The source address selection algorithm needs to carefully avoid
ingress filtering on the next-hop router [RFC6724].
Many use cases have been reported for source/destination routing --
see [SD_RTG]. These use cases clearly indicate that the multihomed
host or Customer Premises Equipment (CPE) router needs to be
configured with the correct source prefixes/addresses so that it can
forward packets upstream correctly to prevent the ingress filtering
applied by an upstream Network Provider from dropping the packets.
In multihomed networks, there is a need to enforce source-address-
based routing if some providers are performing ingress filtering.
This requires that the routers consider the source addresses as well
as the destination addresses in determining the packet's next hop.
1.2. Scope
Based on the use cases defined in [SD_RTG], the routers may be
informed about the source addresses to use for forwarding using
extensions to the routing protocols like IS-IS [ISO.10589.1992]
[SD_RTG_ISIS], OSPF [RFC5340] [SD_RTG_OSPF].
In this document, we describe the scenarios for source-address-
dependent routing from the host's perspective. Two flavors can be
considered:
1. A host may have a single interface with multiple addresses (from
different prefixes or /64s). Each prefix is delegated from
different exit routers, and this case can be called "multihomed
with multi-prefix" (MHMP). In such case, source address
selection is performed by the host while source-dependent routing
is enforced by an upstream router.
2. A host may have simultaneously connected multiple interfaces
where each interface is connected to a different exit router, and
this case can be called "multi-prefix multiple interface" (MPMI).
For this case, the host is required to support both source
address selection and source-dependent routing to avoid the need
for an upstream router to rewrite the IPv6 prefix.
Several limitations arise in multihoming contexts based on NAT and
IPv6-to-IPv6 Network Prefix Translation (NPTv6) [RFC6296]; see, for
example, [RFC4116]. NPTv6 is out of scope for this document.
This document was initially written to inform the community about the
SADR problem space. It was updated to record the various sets of
alternate solutions to address that problem space. The 6man WG
consensus is documented in [RFC8028].
2. Source-Address-Dependent Routing (SADR) Scenarios
This section describes a set of scenarios to illustrate the SADR
problem. Scenarios are listed in order of increasing complexity.
2.1. Multi-Prefix Multihoming
The scenario shown in Figure 1 is a multi-prefix multihoming use
case. "rtr" is a CPE router that is connected to two Network
Providers, each advertising its own prefixes. In this case, the host
may have a single interface, but it receives multiple prefixes from
the upstream Network Providers. Assuming that providers apply the
ingress filtering policy, the packets for any external communication
from the host should follow source-address-dependent routing in order
to avoid getting dropped.
In this scenario, the host does not need to perform source-dependent
routing; it only needs to perform source address selection.
+------+ |
| | | (Network)
| | |=====|(Provider 1)|=====
| | +------+ |
| | | | |
| |=====| rtr |=====|
| host | | | |
| | +------+ |
| | |
| | | (Network)
| | |=====|(Provider 2)|=====
| | |
+------+ |
Figure 1: Multihomed Host with Multiple CPE Routers
2.2. Multi-Prefix Multi-Interface
The scenario shown in Figure 2 is multi-prefix multi-interface, where
"rtr1" and "rtr2" represent CPE routers and there are exit routers in
both "network 1" and "network 2". If the packets from the host
communicating with a remote destination are routed to the wrong exit
router, i.e., they carry the wrong source address, they will get
dropped due to ingress filtering.
In order to avoid complications when sending packets and to avoid the
need to rewrite the source IPv6 prefix, the host is required to
perform both source address selection and source-dependent routing so
that the appropriate next hop is selected while taking into account
the source address.
+------+ +------+ ___________
| | | | / \
| |-----| rtr1 |=====/ network \
| | | | \ 1 /
| | +------+ \___________/
| |
| host |
| |
| | +------+ ___________
| | | | / \
| |=====| rtr2 |=====/ network \
| | | | \ 2 /
+------+ +------+ \___________/
Figure 2: Multiple Interfaced Host with Two CPE Routers
There is a variant of Figure 2 that is often referred to as a
corporate VPN, i.e., a secure tunnel from the host to a router
attached to a corporate network. In this case, "rtr2" provides
access directly to the corporate network, and the link from the host
to "rtr2" is a secure tunnel (for example, an IPsec tunnel).
Therefore, the interface is a virtual interface with its own IP
address/prefix assigned by the corporate network.
+------+ +------+ ___________
| |-----| rtr1 | / \
| ==========\\ |=====/ network \
| |-----| || | \ 1 /
| | +--||--+ \___________/
| | ||
| host | ||
| | ||
| | +--||--+ ___________
| | | | / corporate \
| | | rtr2 |=====/ network \
| | | | \ 2 /
+------+ +------+ \___________/
Figure 3: VPN Case
There are at least two sub-cases:
a. Dedicated forwarding entries are created in the host such that
only traffic directed to the corporate network is sent to "rtr2";
everything else is sent to "rtr1".
b. All traffic is sent to "rtr2" and then routed to the Internet if
necessary. This case doesn't need host routes but leads to
unnecessary traffic and latency because of the path stretch via
"rtr2".
2.3. Home Network (Homenet)
In the homenet scenario depicted in Figure 4, representing a simple
home network, there is a host connected to a local network that is
serviced with two CPEs that are connected to Providers 1 and 2,
respectively. Each network delegates a different prefix. Also, each
router provides a different prefix to the host. The issue in this
scenario is that ingress filtering is used by each provider. This
scenario can be considered as a variation of the scenario described
in Section 2.2.
+------+
| | +------+
| | | | (Network)
| |==+==| rtr1 |====|(Provider 1)|=====
| | | | |
| | | +------+
| host | |
| | |
| | | +------+
| | | | | (Network)
| | +==| rtr2 |====|(Provider 2)|=====
| | | |
+------+ +------+
Figure 4: Simple Home Network with Two CPE Routers
The host has to select the source address from the prefixes of
Providers 1 or 2 when communicating with other hosts in Provider 1 or
2. The next issue is to select the correct next-hop router, "rtr1"
or "rtr2" that can reach the correct provider, Network Provider 1 or
2.
2.4. Service-Specific Egress Routing
A variation of the scenario in Section 2.1 is specialized egress
routing. Upstream networks offer different services with specific
requirements, e.g., Voice over IP (VoIP) or IPTV. The hosts using
this service need to use the service's source and destination
addresses. No other service will accept this source address, i.e.,
those packets will be dropped [SD_RTG].
Both source address selection and source-dependent routing are
required to be performed by the host.
___________ +------+
/ \ +------+ | |
/ network \ | | | |
\ 1 /--| rtr1 |----| |
\___________/ | | | | +------+ ___________
+------+ | host | | | / \
| |=====| rtr3 |=====/ network \
___________ | | | | \ 3 /
/ \ +------+ | | +------+ \___________/
/ network \ | | | |
\ 2 /--| rtr2 |----| |
\___________/ | | | |
+------+ | |
+------+
Figure 5: Multi-Interfaced Host with Three CPE Routers
The scenario shown in Figure 5 is a variation of a multi-prefix
multi-interface scenario (Section 2.2). "rtr1", "rtr2", and "rtr3"
are CPE routers. The networks apply ingress routing. Source-
address-dependent routing should be used to avoid dropping any
external communications.
3. Analysis of Source-Address-Dependent Routing
SADR can be facilitated at the host with proper source address and
next-hop selection. For this, each router connected to different
interfaces of the host uses Router Advertisements (RAs) [RFC4861] to
distribute a default route, the next hop, and the source address/
prefix information to the host. As a reminder, while the Prefix
Information Option (PIO) is defined in [RFC4861], the Route
Information Option (RIO) is defined in [RFC4191].
Section 3.1 presents an analysis of the scenarios in Section 2, and
Section 3.2 discusses the relevance of SADR to the provisioning
domains.
3.1. Scenarios Analysis
As in [RFC7157], we assume that the routers in Section 2 use RAs to
distribute default route and source address prefixes supported in
each next hop to the hosts or that the gateway/CPE router relays this
information to the hosts.
Referring to Section 2.1, source address selection is undertaken by
the host while source-dependent routing must be followed by "rtr" to
avoid packets being dropped. No particular modification is required
for next-hop selection at the host.
Referring to the scenario in Figure 2, source-address-dependent
routing can present a solution to the problem of when the host wishes
to reach a destination in network 2 and the host chooses "rtr1" as
the default router. The solution assumes that the host is correctly
configured. The host should be configured with the prefixes
supported in these next hops. This way the host, having received
many prefixes, will have the correct information for selecting the
right source address and next hop when sending packets to remote
destinations.
Note that similar considerations apply to the scenario in Figure 5.
In the configuration of the scenario (Figure 1), it is also useful to
configure the host with the prefixes and source address prefixes they
support. This will enable the host to select the right prefix when
sending packets to the right next hop and avoid any issues with
ingress filtering.
Let us analyze the scenario in Section 2.3. If a source-address-
dependent routing protocol is used, the two routers ("rtr1" and
"rtr2") are both able to route traffic correctly, no matter which
next-hop router and source address the host selects. In case the
host chooses the wrong next-hop router, e.g., "rtr1" is selected for
Provider 2, "rtr1" will forward the traffic to "rtr2" to be sent to
Network Provider 2 and no ingress filtering will happen.
Note that home networks are expected to comply with requirements for
source-address-dependent routing and that the routers will be
configured accordingly no matter which routing protocol is used
[RFC7788].
This would work, but with some issues. The host traffic to Provider
2 will have to go over two links instead of one, i.e., the link
bandwidth will be halved. Another possibility is that "rtr1" can
send an ICMPv6 Redirect message to the host to direct the traffic to
"rtr2". The host would then redirect Provider 2 traffic to "rtr2".
The problem with redirects is that the ICMPv6 Redirect message can
only convey two addresses, i.e., in this case the router address, or
"rtr2" address and the destination address, or the destination host
in Provider 2. That means that the source address will not be
communicated. As a result, the host would send packets to the same
destination using both source addresses, which causes "rtr2" to send
a redirect message to "rtr1", resulting in ping-pong redirects sent
by "rtr1" and "rtr2".
A solution to these issues is to configure the host with the source
address prefixes that the next hop supports. In a homenet context,
each interface of the host can be configured by its next-hop router,
so that all that is needed is to add the information about source
address prefixes. This results in the hosts selecting the right
router, no matter what.
Source-address-dependent routing in the use case of specialized
egress routing (Section 2.4) may work as follows. The specialized
service router advertises one or more specific prefixes with
appropriate source prefixes, e.g., to the CPE router, "rtr" in
Figure 1. The CPE router in turn advertises the specific service's
prefixes and source prefixes to the host. This will allow proper
configuration at the host so that the host can use the service by
sending the packets with the correct source and destination
addresses.
3.2. Provisioning Domains and SADR
A consistent set of network configuration information is called a
provisioning domain (PvD). In the case of multihomed with multi-
prefix (MHMP), more than one provisioning domain is present on a
single link. In the case of multi-prefix multiple interface (MPMI)
environments, elements of the same domain may be present on multiple
links. PvD-aware nodes support association of configuration
information into PvDs and use these PvDs to serve requests for
network connections, e.g., choosing the right source address for the
packets. PvDs can be constructed from one of more DHCP or Router
Advertisement (RA) options carrying such information as PvD identity
and PvD container [MPvD_NDP] [MPvD_DHCP]. PvDs constructed based on
such information are called explicit PvDs [RFC7556].
Apart from PvD identity, PvD content may be encapsulated in separate
RA or DHCP options called the PvD Container Option. These options
are placed in the container options of an explicit PvD.
Explicit PvDs may be received from different interfaces. A single
PvD may be accessible over one interface or simultaneously accessible
over multiple interfaces. Explicit PvDs may be scoped to a
configuration related to a particular interface; however, in general,
this does not apply. What matters is that the PvD identity is
authenticated by the node even in cases where the node has a single
connected interface. The authentication of the PvD ID should meet
the level required by the node policy. Single PvD information may be
received over multiple interfaces as long as the PvD ID is the same.
This applies to the Router Advertisements (RAs) in which case a
multihomed host (that is, with multiple interfaces) should trust a
message from a router on one interface to install a route to a
different router on another interface.
4. Discussion of Alternate Solutions
We presented many topologies in which a host with multiple interfaces
or a multihomed host is connected to various networks or Network
Providers, which in turn may apply ingress routing. The scenario
analysis in Section 3.1 shows that in order to prevent packets from
being dropped due to ingress routing, source-address-dependent
routing is needed. Also, source-address-dependent routing should be
supported by routers throughout a site that has multiple egress
points.
In this section, we provide some alternate solutions vis-a-vis the
scenarios presented in Section 2. We start with Rule 5.5 in
[RFC6724] for source address selection and the scenarios it solves,
and then continue with solutions that state exactly what information
hosts need in terms of new Router Advertisement options for correct
source address selection in those scenarios. No recommendation is
made in this section.
4.1. Router Advertisement Option
There is a need to configure the host not only with the prefixes, but
also with the source prefixes that the next-hop routers support.
Such a configuration may prevent the host from getting ingress/egress
policy error messages such as ICMP source address failure messages.
If host configuration is done using Router Advertisement messages,
then there is a need to define new Router Advertisement options for
source-address-dependent routing. These options include the Route
Prefix with Source Address/Prefix Option. Other options such as the
Next-Hop Address with the Route Prefix Option and the Next-Hop
Address with the Source Address and Route Prefix Option will be
considered in Section 4.2.
As discussed in Section 3.1, the scenario in Figure 4 can be solved
by defining a new Router Advertisement option.
If host configuration is done using DHCP, then there is a need to
define new DHCP options for Route Prefix with Source Address/Prefix.
As mentioned above, DHCP server configuration is interface specific.
New DHCP options for source-address-dependent routing such as route
prefix and source prefix need to be configured separately for each
interface.
The scenario in Figure 4 can be solved by defining a new DHCP option.
4.2. Router Advertisement Option Set
Rule 5.5 for source address selection may be a solution for selecting
the right source addresses for each next hop, but there are cases
where the next-hop routers on each interface of the host are not
known by the host initially. Such use cases are out of scope.
Guidelines for use cases that require the Router Advertisement option
set involving third-party next-hop addresses are also out of scope.
4.3. Rule 5.5 for Source Address Selection
One possible solution is Rule 5.5 in [RFC6724], the default rule for
source address selection, which recommends selecting the source
addresses advertised by the next hop. Considering the above
scenarios, we can state that this rule can solve the problem in
Figures 1, 2, and 5.
Source address selection rules can be distributed by the DHCP server
using the DHCP option OPTION_ADDRSEL_TABLE defined in [RFC7078].
In case of DHCP-based host configuration, the DHCP server can
configure only the interface of the host to which it is directly
connected. In order for Rule 5.5 to apply on other interfaces, the
option should be sent on those interfaces as well using the DHCPv6
address selection policy option defined in [RFC7078].
Rule 5.5, the default rule for source address selection, solves that
problem when an application sends a packet with an unspecified source
address. In the presence of two default routes, one route will be
chosen, and Rule 5.5 will make sure that the right source address is
used.
When the application selects a source address, i.e., the source
address is chosen before next-hop selection, even though the source
address is a way for the application to select the exit point, in
this case, that purpose will not be served. In the presence of
multiple default routes, one will be picked, ignoring the source
address that was selected by the application because it is known that
IPv6 implementations are not required to remember which next hops
advertised which prefixes. Therefore, the next-hop router may not be
the correct one, and the packets may be filtered.
This implies that the hosts should register which next-hop router
announced each prefix. It is required that RAs be sent by the
routers and that they contain PIO on all links. It is also required
that the hosts remember the source addresses of the routers that sent
PIOs together with the prefixes advertised. This can be achieved by
updating redirect rules specified in [RFC4861]. [RFC8028] further
elaborates this to specify to which router a host should present its
transmission.
The source-address-dependent routing solution is not complete without
support from the edge routers. All routers in edge networks need to
be required to support routing based on not only the destination
address but also the source address. All edge routers need to be
required to satisfy filters as defined in BCP 38.
5. Security Considerations
This document describes some use cases, and thus brings no additional
security risks. Solution documents should further elaborate on
specific security considerations.
6. References
6.1. Normative References
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering:
Defeating Denial of Service Attacks which employ IP Source
Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827,
May 2000, <http://www.rfc-editor.org/info/rfc2827>.
[RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed
Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March
2004, <http://www.rfc-editor.org/info/rfc3704>.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007,
<http://www.rfc-editor.org/info/rfc4861>.
[RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
<http://www.rfc-editor.org/info/rfc5340>.
[RFC6296] Wasserman, M. and F. Baker, "IPv6-to-IPv6 Network Prefix
Translation", RFC 6296, DOI 10.17487/RFC6296, June 2011,
<http://www.rfc-editor.org/info/rfc6296>.
[RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown,
"Default Address Selection for Internet Protocol Version 6
(IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012,
<http://www.rfc-editor.org/info/rfc6724>.
[RFC7078] Matsumoto, A., Fujisaki, T., and T. Chown, "Distributing
Address Selection Policy Using DHCPv6", RFC 7078,
DOI 10.17487/RFC7078, January 2014,
<http://www.rfc-editor.org/info/rfc7078>.
[RFC8028] Baker, F. and B. Carpenter, "First-Hop Router Selection by
Hosts in a Multi-Prefix Network", RFC 8028,
DOI 10.17487/RFC8028, November 2016,
<http://www.rfc-editor.org/info/rfc8028>.
6.2. Informative References
[INGRESS_FIL]
Huitema, C., Draves, R., and M. Bagnulo, "Ingress
filtering compatibility for IPv6 multihomed sites", Work
in Progress, draft-huitema-multi6-ingress-filtering-00,
October 2004.
[ISO.10589.1992]
International Organization for Standardization,
"Intermediate system to intermediate system intra-domain-
routing routine information exchange protocol for use in
conjunction with the protocol for providing the
connectionless-mode Network Service (ISO 8473), ISO
Standard 10589", ISO ISO.10589.1992, 1992.
[MPvD_DHCP]
Krishnan, S., Korhonen, J., and S. Bhandari, "Support for
multiple provisioning domains in DHCPv6", Work in
Progress, draft-ietf-mif-mpvd-dhcp-support-02, October
2015.
[MPvD_NDP] Korhonen, J., Krishnan, S., and S. Gundavelli, "Support
for multiple provisioning domains in IPv6 Neighbor
Discovery Protocol", Work in Progress, draft-ietf-mif-
mpvd-ndp-support-03, February 2016.
[RFC4116] Abley, J., Lindqvist, K., Davies, E., Black, B., and V.
Gill, "IPv4 Multihoming Practices and Limitations",
RFC 4116, DOI 10.17487/RFC4116, July 2005,
<http://www.rfc-editor.org/info/rfc4116>.
[RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and
More-Specific Routes", RFC 4191, DOI 10.17487/RFC4191,
November 2005, <http://www.rfc-editor.org/info/rfc4191>.
[RFC7157] Troan, O., Ed., Miles, D., Matsushima, S., Okimoto, T.,
and D. Wing, "IPv6 Multihoming without Network Address
Translation", RFC 7157, DOI 10.17487/RFC7157, March 2014,
<http://www.rfc-editor.org/info/rfc7157>.
[RFC7556] Anipko, D., Ed., "Multiple Provisioning Domain
Architecture", RFC 7556, DOI 10.17487/RFC7556, June 2015,
<http://www.rfc-editor.org/info/rfc7556>.
[RFC7788] Stenberg, M., Barth, S., and P. Pfister, "Home Networking
Control Protocol", RFC 7788, DOI 10.17487/RFC7788, April
2016, <http://www.rfc-editor.org/info/rfc7788>.
[SD_RTG] Baker, F., Xu, M., Yang, S., and J. Wu, "Requirements and
Use Cases for Source/Destination Routing", Work in
Progress, draft-baker-rtgwg-src-dst-routing-use-cases-02,
April 2016.
[SD_RTG_ISIS]
Baker, F. and D. Lamparter, "IPv6 Source/Destination
Routing using IS-IS", Work in Progress, draft-baker-ipv6-
isis-dst-src-routing-06, October 2016.
[SD_RTG_OSPF]
Baker, F., "IPv6 Source/Destination Routing using OSPFv3",
Work in Progress, draft-baker-ipv6-ospf-dst-src-routing-
03, August 2013.
Acknowledgements
In writing this document, we benefited from the ideas expressed by
the electronic mail discussion participants on 6man Working Group:
Brian Carpenter, Ole Troan, Pierre Pfister, Alex Petrescu, Ray
Hunter, Lorenzo Colitti, and others.
Pierre Pfister proposed the scenario in Figure 4 as well as some text
for Rule 5.5.
The text on corporate VPN in Section 2 was provided by Brian
Carpenter.
Authors' Addresses
Behcet Sarikaya
Huawei USA
5340 Legacy Dr. Building 175
Plano, TX 75024
United States of America
Email: sarikaya@ieee.org
Mohamed Boucadair
Orange
Rennes 35000
France
Email: mohamed.boucadair@orange.com
AI ELI5
On this page
§1The Ingress Filtering Problem
Networks apply ingress filtering (BCP 38, RFC 2827) to block packets with fake source addresses. When a router sees a packet with a source address from outside its own networks, it drops it as potential spoofing. This works well when each host has one address, but breaks for multihomed hosts.
A host receiving multiple prefixes from multiple network providers (like a home router connected to both DSL and 4G, or a phone with WiFi and cellular) gets multiple source addresses. When it sends a packet with the wrong source address for the chosen path, the packet gets dropped by ingress filters. RFC 3704 (BCP 84) recommends that multihomed networks enforce source-address-dependent routing to prevent this, meaning routers must consider source addresses when choosing next hops.
Guards at each road check if you're from the right town before letting you pass. If you pick the wrong town-name for your current road, you are stuck.
§2Scenarios and Their Complexity
The RFC describes four increasing levels of complexity:
Multi-prefix multihoming: A host has a single interface but receives prefixes from two providers. The host must select the right source address for each packet so it reaches the correct provider. The router handles source-dependent routing automatically. Example: a home with DSL and cable internet sharing one WiFi network.
Multi-prefix multi-interface: A host has two interfaces, each connected to a different provider's router, each providing a different prefix. Now the host must both select the correct source address AND choose which interface to send through. Both decisions are linked: choose the wrong source address or wrong interface, and the packet gets dropped. Example: a laptop with both Ethernet and WiFi, connected to different networks.
Home networks: A home router (CPE) with two internet connections serves hosts inside the home network. Each CPE broadcasts its own prefix. Internal hosts must choose which CPE to route through and which source prefix to use, or pick the wrong combination and lose connectivity.
Service-specific egress routing: Some services require specific source prefixes. A VoIP service might only accept packets from its assigned address range. A host must select both the correct service address and the correct next hop that reaches that service.
Start simple: pick the right address-town. Then harder: pick the right address-town AND the right interface-road. Then: operate a home network. Then: different services need different addresses.
| Scenario | Host chooses source address? | Host chooses route? | Complexity |
|---|---|---|---|
| Multi-prefix multihoming | Yes | No (router does) | Low |
| Multi-prefix multi-interface THIS RFC | Yes | Yes | High |
| Home network | Yes | Yes | Medium |
| Service-specific egress | Yes | Yes | High |
§3Analysis: How Hosts Make These Choices
In basic multihoming (multi-prefix multihoming), the host performs source address selection (choosing which of its addresses to use) while the upstream router performs source-dependent routing (choosing which path to send the packet on). No special host routing is needed.
In multi-prefix multi-interface scenarios, the host must do both. It receives multiple prefixes from different routers on different interfaces, usually via Router Advertisements (RAs). The host needs to know which source prefixes each upstream router will accept. One approach: configure the host with explicit source address prefixes for each next hop. Another: use ICMPv6 Redirect messages from routers to steer traffic, but Redirects can only convey destination address, not source address, creating confusion.
Home networks should use source-address-dependent routing at the routers, but hosts still need proper source address selection. This requires hosts to learn which source prefixes each CPE supports, typically via Router Advertisements advertising both destination routes and acceptable source prefixes.
Provisioning Domains (PvDs) offer a solution: a consistent set of network configuration information grouped together. Explicit PvDs carry identity and configuration information via DHCP or RA options. A host can associate configuration information into PvDs and use them for routing decisions.
The host learns from routers which addresses work on which roads, then picks the right combo for each packet.
- Host with multiple networks
- Single interface, multi-prefix
- Choose source address
- Let router choose path
- Multiple interfaces
- Learn source prefixes per interface (via RA)
- Choose source address
- Choose output interface/next-hop
- Send packet
- Single interface, multi-prefix
§4Solutions: Router Advertisements and Policy
Router Advertisement (RA) messages can carry additional options beyond simple prefix information. The Prefix Information Option (PIO) advertises which prefixes are valid on a link. The Route Information Option (RIO) advertises specific routes. Sources suggest that RAs could carry new options advertising which source address prefixes work with each next hop, helping hosts make correct decisions.
One proposal adds new RA options explicitly listing source address prefixes supported by that router. A host receiving "Router X on Interface 1 supports source prefixes A and B" and "Router Y on Interface 2 supports source prefixes C and D" can then correctly select both source and next-hop.
Another approach relies on Rule 5.5 of RFC 6724 (Default Address Selection), which already provides guidance on source address selection in multihomed hosts. RFC 8028 (updated consensus) builds on these mechanisms.
Routers tell hosts: 'I accept packets from addresses in town A and town B, use one of those.' Then hosts pick correctly.
§5Trust and Network Configuration
Hosts must trust the information they receive from routers about which source addresses work on which paths. A malicious router advertising incorrect source prefixes could cause packets to be dropped or misrouted. Provisioning Domain information should be authenticated based on the host's policy requirements. When multihomed hosts receive provisioning information from multiple routers on different interfaces, they should verify that the PvD identity is authentic, especially when the same PvD is advertised on multiple interfaces. Hosts should not blindly trust a route advertisement from a router on one interface telling them to send traffic via a router on another interface without appropriate authentication. These concerns are particularly important in enterprise VPN scenarios where a corporate network overlaps with home or public internet access.
Trust only routers you are supposed to trust. Make sure a router really is what it claims to be.
§6Why This Matters
This RFC provides the foundational problem analysis that led to RFC 8028, which documents IETF consensus on host multihoming behavior. The scenarios and challenges described here are not hypothetical: dual-ISP homes, corporate VPNs overlapping with home networks, and service-specific routing are all in deployment. As IPv6 addresses become more common, these problems grow more urgent. Understanding the source-address-dependent routing problem space helps operators design networks that work correctly, helps implementers build hosts that behave properly, and shapes standards for how routers should advertise capabilities. The document makes no specific recommendations—that is the job of RFC 8028 and related standards—but provides the shared understanding necessary for those recommendations to make sense.
Lots of real networks have this problem. Understanding it helps everyone build things that work.