È possibile che un nome di dominio abbia più indirizzi IP corrispondenti?


89

Ad esempio, quando ci connettiamo a www.example.com, all'inizio proviamo a connetterci a 192.0.2.1. E se il primo tentativo fallisce, allora ci proviamo 192.0.2.222.

È possibile? Possiamo registrare più indirizzi IP di backup per un nome di dominio?


Non funzionerà esattamente in questo modo (con Round-Robin). Se interroghi l'host più volte, ti restituirà IP diversi ogni volta che esegui la query e non solo quando un host fallisce.
karatedog

@karatedog, stavo presumendo che la connessione socket tenterà di connettersi al prossimo IP se non riesce a connettersi al primo
Akash Kava

4
@ AkashKava: una singola connessione ha più passaggi interni. Semplificato: un'applicazione interroga il DNS e ottiene un indirizzo IP. Quindi si connette a quell'indirizzo IP. Se la connessione fallisce, l'applicazione non tornerà al primo passaggio e interrogherà nuovamente il DNS, solo se codificato esplicitamente per farlo. E interrogare più volte un server DNS non fornisce necessariamente un indirizzo IP diverso. Quindi, in breve, il DNS stock non può essere utilizzato per scopi di bilanciamento del carico.
karatedog

possiamo usare questa tecnica per scalare più bilanciatori del carico?
Vikas Verma

Risposte:


65

Questo è il DNS round robin. Questa è una soluzione abbastanza semplice per il bilanciamento del carico. Di solito i server DNS ruotano / mescolano i record DNS per ogni richiesta DNS in entrata. Purtroppo non è una vera soluzione per il failover. Se uno dei server si guasta, alcuni visitatori verranno comunque indirizzati a questo server guasto.


3
Dipende dalle tue aspettative riguardo al tempo di recupero. Se il servizio fornito può rimanere inattivo per alcuni secondi o minuti, è possibile aggiornare il DNS di conseguenza (ad esempio, rimuovere gli IP dei sistemi guasti). Se questo non è accettabile, il DNS non può aiutarti e devi utilizzare bilanciatori del carico e una struttura di rete ad alta disponibilità.
Jens Bradler

Sai come il client sceglie il suo ip dalla lista? È una selezione casuale o il cliente dovrebbe scegliere il primo dell'elenco? Perché nel primo caso il round / robin non è molto utile.
Tobia

È compito del server DNS mescolare o ruotare i record. La maggior parte dei client utilizzerà solo il primo record. Ad esempio, Bind9 può essere configurato per applicare diversi ordini a questo tipo di set di record: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler

possiamo usare questa tecnica per scalare più bilanciatori del carico?
Vikas Verma

48

Puoi farlo. Questo è ciò che fanno anche i grandi.

Prima query:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Domanda successiva:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Come puoi vedere, l'elenco degli IP è stato ruotato, ma l'ordine relativo tra due IP è rimasto lo stesso.

Aggiornamento: vedo diversi commenti che si vantano di come il round robin DNS non sia conveniente per il failover, quindi ecco il riepilogo: DNS non è per il failover. Quindi ovviamente non va bene per il failover. Non è mai stato progettato per essere una soluzione per il failover.


1
Dobbiamo abilitare qualcosa affinché questo Round Robin funzioni o viene fatto automaticamente da ogni server DNS? Ho un Linux e un MS DNS.
Akash Kava

3
Perché Google dovrebbe farlo se non copre il failover?
Joseph Persie

12
@ JosephPersie: perché il DNS non viene utilizzato per il failover. Assegnando più IP allo stesso nome di dominio, le richieste in arrivo vengono semplicemente suddivise tra i server che ascoltano su quegli indirizzi IP. Consideralo come un bilanciamento del carico di primo livello, senza controllo dell'integrità del backend. Non ne hai bisogno, se non hai migliaia di server :-)
karatedog

cosa succede quando il bilanciamento del carico è inattivo e la richiesta viene inoltrata allo stesso bilanciatore?
Jitendra Vispute

1
@ JitendraVispute: DNS non è a conoscenza del servizio dietro l'indirizzo IP che restituisce. In breve, se dietro un indirizzo IP appena restituito dal server DNS è presente un server o un servizio non funzionante, la richiesta a quell'IP fallirà.
karatedog

2

Sì, questo è possibile, ma non conveniente come ha detto Jens. Utilizzo di bilanciatori del carico di nuova generazione come Alteon, che utilizza un protocollo proprietario chiamato DSSP (Distributed site state Protocol) che esegue controlli regolari del sito per assicurarsi che il servizio sia disponibile sia a livello locale che globale, ovvero aree geografiche diverse. Tuttavia, è necessario nel tuo DNS principale delegare l'URL o il servizio al dispositivo configurandolo come server dei nomi autorevole per quell'IP o servizio. In questo modo, il dispositivo risponde alle query DNS in cui risolverà l'IP che ha un servizio di Round-Robin o non è congestionato in base a come hai scelto tra diverse metriche.


1
Sembra più una pubblicità che altro, e i bilanciatori di carico non sono performer stellari nel mondo DNS (nel rispetto delle specifiche). E per essere precisi: "nel tuo Master DNS per delegare l'URL o il servizio" non esiste il concetto di URL o servizio nei nameserver / DNS, quando deleghi deleghi una zona (dominio) ad altri server dei nomi. "come server dei nomi autorevole per quell'IP o servizio." di conseguenza i server dei nomi sono autorevoli per zone / domini non per indirizzi IP o servizi.
Patrick Mevzek

Dal punto di vista lavorativo, funzionano, è stato lo standard de facto per tutta la CDN utilizzare i loadbalancer per gestirlo in modo efficace poiché possono combinare funzionalità avanzate come GEO-LOCATION per fornire indirizzi IP che sono anche vicini al tuo o per il server che è altamente reattivo tra le altre metriche.
Ezra A. Mosomi

1
E introducono molti problemi allo stesso tempo. Nessun proiettile d'argento, tutto ha caratteristiche e svantaggi. Qualsiasi server dei nomi può eseguire la geolocalizzazione e rispondere con un IP diverso in base al client, senza bisogno di bilanciatori del carico per questo. C'è anche uno standard che aiuta: EDNS Client Subnet.
Patrick Mevzek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.