Nous avons enregistré des serveurs de noms pour la résolution DNS pour notre site Web qui est déployé dans plusieurs centres de données.
Notre stratégie actuelle de résolution DNS est basée sur les différentes adresses IP du client, le serveur de noms renverra différentes adresses IP pour le même domaine. Par exemple, si l'adresse IP du client provient d'Amérique du Nord, le serveur de noms renverra une adresse IP qui est l'adresse IP de notre centre de données d'Amérique du Nord.
Mais l'adresse IP du client n'est parfois pas la véritable adresse IP des utilisateurs. Il peut s'agir d'une adresse IP de DNS qui appartient à un FAI ou à un serveur proxy. D'un autre côté, si l'un de nos centres de données est en panne, nous voulons que notre serveur de noms exclue cette adresse IP qui appartient au centre de données en panne. Nous espérons donc que nous pourrons obtenir une stratégie plus dynamique pour notre résolution DNS. Y a-t-il une solution à cela?
Réponses:
Il semble que vous souhaitiez une diffusion. C'est le genre de choses que des sites comme Google utilisent. Vous avez une adresse unique (résolue par DNS) pour tous vos sites Web et vous laissez le protocole de routage Internet (BGP) diriger les utilisateurs vers le site le plus proche (par le protocole de routage). Si un site tombe en panne, le site le plus proche suivant est automatiquement placé dans la table de routage Internet par BGP.
L'exemple classique
8.8.8.8
concerne le DNS. Il se résout à différents endroits dans le monde, et si un emplacement tombe en panne, il passe au prochain emplacement le plus proche.La réponse n'est pas DNS, c'est le routage.
la source
Ce dont vous avez besoin, c'est exactement ce que propose le service DNS Amazon Route53 :
Routage basé sur la latence - Acheminez les utilisateurs finaux vers la région AWS qui fournit la latence la plus faible possible.
Geo DNS - Acheminez les utilisateurs finaux vers un point de terminaison particulier que vous spécifiez en fonction de l'emplacement géographique de l'utilisateur final.
Contrôles d'intégrité et basculement - Amazon Route 53 peut surveiller l'intégrité et les performances de votre application ainsi que de vos serveurs Web et d'autres ressources.
... et de nombreuses fonctionnalités DNS plus avancées .
Vous n'avez pas besoin d' héberger votre site Web sur AWS pour pouvoir utiliser Route53, il fonctionnera avec plaisir avec les services déployés dans des centres de données privés.
À moins que vous ne soyez un utilisateur de Facebook ou de Google, les prix ne devraient pas non plus être un problème, à partir de 0,40 $ par million de demandes (voir les détails des prix ).
J'espère que cela pourra aider :)
la source
J'ai eu cette idée et j'ai commencé à la coder mais je n'ai jamais fini car le besoin s'est évaporé en premier.
Le serveur DNS possède les noms d'hôte et les adresses MAC de toutes les machines sur son réseau local et un moyen de les atteindre. Lorsqu'il reçoit une demande pour une machine qu'il connaît, il envoie un ARP inverse pour l'adresse IP en fonction de l'adresse MAC et utilise la réponse pour construire la réponse DNS.
Cela n'a rien à voir avec ce que vous essayez de faire, mais cela illustre le point. Un serveur DNS peut en théorie être codé pour exécuter le nouveau schéma que vous souhaitez résoudre les noms en adresses IP.
La vraie question semble être de savoir comment obtenir l'adresse IP du client pour décider où les envoyer. Il s'agit d'un petit problème XY. Ce que vous voulez vraiment, c'est que le FAI du client se géolocalise, et vous pouvez l'obtenir en le faisant directement à partir de l'adresse IP qui fait la demande, en supposant que ce n'est pas 8.8.4.4 ou un autre service de redirection DNS. À mon avis, la meilleure solution aux redirecteurs DNS est d'ignorer le problème et de faire une géolocalisation auto-relative (c'est-à-dire, à partir du serveur DNS, essayez de localiser l'adresse IP appelante) et de rediriger de manière appropriée. Voir ici pour savoir comment géolocaliser: /programming/2574542/location-detecting-techniques-for-ip-addresses
Vous ne voulez vraiment vraiment aucune diffusion ici, mais quelque chose de plus sain d'esprit. Anycast a la propriété ennuyeuse de pouvoir rediriger les paquets au milieu de votre flux TCP, provoquant une confusion de masse.
Ron Maupin affirme que anycast est fiable pour TCP. Voici le traceroute montrant le contraire:
Si vous essayez de géolocaliser les adresses IP en amont de la manière évidente que vous obtenez, elles sont toutes les deux dans Wichita. Ce n'est pas correct par lequel une simple démonstration de physique suffira.
La plage de 8.8.4.4 est mesurée à 30 ms dont les 18 premiers sont la pénalité locale (le saut 3 est le routeur local de mon FAI). Ma distance jusqu'à Wichita est de 1297 miles. Le temps aller-retour minimum est donc (1297 * 2 miles / 225 000 kilomètres par seconde (vitesse de la lumière dans le verre)) qui est de 18,55 ms. Par conséquent, je ne devrais obtenir aucune réponse plus rapidement que 28 ms, mais j'en ai reçu une en 25 ms.
Les paquets arrivent à Google par deux routes BGP différentes. BGP n'a pas choisi le plus proche.
la source
Ce dont vous avez besoin pourrait être atteint avec une combinaison de DNS anycast et RFC-7871.
la source