Source-specific routing, also called source-address dependent routing (SADR), is a
routing
Routing is the process of selecting a path for traffic in a Network theory, network or between or across multiple networks. Broadly, routing is performed in many types of networks, including circuit-switched networks, such as the public switched ...
technique in which a routing decision is made by looking at the source address of a
packet in addition to its destination address. The main application of source-specific routing is to allow a cheap form of
multihoming
Multihoming is the practice of connecting a Host (network), host or a computer network to more than one network. This can be done in order to increase reliability or performance.
A typical host or end-user network is connected to just one networ ...
without the need for provider-independent addresses or any cooperation from upstream ISPs.
The problem

In traditional ''next-hop routing'', a packet is routed according to its destination only, towards the closest router that announces a route that matches that destination. Consider a
multihomed end-user network connected to two ISPs, BT&T and PacketCast; such a network will typically have two ''edge routers'', each of which is connected to one ISP.
Both edge routers announce a default route, meaning that they are willing to accept packets destined for the Internet. If a packet with a source in BT&T's network is routed through PacketCast's edge router, PacketCast will assume it is a
spoofed packet, and drop it in accordance to BCP 38.
Multihoming with source-specific routing
With source-specific routing, each edge router announces a ''source-specific default route'': a route that applies to packets destined to the Internet but only if their source is in a given prefix. The effect is that each edge router only attracts packets that have a source address in that provider's prefix.
Desirable host changes
With source-specific routing, each host interface has multiple addresses, one per provider-dependent prefix. For outgoing traffic, host software must choose the right source address. Various techniques for doing that have been suggested, at the network layer, above the network layer (see
Shim6 The Site Multihoming by IPv6 Intermediation (SHIM6) protocol is an Internet Layer defined in RFC 5533.
Architecture
The SHIM6 architecture defines failure detection and locator pair exploration functions. The first is used to detect outages throug ...
), or by using multipath techniques at the higher layers (see
Multipath TCP and Multipath
Mosh).
Support in routing protocols
On a network with a single edge router, it is possible to implement source-specific routing by manual manipulation of routing tables. With multiple routers, explicit support for source-specific routing is required in the routing protocol.
As of early 2016, there are two routing protocols that implement support for source-specific routing:
* The
Babel routing protocol has support for source-specific routing for both IPv4 and IPv6; this is implemented for IPv6 in ''babeld'' and in
BIRD
Birds are a group of warm-blooded vertebrates constituting the class (biology), class Aves (), characterised by feathers, toothless beaked jaws, the Oviparity, laying of Eggshell, hard-shelled eggs, a high Metabolism, metabolic rate, a fou ...
(earlier versions of ''babeld'' supported source-specific routing for IPv4);
* There exists an implementation of
IS-IS
Intermediate System to Intermediate System (IS-IS, also written ISIS) is a routing protocol designed to move information efficiently within a computer network, a group of physically connected computers or similar devices. It accomplishes thi ...
with support for source-specific routing for IPv6 only.
The IETF Homenet protocol suite requires support for source-specific routing in its routing protocol.
[, Section 3.2.4]
References
{{Reflist
Routing
Multihoming