J'ai un enregistrement DNS avec trois enregistrements A
: le site principal et deux sauvegardes. Toutefois, lorsque les clients effectuent une recherche DNS, ils atteignent un site de sauvegarde.
Comment puis-je modifier l'ordre des enregistrements DNS dans dot.tk's
serveur DNS?
Vous abordez une "fonctionnalité" du DNS appelée DNS Round Robin. C'est délibéré. Vous n'avez aucun contrôle sur l'ordre dans lequel les enregistrements qui satisfont une requête particulière sont fournis.
http://en.wikipedia.org/wiki/Round-robin_DNS
C'est brutal; mais étonnamment efficace comme équilibreur de charge.
Si, en fait, les machines "de sauvegarde" ne doivent pas être touchées sauf en cas d'échec de la machine principale, vous devez être plus sophistiqué avec vos fichiers de zone. Vous pouvez modifier le TTL (période de vie) de l'enregistrement A en un petit nombre (par exemple 60 secondes), puis configurer un script pour modifier cet enregistrement via RFC 2136 à tout moment. échouer.
Si vous avez 3 enregistrements A contenant 3 réponses différentes, vous êtes censé obtenir une distribution approximative égale entre les 3 (on peut aussi supposer que M $ DNS va tout gâcher, mais je ne sais pas vraiment ...)
Les enregistrements de ressources qui existent pour une combinaison spécifique de nom, classe et type forment ce qu'on appelle un ensemble d'enregistrements de ressources ( RRSet ). Comme ce terme l'indique (en tant que ensemble ), il n'y a pas d'ordre défini pour ces enregistrements.
Même si vous aviez les serveurs de noms faisant autorité pour votre zone, le seul point où vous avez un contrôle réel, répondant aux enregistrements dans un ordre déterminé de votre choix, il est toujours tout à fait possible (et même commun) qu'un serveur résolveur les réorganise avant. transmettre la réponse au client et même si la réponse parvient dans l'ordre souhaité au client hôte, la bibliothèque de résolveur peut également réorganiser le résultat .
A titre d'exemple, regardez ces requêtes émises en séquence directe vers un serveur de résolution de mise en cache:
$ Dig @127.0.0.1 www.google.com +noall +answer
; <<>> Dig 9.9.4-P2-RedHat-9.9.4-15.P2.fc20 <<>> @127.0.0.1 www.google.com +noall +answer
; (1 server found)
;; global options: +cmd
www.google.com. 275 IN A 173.194.71.106
www.google.com. 275 IN A 173.194.71.147
www.google.com. 275 IN A 173.194.71.104
www.google.com. 275 IN A 173.194.71.105
www.google.com. 275 IN A 173.194.71.99
www.google.com. 275 IN A 173.194.71.103
$ Dig @127.0.0.1 www.google.com +noall +answer
; <<>> Dig 9.9.4-P2-RedHat-9.9.4-15.P2.fc20 <<>> @127.0.0.1 www.google.com +noall +answer
; (1 server found)
;; global options: +cmd
www.google.com. 274 IN A 173.194.71.103
www.google.com. 274 IN A 173.194.71.147
www.google.com. 274 IN A 173.194.71.99
www.google.com. 274 IN A 173.194.71.106
www.google.com. 274 IN A 173.194.71.105
www.google.com. 274 IN A 173.194.71.104
$
D'après ce que vous essayez de réaliser, je ne pense pas que l'ajout de plusieurs enregistrements A
fait partie de la solution. Au mieux, il vous donnera une forme grossière d'équilibrage de charge, mais jamais de basculement fiable.
Si vous exécutez votre propre serveur de noms à l'aide de BIND, cette option est configurée avec le paramètre rrset-order
rrset-order définit l'ordre dans lequel plusieurs enregistrements du même type sont renvoyés.
Il y a trois options,
fixed - records are returned in the order they are defined in the zone file
random - records are returned in a random order
cyclic - records are returned in a round-robin fashion
Voir les détails ici, http://www.zytrax.com/books/dns/ch7/queries.html#rrset-order