Come posso inviare visitatori al server più vicino usando DNS?


20

C'è un modo per localizzare le voci DNS? Ciò significa che gli utenti asiatici risolvono mydomain.com su un altro IP rispetto agli utenti statunitensi o europei. Ciò sarebbe utile per fornire agli utenti il ​​server nelle vicinanze. Il DNS è l'unica tecnica utilizzata finora, il che significa che non riesco a posizionare alcun software software o un sistema centrale che sostituisca il DNS per risolvere questo problema.

Risposte:


20

Sì, ci sono attualmente due soluzioni popolari a questo problema.

Viene chiamato il primo Anycast, in cui lo stesso blocco IP viene letteralmente utilizzato in più posizioni in tutto il mondo. Vale a dire, i server dei nomi per il tuo dominio restituiscono sempre lo stesso indirizzo IP, ma tale indirizzo IP è effettivamente assegnato a più di un set di server fisici.

Puoi leggere di più qui http://en.wikipedia.org/wiki/Anycast

La seconda tecnica prevede nuovamente AnyCast, tuttavia questa volta l'intervallo di indirizzi IP che viene trasmesso fa riferimento ai nostri stessi server dei nomi. Poiché i nameserver chiedono ai clienti solo quelli che sono anche i più vicini (come determinato dalla magia di BGP), possono essi stessi restituire indirizzi IP logicamente locali al client.

Un esempio di questo è il dominio l.google.com di google

Da un ospite in Australia

crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104

Da un host negli Stati Uniti

[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103

Quindi, il CNAME per si www.google.comrisolve www.l.google.com, ma quando lo risolvi, a seconda della tua posizione, il tuo client riceve un diverso set di indirizzi IP. Questo perché il server dei nomi che ha ricevuto la richiesta www.l.google.comera il nameserver locale , relativo al client.


5
Questa risposta tecnicamente affronta la domanda, ma penso che sia piuttosto inutile in termini di essere una risposta reale per un problema reale: la maggior parte delle parti non ha alcuncast, quindi la tua risposta è fuori portata per tutte queste parti.
primo

quindi quale dichiarante offre questa soluzione?
dinamico

Vale anche la pena notare che DNS ha questa funzione in modo nativo. Inserire un server DNS in una regione con un record che punta a un server web in quella regione. Ripeti in altre regioni. Profitto.
dmourati,

@dmourati: questo non si propagerebbe e non aggiornerebbe altri server DNS? Ho sempre pensato che i server DNS propagassero sempre le informazioni fino a quando non sono tutte sincronizzate.
Guru Prasad,

@GuruPrasad A più host (di solito in diverse aree geografiche) viene assegnato lo stesso indirizzo IP unicast e le diverse rotte verso l'indirizzo vengono annunciate tramite BGP. I router considerano questi percorsi alternativi verso la stessa destinazione, sebbene in realtà siano percorsi verso destinazioni diverse con lo stesso indirizzo. Come al solito, i router selezionano un percorso in base alla distanza utilizzata (il minor costo, il meno congestionato, il più breve). La selezione di un percorso in questa configurazione equivale alla selezione di una destinazione. == wikipedia / anycast ---- ma funziona meglio in IPv6 di questa descrizione
Garet Claborn

2

Se desideri solo localizzare server per Asia, Nord America ed Europa, puoi decidere di eseguire tu stesso la tua webapp e il tuo DNS.

Con DNS, potresti usare qualcosa come l' approccio DNS Split-Horizon , che potrebbe essere ottenuto attraverso funzionalità integrate del tuo server DNS (potrebbero chiamarlo GeoDNS ) o attraverso un firewall che reindirizzerebbe diversi intervalli di indirizzi IP a diverse esecuzioni istanze del tuo server DNS (potresti eseguire diverse copie del server sul tuo computer locale, che ascolterà su diversi indirizzi IP locali).

Probabilmente potresti ottenere i risultati previsti nel of90% dei casi rispondendo alle richieste DNS da RIPE e indirizzi IP AfriNIC con un Arecord del tuo host in Europa, richieste da APNIC - host in Asia e richieste dagli indirizzi IP dal / 8 blocchi gestiti da ARIN , LACNIC e il resto dello spazio degli indirizzi / 8 con un Arecord del server in Nord America. Ciò produrrà alcuni risultati errati in determinate situazioni (alcuni / 8 blocchi sono condivisi tra Europa e Nord America, un certo spazio di indirizzi è anycast ecc.), Ma il peggio che potrebbe accadere è un po 'di latenza in più per la parte interessata, quindi, non dovrebbe' essere un grosso problema.

(E sì, dovrebbe esserci un modo per rendere più semplici queste cose, ma, finora, sembra che non ce ne sia.)


2

Ho avuto lo stesso problema. La nostra azienda ha clienti in Russia e Cina e tutti hanno bisogno di una connessione molto veloce al nostro servizio. Abbiamo utilizzato Amazon Route 53 Geo dns e abbiamo appena creato due record, uno indirizzerà i clienti dalla Cina al nostro cluster nella regione di Tokyo e i clienti dalla Russia a Londra.

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.