Creo que la respuesta más fácil para la primera pregunta es "No, tienes" A "para esto", pero accidentalmente configuré algún subdominio usando CNAME apuntando a la dirección IP y funcionó en algunas computadoras de mi oficina. Me pregunto cómo fue posible.
Ahora, cuando lo reviso desde casa, tengo el siguiente error:
beast:~ viroos$ host somesubdomain.somedomain.com
Host somesubdomain.somedomain.com not found: 3(NXDOMAIN)
Estoy 100% acostumbrado a trabajar en mi oficina (actualmente parece que no, pero lo estoy revisando en una máquina diferente). Por lo tanto, no estoy al 100% si funcionó debido a alguna configuración de red especial o porque lo probé justo después de agregar la entrada DNS.
Sé que esta historia suena un poco loca / increíble, pero ¿alguien puede ayudarme a resolver este rompecabezas?
// edit: estoy agregando salida de excavación
; <<>> 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
domain-name-system
Maciek Sawicki
fuente
fuente
dig
?Respuestas:
Los datos en un
CNAME
registro siempre deben ser otro nombre de DNS, ese es el objetivo de aCNAME
.Como se describe de manera sucinta en RFC 1034, los datos en a
CNAME
deberían ser:Si bien, si está buscando apuntar a una dirección IP, su ticket es:
CNAME
está diseñado e implementado para ser un alias de DNS; no tiene idea de tener una dirección IP en ese campo de datos. Como tal, se interpreta como un alias a otro nombre DNS, según lo diseñado; después de todo, una dirección IP se ajusta a la sintaxis de un nombre DNS.Entonces, por ejemplo, digamos que sus datos DNS son:
El servidor DNS recursivo que está consultando ve que el registro es un
CNAME
, y calcula que querrá los datos reales que contiene. NoCNAME
se ha encontrado ningún otro registro que no sea el , por lo que no hay respuesta para darle al cliente.Intenta consultar un registro para un nombre de host
192
, dentro del dominio0.2.1
. No tiene nada en caché para ese nombre, por lo que pregunta a los servidores raíz. Sirven solicitudes de TLD como.com
y.net
, pero esta solicitud es una solicitud.1
. Responden de inmediato que no existe, y eso es lo que el recurrente le envía.La respuesta que está viendo
dig
es que su servidor de nombres recursivo dice: "bueno, el nombre que buscaba apuntaba a otro lado, y ese lugar no existía; pregúntele al servidor raíz si no me cree".Entonces, sí, poner una dirección IP en un
CNAME
registro nunca es válido, y sospecho que los sistemas que funcionan funcionan correctamente a través de algún otro mecanismo, como un archivo de hosts o una resolución de nombre local: investigue su comportamiento de resolución de nombre.fuente
cname es un nombre canónico, que es solo un alias de otro nombre, que generalmente es el registro A u otro cname, etc. Si configura cname para que apunte a una IP, entonces es solo un alias de esa IP. No creo que su servidor DNS verifique si el objetivo es legítimo o no, porque el RFC estándar realmente no dice cuál es el formato / validación de datos para el objetivo de cname. Este no es un uso habitual, pero si está funcionando para usted, entonces está funcionando. Creo que el hecho de que no funcione a veces debería ser suficiente para usar lo que se usa convencionalmente.
fuente
Tu puedes tener:
donde 1.2.3.4 es una dirección IP que funciona. Sin embargo, observe el punto final en el CNAME. El hecho de que algunas máquinas en su oficina funcionen con esto, mientras que otras no me hacen creer que las que tienen el subdominio establecido en el archivo
lmhosts
o/etc/hosts
.fuente
4
?host -a
) consulta.