Multihoming

Multihoming is the practice of connecting a 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 network. Connecting to multiple networks can increase reliability because if one connection fails, packets can still be routed through the remaining connection(s). Connecting to multiple networks can also improve performance because data can be transmitted and received through the multiple connections simultaneously, multiplying throughput and, depending on the destination, it may be possible to select a more efficient route through the choice of outbound network.

Variants

There are several different ways to perform multihoming.

Host multihoming

A single host may be connected to multiple networks. For example, a mobile phone might be simultaneously connected to a WiFi network and a 4G network, and a desktop computer might be connected to both a home network and a VPN. A multihomed host is assigned multiple addresses, one per connected network.

Classic multihoming

In classic multihoming, a network is connected to multiple providers and uses its own range of addresses (typically from a Provider Independent (PI) range). The network's edge routers communicate with the providers using a dynamic routing protocol, typically BGP, which announces the network's address range to all providers. If one of the links fails, the dynamic routing protocol recognizes the failure within seconds or minutes and reconfigures its routing tables to use the remaining links, transparently to the hosts. This means that existing TCP and UDP sessions are typically maintained through such cut-overs.

Classic multihoming is costly, since it requires the use of address space that is accepted by all providers, a public Autonomous System (AS) number, and a dynamic routing protocol. Since multihomed address space cannot be aggregated, it may contribute to the growth of the global routing table.

Multihoming with multiple addresses

In this approach, the network is connected to multiple providers and assigned multiple address ranges, one for each provider. Hosts are assigned multiple addresses, one for each provider.

Multihoming with multiple addresses is cheaper than classic multihoming, and can be used without any cooperation from the providers (e.g. in a home network) but requires additional technology in order to perform routing:

Caveats

When multihoming is used to improve reliability, care must be taken to eliminate any single point of failure (SPOF):

By increasing the number of interfaces and links being used and making routing less deterministic, multihoming complicates network administration[citation needed].

Implementation

IPv4

Classic multihoming is the dominant technique for IPv4. This requires that a network have its own public IP address range and a public AS number.

While multihoming with multiple addresses has been implemented for IPv4, it is not generally used, as host implementations do not deal well with multiple addresses per interface which requires the use of "virtual interfaces". It is also possible to implement multihoming for IPv4 using multiple NAT gateways.

IPv6

Classic multihoming can be done in the same way for IPv6 as in IPv4, using Provider Independent Address Space (PI), which can be used to balance traffic across multiple providers. Some regional Internet registries (RIR) such as RIPE have started to allocate /48s from a specific prefix for this purpose. RIPE allocates IPv6 provider-independent address spaces /48 or shorter from 2001:678::/29.

Multihoming with multiple addresses has been implemented for IPv6. For outgoing traffic, this requires support on the host, either protocol agnostic (Multipath TCP, SCTP, QUIC, etc.) or specific to IPv6 (e.g. SHIM6).

Other solutions

See also

References

  1. ↑ Iljitsch van Beijnum, A look at multihoming and BGP, archived from the original on 2010-07-06
  2. ↑ Cisco Engineers (May 7, 2025). "Configure BGP with Two Different Service Providers". Cisco. Retrieved 2026-02-27.{{cite web}}: CS1 maint: url-status (link)
  3. ↑ Scalable Support for Multi-homed Multi-provider Connectivity. IETF. doi:10.17487/RFC2260. RFC 2260.
  4. ↑ Problem Statement for Default Address Selection in Multi-Prefix Environments: Operational Issues of RFC 3484 Default Rules. IETF. doi:10.17487/RFC5220. RFC 5220.
  5. 1 2 3 Matthieu Boutier; Juliusz Chroboczek (2015), "Source-specific routing", Proc. IFIP Networking 2015, arXiv:1403.0445, Bibcode:2014arXiv1403.0445B
  6. ↑ Winter, Rolf; Faath, Michael; Ripke, Aneas (21 March 2016). "Multipath TCP Support for Single-homed End-systems". IETF.
  7. ↑ Vector Routing (PDF), archived from the original (PDF) on 2013-05-17, retrieved 2012-01-07
  8. ↑ "Provider Independent (PI) IPv6 Assignments for End User Organisations". 6 January 2011.
  9. ↑ Lamparter, David; Smirnov, Anton (2 May 2016). "Destination/Source Routing". IETF.
  10. ↑ Atkinson, Randall; Carpenter, Brian E.; Flinck, Hannu (May 2010). Renumbering Still Needs Work. IETF. doi:10.17487/RFC5887. RFC 5887.

Further reading