web-dev-qa-db-fra.com

Utilisation de DNS pour le basculement à l'aide de plusieurs enregistrements A

Il a récemment été porté à mon attention que la configuration de plusieurs enregistrements A pour un nom d'hôte peut être utilisée non seulement pour l'équilibrage de charge à tour de rôle, mais également pour le basculement automatique.

J'ai donc essayé de le tester:

  1. J'ai chargé une page de notre domaine
  2. A noté lequel de nos serveurs avait servi la page
  3. Éteint le serveur Web sur cet hôte
  4. Recharger la page

Et en effet, le navigateur a automatiquement essayé un autre serveur pour charger la page. Cela a fonctionné dans Opera, Safari, IE et Firefox. Seulement Chrome n'a pas réussi à essayer un autre serveur.

Mais après avoir laissé ce serveur hors ligne pendant quelques minutes et consulté les journaux d'accès, j'ai constaté que le nombre de demandes aux autres serveurs n'avait pas considérablement augmenté. Avec 1 serveur sur 3 hors ligne, je m'attendais à ce que les accès à chacun des 2 autres serveurs augmentent d'environ 50%, mais à la place, je n'ai vu que 7 à 10%. Cela ne peut que signifier que le basculement basé sur DNS ne fonctionne pas pour la majorité des navigateurs/visiteurs, ce qui contredit directement ce que je venais de tester.

Quelqu'un a-t-il une idée de ce qui se passe avec le basculement du navigateur Web basé sur DNS? Quelle pourrait être la raison pour laquelle le basculement automatique fonctionne pour moi mais pas pour la majorité de nos visiteurs?

24
Daniel

Ce qui se passe, c'est que les navigateurs ne font pas de basculement DNS automatique.

Si vous avez plusieurs enregistrements A sur un domaine, puis lorsque votre serveur de noms demande l'adresse IP du domaine que vous avez tapé dans votre navigateur, il en demandera un à la SOA. Il pourrait s'agir de n'importe lequel de ces enregistrements A. Puis il le fait passer.

Certains serveurs de noms sont suffisamment "intelligents" pour demander un nouvel enregistrement A si celui qu'il obtient ne fonctionne pas et d'autres non. Donc, si vous définissez plusieurs enregistrements A, vous aurez configuré un pseudo basculement de redondance, mais uniquement pour les personnes disposant de serveurs de noms "intelligents". Les autres obtiennent un tirage au sort des dés sur quelle adresse IP ils obtiennent et si cela fonctionne, alors bon, sinon il ne se chargera pas comme il l'a fait pour vous dans Chrome.

Si vous souhaitez tester spécifiquement cela, vous pouvez utiliser votre fichier d'hôtes C:\Windows\system32\drivers\etc\hosts sous Windows et /etc/hosts sous Linux pour spécifier quelle adresse IP vous souhaitez utiliser avec quel domaine pour voir si vous obtenez un véritable basculement - car ce que vous rencontrerez en pratique, c'est que les serveurs DNS sur le net mettront en cache la résolution de votre nom de domaine en fonction de son TTL . Donc, si/lorsque vous obtenez un véritable échec, cette adresse IP devra toujours être résolue et autrement exploitée sur un autre serveur de noms.

16
Peter

Une autre explication possible est que, pour la plupart des sites Web publics, la majeure partie du trafic provient des robots et non des navigateurs. Selon le bot, il est possible qu'ils ne soient pas aussi intelligents que les navigateurs lorsqu'il s'agit de gérer plusieurs enregistrements A pour un domaine.

De plus, certains bots utilisent des keep-alives pour garder les connexions TCP ouvertes et faire plusieurs requêtes HTTP sur la même connexion. Étant donné que la recherche DNS n'est effectuée que lorsqu'une connexion est établie, ils continueront pour faire des demandes à l'ancienne adresse IP au moins aussi longtemps que la connexion est maintenue ouverte.

Si l'explication ci-dessus a un poids, vous devriez pouvoir la voir dans vos journaux en examinant les chaînes de l'agent utilisateur.

3
Fr Jeremy Krieg