Jump to content

Source-specific routing

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Jec (talk | contribs) at 16:59, 5 March 2016 (Switch references around). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Source-specific routing[1], also called Source-address dependent routing (SADR)[2], is a routing technique where 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.

Problem statement

Consider an end-user network connected to two ISPs, BT&T and PacketCast, and two edge routers, each of which is connected to one ISP. Both edge routers announce a default route to the network, 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[3].

Multihoming with source-specific routing

With source-specific routing, each edge router announces a source-specific default route, meaning that it is willing to accept packets destined for the Internet but only if they have a source in a given prefix. The effect is to route packets through the correct edge router depending on the source address of the packet.

Required host changes

With source-specific routing, each host interface has multiple addresses, one per provider-dependent prefix. Host software must choose the right source address. Various techniques for doing that have been suggested, at the network layer[4], above the network layer (see Shim6), or by using multipath techniques at the higher layers (see Multipath TCP and Multipath Mosh[5]).

Support in routing protocols

The babeld implementation of the Babel routing protocol has support for source-specific routing for both IPv4 and IPv6[6].

There exists an implementation of IS-IS with support for source-specific routing for IPv6 only[7].

References

  1. ^ Matthieu Boutier; Juliusz Chroboczek (2015), "Source-specific routing" (PDF), Proc. IFIP Networking 2015
  2. ^ https://tools.ietf.org/html/draft-troan-homenet-sadr-01
  3. ^ RFC 2827
  4. ^ RFC 6724
  5. ^ Matthieu Boutier; Juliusz Chroboczek (2015), "User-space multipath UDP in Mosh" (PDF)
  6. ^ https://tools.ietf.org/html/draft-boutier-homenet-source-specific-routing-00
  7. ^ https://tools.ietf.org/html/draft-baker-ipv6-isis-dst-src-routing-04