I’m looking into the possibility of multi-homed internet connectivity for a client and as usually happens in this sort of situation, I’m learning a whole bunch of new technology. Okay, this isn’t quite new, but it’s something I’ve never dealt with before, so a great learning experience.
There are several ways to multihome, separate from the actual protocols used to do so, amongst which the most important are:
Single Link, Multiple IP address (Spaces)
The host has multiple IP addresses (e.g. 2001:db8::1 and 2001:db8::2 in IPv6), but only one physical upstream link. When the single link fails, connectivity is down for all addresses.
Multiple Interfaces, Single IP address per interface
The host has multiple interfaces and each interface has one, or more, IP addresses. If one of the links fails, then its IP address becomes unreachable, but the other IP addresses will still work. Hosts that have multiple AAAA or A records enabled can then still be reachable at the penalty of having the client program time out and retry on the broken address. Existing connections can’t be taken over by the other interface, as TCP does not support this. To remedy this, one could use SCTP which does allow this situation. However SCTP is not used very much in practice.
Multiple Links, Single IP address (Space)
This is what in general is meant with Multihoming. With the use of a routing protocol, in most cases BGP, the end-site announces this address space to its upstream links. When one of the links fails, the protocol notices this on both sides and traffic is not sent over the failing link any more. Usually this method is used to multihome a site and not for single hosts.
Multiple Links, Multiple IP address (Spaces)
This approach uses a specialized Link Load Balancer (or WAN Load Balancer) appliance between the firewall and the link routers. No special configuration is required in the ISP’s routers. It allows use of all links at the same time to increase the total available bandwidth and detects link saturation and failures in real time to redirect traffic. Algorithms allow traffic management. Incoming balancing is usually performed with a real time DNS resolution.
(That’s from Wikipedia, which has a great description on BGP)
And here a great article on Multihoming and BGP.
If you want a hand with all this, you know who to ask 🙂