Source-specific routing should not be confused with Source routing.
Source-specific routing,[1] also called source-address dependent routing (SADR),[2] is a routing 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 without the need for provider-independent addresses or any cooperation from upstream ISPs.
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.
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.
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), or by using multipath techniques at the higher layers (see Multipath TCP and Multipath Mosh[3]).
On a network with a single edge router, it is possible to implement source-specific routing by manual manipulation of routing tables.[4] 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 IETF Homenet protocol suite requires support for source-specific routing in its routing protocol.[7]