Quelqu'un peut-il me diriger vers des informations sur le comportement exact des navigateurs lorsque le navigateur obtient plusieurs enregistrements A pour un nom d'hôte donné (disons ip1 et ip2), et l'un d'eux n'est pas accessible.
Je m'intéresse aux détails EXACT, comme (mais sans s'y limiter):
- Le navigateur obtiendra-t-il 2 adresses IP du système d'exploitation ou n'en obtiendra-t-il qu'une seule?
- Quelle IP le navigateur essaiera-t-il en premier (aléatoire ou toujours le premier)? Maintenant, disons que le navigateur a commencé avec l'IP1 qui a échoué
- Pendant combien de temps le navigateur essaiera-t-il ip1?
- Si l'utilisateur frappe "stop" pendant qu'il attend ip1, puis clique sur Actualiser
- quelle IP le navigateur essaiera-t-il?
- Que se passera-t-il quand il expirera - commencera-t-il à essayer ip2 ou donnera-t-il une erreur? (Et en cas d'erreur, quelle adresse IP le navigateur essaiera-t-il lorsque l'utilisateur cliquera sur Actualiser).
- Lorsque l'utilisateur clique sur Actualiser, un navigateur tentera-t-il une nouvelle recherche DNS?
Supposons maintenant que le navigateur ait d'abord essayé de travailler avec ip2.
- Pour la demande de page suivante, le navigateur utilisera-t-il toujours ip2, ou il peut changer aléatoirement les ips?
- Pendant combien de temps les navigateurs conservent-ils les adresses IP dans leur cache?
- Lorsque les navigateurs envoient une nouvelle demande DNS et obtiennent les MÊMES ips, CONTINUERA-t-il à utiliser la même adresse IP connue, ou le processus recommence à zéro et il peut essayer l'une des deux?
Bien sûr, tout peut dépendre du navigateur et peut également varier entre les versions et les plates-formes, je serais heureux d'avoir le maximum de détails.
Le but de ceci - j'essaie de comprendre exactement ce que les utilisateurs connaîtront lorsque le DNS à tour de rôle est utilisé et que l'un des hôtes échoue.
S'il vous plaît, je ne demande pas à quel point l'équilibrage de la charge DNS est mauvais, et veuillez vous abstenir de répondre "ne le faites pas", "c'est une mauvaise idée", "vous avez besoin d'un battement de coeur / proxy / BGP / quoi que ce soit" et ainsi de suite.
la source
Réponses:
Après tout, je devais faire moi-même la "recherche". Voici le comportement de Chromium (version 12.0.742.112) (exécuté sur ubuntu 11.04):
En général, cela fonctionne ainsi: essayez le 1 er IP, une fois qu'il a expiré (après 189 secondes), essayez le 2 e IP. Aucun message d'erreur donné jusqu'à ce que tous les IPS aient essayé. La prochaine connexion recommencera à partir de la première IP (même si elle a échoué il y a une seconde et que la deuxième IP a fonctionné - le navigateur s'en fiche)
Une chose intéressante - la tentative de connexion TCP n'est pas abandonnée lorsque l'utilisateur clique sur annuler - c'est-à-dire lorsque j'appuie sur annuler, et après 60 secondes cliquez sur réessayer, la page s'affichera dans 130 secondes (189 à partir de la première tentative.) Mais si je clique sur annuler et sur rafraîchir après 190 secondes, le processus recommencera depuis le début.
Concernant les articles de la question d'origine:
Pas testé. Ce blog indique que Chrome met en cache DNS pendant un maximum de 1 minute, lorsque nous examinons chrome: // net-internals / # dns:
Capacité: 100 Durée de vie (ms) pour les entrées de réussite: 60000 Durée de vie (ms) pour les entrées d'échec: 0
Si la première IP fonctionne, le processus sera le même et il réussira toujours à la première tentative.
la source
Au lieu de dire aux gens ce que vous ne voulez pas, pourquoi ne pas expliquer ce que vous essayez de réaliser?
Si vous ne recherchez que des données connues, alors allez vous enquêter ou lisez la documentation du navigateur (il y en a des centaines) dont vous parlez.
Cependant, cela peut vous aider à savoir que cela n'a rien à voir avec le DNS.
Si un navigateur reçoit une demande, il regarde d'abord dans ses différents caches pour voir si l'URL, ou sinon l'URL puis le nom d'hôte, est déjà présente.
Sinon, il frappera le résolveur système pour résoudre le nom d'hôte.
Si l'IP qu'il récupère ne répond pas, il le mettra certainement en cache en interne en tant que résultat de recherche négative , donc demander directement à nouveau la même URL dans l'espoir d'atteindre un autre enregistrement A ne servira probablement à rien, car il ont stocké le résultat du nom d'hôte avec le résultat IP négatif.
Ou, vous savez, vous pourriez fournir plus d'informations.
EDIT: Je vois que vous avez fourni des informations entre tous les exigeants et smartassery.
Très bien:
Vous semblez également ne pas savoir que les enregistrements DNS sont mis en cache partout, en particulier sur les clients. Ces enregistrements expirent, en fonction de l'intention du propriétaire du domaine ou des caches entre vous et lui configurés. Une heure à un jour est courante, alors ne vous attendez pas à ce que le résolveur fasse une autre requête DNS si vous appuyez sur Actualiser comme un fou.
la source