Comment faire un DNS régional comme le fait un CDN?


15

Je suppose que cette question pourrait être intitulée, comment fonctionne CDN au niveau DNS, mais le vrai problème que j'ai est que mon entreprise a des centres de données sur trois continents et nous devons avoir europe.example.com us.example.com et asia.example .com

Les CDN vous envoient généralement vers le centre de données local, j'imagine en fonction de votre adresse IP. Cela doit être une chose DNS où le serveur DNS aux États-Unis vous envoie dans un centre de données américain pour la même recherche DNS example.com?

Ai-je tort? Si je me trompe, comment pourrais-je le faire efficacement et si possible sans serveurs centraux (non DNS)?


Réponses:


12

Le problème avec les CDN est qu'ils ne vous dirigent pas en fonction de votre propre adresse IP - ils vous dirigent en fonction de l'adresse IP de votre serveur DNS ... Cela pourrait être complètement faux. Et lisez l'article ACM de Paul Vixie , c'est un coup sur l'argent.

Quoi qu'il en soit, si vous avez déjà region.example.comconfiguré et exécuté, vous pouvez envisager de faire une redirection HTTP depuis example.comle serveur Web concerné, en fonction de l'adresse IP du client.

C'est à peu près ce que fait Google, c'est comme ça que je finis par google.co.uktaper google.com.

Assurez-vous également que vous fournissez aux clients un moyen d'accéder aux autres variantes. Les clients ne l'aiment pas lorsqu'ils sont forcés de se rendre sur un site particulier, que ce soit par des erreurs dans les bases de données géographiques ou simplement parce qu'ils ont réellement besoin de voir le site d'une autre région.


5

Les nouveaux CDN (Cloudflare, MaxCDN, fast.ly) utilisent anycast pour les serveurs de contenu DNS et réels. C'est un peu mieux que d'essayer d'utiliser l'IP source d'une requête DNS et une base de données de mappage en constante évolution.

En théorie, l'utilisation de anycast pour les serveurs DNS et de contenu permet au réseau lui-même de trouver les serveurs "les plus proches" du client. Dans la pratique, cela est principalement vrai, mais certains cas étranges surviennent lorsque des personnes à Singapour frappent des serveurs de pointe en Californie au lieu de Hong Kong en raison des relations d'appairage en constante évolution entre les FAI.

Anycast est difficile à bien faire .

Les CDN plus anciens comme Akamai et Limelight utilisent généralement anycast pour vous amener au serveur DNS le plus proche, mais adoptent ensuite l'approche IP basée sur une estimation. Cela ne fonctionne pas aussi bien dans mon expérience, surtout si un client utilise des serveurs DNS qui ne sont pas réellement à proximité en termes de topologie réseau. Cependant, un énorme CDN établi comme Akamai a des centaines d'emplacements de serveur de contenu, donc le retour d'une réponse "assez proche" se traduit par une expérience utilisateur décente. De toute évidence, avoir des centaines de sites coûte très cher, c'est pourquoi aucun des CDN tout-anycast n'a choisi cette voie. Par conséquent, ils ne facturent pas autant pour un service essentiellement équivalent.


1

Il existe un certain nombre de façons de gérer cela, mais elles se résument toutes à déterminer où se trouve une adresse IP et à la pointer en conséquence. Par exemple, vous pouvez spécifier une plage d'adresses IP pour l'Amérique du Nord et une pour l'Europe. Si l'IP demandant les informations (à partir de DNS, de votre serveur Web, de votre serveur de contenu, etc.) se situe dans la plage européenne, alors vos serveurs européens devraient recevoir les demandes.


Ben, qu'est-ce que tu veux dire? Voulez-vous dire que j'ai un serveur DNS aux États-Unis et un par exemple au Royaume-Uni. Quand je pense au DNS, je mets simplement mon record A et j'ai terminé. Comment puis-je spécifier ces serveurs DNS sur une base régionale?
Stewart Robinson

Je pense que ce à quoi il fait référence est quelque chose comme des vues dans bind. Vous pouvez configurer différentes vues dans DNS qui correspondent en fonction de l'adresse IP du client, qui peut être grossièrement identifiée comme appartenant à une région géographique. Il existe de nombreux services disponibles à partir desquels vous pouvez diriger une demande vers une API et obtenir un emplacement. En regardant brièvement, vous pouvez essayer hostip.info/dl/index.html pour une option moins coûteuse.
Greeblesnort

vient de traverser cela dans ma navigation du soir: blogs.techrepublic.com.com/networking/…
Greeblesnort

@Stewart - non, vous ne feriez pas tourner un serveur DNS par région. Eh bien, vous pourriez, mais ce serait pour la redondance, car le système DNS lui-même est un emplacement-bline. La réponse de @ greeblesnort est presque aussi bonne que son nom. :-)
Ben Doom

0

Vous pouvez configurer une page principale par défaut sur example.com. La première fois que quelqu'un visite, il sélectionne la région vers laquelle il souhaite être dirigé. C'est de la même manière que www.ups.com fonctionne.

L'utilisateur peut sélectionner une case à cocher pour en faire son choix par défaut à partir de ce moment, stockant ainsi la sélection dans un cookie.

Cela vous donne l'avantage d'utiliser le DNS de la manière pour laquelle il a été conçu selon Paul Vixie, tout en permettant à votre utilisateur de décider le plus précisément vers quel centre de données il doit être dirigé.


0

Si vous avez un site Web hébergé dans plusieurs régions, vous n'avez rien à faire au niveau DNS. Vous pouvez utiliser une API telle que http://ipinfo.io pour obtenir le pays du visiteur, puis les rediriger vers l'URL appropriée.

Si nous ne parlons pas d'un site Web ou d'un protocole qui gère les redirections, il existe quelques options au niveau DNS. Vous pouvez effectuer la même recherche de pays IP, puis renvoyer un enregistrement qui correspond à la région (DNS basé sur la géolocalisation), ou vous pouvez avoir une carte de la latence entre différents réseaux et renvoyer un enregistrement qui représente la latence la plus faible pour l'utilisateur (latence basé sur DNS). Le service DNS Route53 d'Amazon offre les deux.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.