Innanzitutto, VRRP non dipende in alcun modo dal DNS. Per la ridondanza all'interno di un singolo sito è possibile eseguire i server DNS su un indirizzo VRRP condiviso bene.
Ma come altri hanno menzionato nei commenti, i servizi usano anche qualsiasi routing di routing , il che significa essenzialmente che lo stesso indirizzo IP esiste in più luoghi in tutto il mondo. Quando un intero sito si arresta, i percorsi in tutto il mondo vengono ricalcolati in modo che i pacchetti finiscano per andare in un altro sito di lavoro.
Un esempio migliore di DNS pubblico di Google sarebbe la radice server DNS - quelli che servono la .
zona e tenere puntatori a com
, org
, eu
e così via - perché hanno una mappa di tutte le istanze dei 13 indirizzi logici. La "L" di ICANN è servita da 160 siti diversi!
Notare che anycast non ha nulla a che fare con i round robin basati su DNS (dove lo stesso nome ha più indirizzi). Anycast si basa essenzialmente sul protocollo di routing.
Internet utilizza BGP per scambiare informazioni di routing tra organizzazioni.
BGP supporta intrinsecamente la selezione del migliore tra diversi percorsi verso la stessa rete, sulla base di vari criteri. Ad esempio, lo stesso cliente potrebbe avere uplink ridondanti allo stesso ISP (annuncio di due percorsi che differiscono solo per peso / preferenza). Oppure il cliente potrebbe avere uplink attraverso diversi ISP e tutti selezioneranno il loro percorso preferito (principalmente AS-path più breve) - questo è il senso del "vero" multi-WAN.
Multihoming
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter--+ │
¦ │ ¦--DNSserver │
client 2 ---ISP---│--BGProuter--+ │
└──────────────────────────┘
Tuttavia, BGP conduce solo il traffico verso le porte d'ingresso, ma non importa cosa succede oltre. Pertanto, se imposti internamente entrambi i percorsi verso lo stesso server, otterrai il multihoming. Ma se ogni "ingresso" conduce a un server diverso (configurato per lo stesso IP), si ottiene anycast.
Anycast... kind of?
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ │ │
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
È importante sottolineare che questo significa anche che a BGP non importa se l'AS non è affatto contiguo. Per ottenere la ridondanza in tutto il mondo, basta annunciare la stessa rete da più posizioni fisiche - se si collegano tali posizioni insieme (in modo che instradino quella rete in un posto), si ottiene il multihoming; se sono isole, ottieni anycast.
Anycast
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ └──────────────────────────┘
¦
¦ ┌────────[AS 65535]────────┐
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
(Del resto, non deve nemmeno essere lo stesso AS - ad esempio i relè 6to4 sono gestiti da più organizzazioni indipendenti, ognuna delle quali annuncia il proprio percorso verso 192.88.99.0/24
.)
Avvertenze:
Anycast fornisce ridondanza, ma non bilanciamento del carico. Una volta che BGP converge, ciascun router avrà scelto un singolo percorso preferito (o occasionalmente alcuni) e continuerà ad usarlo fino a quando la rete non cambierà.
Tuttavia, non è possibile prevedere per quanto tempo i percorsi rimarranno stabili, quindi qualsiasi servizio con stato può essere complicato. Il DNS se la cava perché è apolide e utilizza principalmente UDP (EDNS ha ridotto la necessità di connessioni TCP).
È necessario un coordinamento tra il servizio effettivo e il router BGP, in modo che il percorso venga ritirato in caso di arresto anomalo del servizio.
Vedi anche "Storia del 4.2.2.2. Qual è la storia?" sulla mailing list di NANOG: post 1 , post 2 .