Oui, la plupart des navigateurs des 5 à 10 dernières années essaieront les autres enregistrements A si l’un ne répond pas. Cela s'appelle parfois "tentative du navigateur" ou "tentative du client" apparemment. Vous jolie trouverez bien que des choses à ce sujet dans le cadre des différents exploits de navigateur qui cette fonctionnalité permet contre les sites ne pas l' utiliser (voir reconsolidation DNS et épingler DNS , épinglage anti-dns, épinglage anti-anti-dns, anti-anti -anti-dns pinning , et ainsi de suite). Une sorte de mauvaise réputation, mais cela prouve son existence.
Presque tous les navigateurs reçoivent effectivement la liste complète des enregistrements A et en vérifient bien d’autres si celui qu’il utilise échoue. Vous pouvez vous attendre à ce que chaque client attende 30 secondes lorsqu'il tente d'accéder au site pour la première fois, lorsqu'un serveur est en panne, jusqu'à ce qu'il se connecte à une adresse fonctionnelle. Le navigateur mettra alors en cache l'adresse qui fonctionne et continuera à utiliser celle-ci pour les demandes futures, sauf en cas d'échec; il devra alors effectuer une nouvelle recherche dans la liste. Donc, 30 secondes d'attente à la première demande, très bien par la suite.
Mais ce n’est pas nécessairement quelque chose que vous voulez utiliser, il va y avoir beaucoup de mises en garde concernant la compatibilité du navigateur, la compatibilité os / OS, la compatibilité du proxy, les en-têtes de contrôle du cache vont avoir des effets étranges sur le fait de savoir quelles adresses sont en panne ou commencent à en avoir que chaque seconde demande 30 secondes d’attente, les personnes écrivant des clients personnalisés pour votre site finiront par utiliser gethostbyname au lieu de getaddrinfo et ne seront pas en mesure de gérer le basculement, toutes sortes de problèmes potentiels.
Vous ne pouvez pas non plus vous fier à plusieurs enregistrements A pour autoriser les serveurs "maîtres" et "esclaves", car vous ne saurez jamais quelle adresse un navigateur va choisir dans la liste. Ils doivent tous être tout aussi capables de gérer les visiteurs s’ils courent, car tout le monde peut avoir du trafic s’il est en hausse. Un navigateur peut penser que votre troisième serveur de la liste est le plus attrayant, peut-être le plus proche, et il choisira celui-ci même si les trois sont toujours disponibles.
Mais si vous pouvez vivre avec les limitations et disposer d'un système HTTP relativement simple avec lequel vous pouvez prédire l'interaction du navigateur, cela fonctionnera.
Oh, vous devrez également faire face à beaucoup de gens vous dire que cela n'existe pas (puisque c'était vrai il y a 15 ans). Mais vous pouvez essayer de vous connecter à un nom de domaine avec plusieurs enregistrements A, certains avec des adresses IP mortes et d'autres bons, si vous avez besoin de le prouver (oui, même le bon vieux telnet utilise maintenant getaddrinfo et gère plusieurs enregistrements A de manière élégante ces jours-ci). - il affichera une belle liste des adresses IP qu’il essaie jusqu’à ce qu’il réussisse.
Soyez averti que Windows Vista implémente les parties stupides de RFC3484 (c’est-à-dire le portage d’IPV6 à IPV4) et préférera l’adresse IP qui partage le plus de préfixes avec l’adresse IP de l’utilisateur plutôt que de choisir un au hasard. Étant donné que la plupart des utilisateurs ont des adresses IP commençant par 192.168, cela signifie que l’une de vos adresses IP partageant le plus de préfixes avec lesquels le trafic Vista sera le plus important. Microsoft a corrigé cette idiotie dans Windows 7 et les versions ultérieures. Ce problème n'est donc plus aussi grave qu'auparavant.
la source
Il s’agit d’une technique de base d’équilibrage de la charge DNS: DNS Round Robin. Cela n'a rien à voir avec le navigateur, cela dépend de l'implémentation du résolveur et du cache local / distant de l'adresse DNS. Les changements sont que si un serveur échoue, en raison de la mise en cache dans la couche DNS, votre site Web peut être inaccessible.
Voir ici pour une explication de base sur le Round Robin DNS sur WikiPedia.
la source
nslookup cnn.com
sous Windows ethost cnn.com
sous Linux, une liste d'adresses IP est renvoyée. Cela dépend donc certainement de la mise en oeuvre du navigateur .Le système d'exploitation détermine quelle adresse IP utiliser, pas le navigateur. Windows va rondier la liste renvoyée (dans la liste renvoyée du DNS), mais continuera à utiliser la même adresse jusqu'à ce que le DNS soit vidé ou expire. * Les implémentations ix dépendent en partie de l'implémentation de la pile TCP commun, mais suivent généralement une méthode de tourniquet à tour de rôle.
la source
InetAddress.getAllByName("example.com")
je résous un nom avec une liste de toutes les adresses IP, je peux donc choisir de démarrer une connexion TCP avec chacun d'eux si je le souhaite. Et c'est la même chose si vous utilisezgetaddrinfo()
en C. C'est donc un choix que les développeurs font et non le système d'exploitation. Le serveur DNS décide uniquement dans quel ordre la liste d'adresses IP est renvoyée.