Je crois que la réponse la plus simple à la première question est "Non, vous avez" A "pour cela", mais j'ai accidentellement configuré un sous-domaine en utilisant CNAME pointant vers l'adresse IP et cela a fonctionné sur quelques ordinateurs dans mon bureau. Je me demande comment c'était possible?
Maintenant, quand je le vérifie de chez moi, j'ai l'erreur suivante:
beast:~ viroos$ host somesubdomain.somedomain.com
Host somesubdomain.somedomain.com not found: 3(NXDOMAIN)
Je suis à 100%, il travaillait à mon bureau (actuellement, il ne semble pas, mais je le vérifie sur une machine différente). Par conséquent, je ne suis pas à 100% si cela a fonctionné en raison d'une configuration réseau spéciale ou parce que je l'ai testé juste après avoir ajouté une entrée DNS.
Je sais que cette histoire sonne, un peu folle / incroyablement, mais quelqu'un peut-il m'aider à résoudre ce puzzle.
// edit: j'ajoute une sortie dig
; <<>> DiG 9.6-ESV-R4-P3 <<>> somesubdomain.somedomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60224
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;somesubdomain.somedomain.com. IN A
;; ANSWER SECTION:
somesubdomain.somedomain.com. 67 IN CNAME xxx.xxx.xxx.xx1.
;; AUTHORITY SECTION:
. 1800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012040901 1800 900 604800 86400
;; Query time: 72 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 10 00:11:01 2012
;; MSG SIZE rcvd: 136
la source
dig
?Réponses:
Les données sur un
CNAME
enregistrement doivent toujours être un autre nom DNS - c'est tout l'intérêt d'unCNAME
.Comme le dit succinctement la RFC 1034, les données dans a
CNAME
doivent être:Alors que si vous cherchez à pointer vers une adresse IP, votre ticket est:
CNAME
est conçu et implémenté pour être un alias DNS; il n'a aucune idée d'avoir une adresse IP dans ce champ de données. En tant que tel, il est interprété comme un alias vers un autre nom DNS, tel que conçu; après tout, une adresse IP correspond à la syntaxe d'un nom DNS.Donc, par exemple, disons que vos données DNS sont:
Le serveur DNS récursif que vous interrogez voit que l'enregistrement est un
CNAME
, et pense que vous voudrez les données réelles qu'il contient. Aucun dossier autre que leCNAME
n'a été trouvé, il n'y a donc pas de réponse à donner au client.Il essaie d'interroger un enregistrement pour un nom d'hôte
192
, dans le domaine0.2.1
. Il n'a rien mis en cache pour ce nom, il demande donc aux serveurs racine. Ils servent des demandes de TLD comme.com
et.net
, mais cette demande est une demande de.1
. Ils répondent rapidement qu'il n'y en a pas, et c'est ce que le récurseur vous envoie.La réponse que vous voyez
dig
est que votre serveur de noms récursif dit: "Eh bien, le nom que vous avez cherché pointait ailleurs et que quelque part n'existait pas - demandez au serveur racine si vous ne me croyez pas".Donc, oui, mettre une adresse IP dans un
CNAME
enregistrement n'est jamais valide, et je soupçonne que les systèmes qui fonctionnent fonctionnent correctement via un autre mécanisme, comme un fichier d'hôtes ou une résolution de nom locale - étudiez leur comportement de résolution de nom.la source
cname est un nom canonique, qui est juste un alias d'un autre nom, qui est généralement l'enregistrement A ou un autre cname, etc. Si vous configurez cname pour pointer vers une IP, alors c'est juste un alias de cette IP. Je ne pense pas que votre serveur DNS vérifie si la cible est légitime ou non, car le RFC standard ne dit pas vraiment quel est le format / validation des données pour la cible de cname. Ce n'est pas une utilisation habituelle, mais si cela fonctionne pour vous, alors cela fonctionne. Le fait que cela ne fonctionne pas parfois devrait être suffisant pour que vous puissiez utiliser ce qu'il est conventionnellement utilisé, je pense.
la source
Vous pouvez avoir:
où 1.2.3.4 est une adresse IP fonctionnelle. Notez cependant le point de fin dans le CNAME. Le fait que certaines machines de votre bureau fonctionnent avec cela, tandis que d'autres ne m'amène pas à croire que celles qui ont le sous-domaine défini dans le fichier
lmhosts
ou/etc/hosts
.la source
4
?host -a
requête (par exemple ).