V
V
Vamp2017-02-28 17:02:37
Border Gateway Protocol
Vamp, 2017-02-28 17:02:37

How is fault tolerance achieved on a single IP?

There is a service where clients connect via TCP protocol and send messages. TCP connections are long-running. Most clients are able to automatically reconnect in the event of a connection failure, but almost no one can automatically switch to a backup IP address in the event of a total unavailability of the main server. Clients ask me to switch them myself, but since the backup server is located in a physically different place, I can’t just take and transfer IP between DCs.
How to ensure the fault tolerance of the service, using only one external IP address? The problem I want to solve is the transfer of all traffic from one DC to another without changing the IP address for clients in case the DC is completely unavailable.
Example:
DC1 screwed up somewhere and the network lay down. The availability of the server dipped and the client began to receive connection reset, connection timeout. I need to somehow transfer the ip address to DC2, and then return it back when the problems in DC1 are fixed.
In search of information, I came to BGP and its chips with announcing the prefix from two different places, but with different weights. That is, when connecting, the route with the highest weight will be selected. But not always. Some of the clients will still end up on the backup server, which I would not like.
What other options are there?
UPD
Right now, the variant with domain names and a short TTL is used. But it doesn't work for all clients.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
E
entermix, 2017-02-28
@entermix

Do you need an IP, or can you use a domain?
If the domain, then you can change the IP at the DNS level, i.e. the client will receive the IP referenced by the A record.
Look at zilore.com , for example, it also has the ability to automatically monitor and change IP if the main server is unavailable.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question