Acredito que a resposta mais fácil para a primeira pergunta é "Não, você tem" A "para isso", mas acidentalmente configurei algum subdomínio usando CNAME apontando para o endereço IP e funcionou em alguns computadores no meu escritório. Eu me pergunto como isso foi possível?
Agora, quando estou verificando em casa, tenho o seguinte erro:
beast:~ viroos$ host somesubdomain.somedomain.com
Host somesubdomain.somedomain.com not found: 3(NXDOMAIN)
Eu sou 100% do que costumava trabalhar no meu escritório (atualmente parece que não funciona, mas estou verificando em outra máquina). Portanto, não estou 100% se funcionou devido a alguma configuração de rede especial ou porque o testei logo após adicionar a entrada DNS.
Eu sei que essa história parece um pouco louca / incrivelmente, mas alguém pode me ajudar a resolver esse quebra-cabeça.
// edit: estou adicionando saída 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
fonte
dig
?Respostas:
Os dados em um
CNAME
registro sempre devem ter outro nome DNS - esse é o objetivo de aCNAME
.Como dito sucintamente pela RFC 1034, os dados em a
CNAME
devem ser:Enquanto isso, se você deseja apontar para um endereço IP, seu ticket é:
CNAME
foi projetado e implementado para ser um alias de DNS; não tem a concepção de ter um endereço IP nesse campo de dados. Como tal, é interpretado como um alias para outro nome DNS, conforme projetado; afinal, um endereço IP se ajusta à sintaxe de um nome DNS.Então, por exemplo, digamos que seus dados de DNS sejam:
O servidor DNS recursivo que você está consultando vê que o registro é a
CNAME
e calcula que você deseja os dados reais que ele contém. Nenhum registro diferente doCNAME
encontrado foi encontrado; portanto, não há resposta a ser dada ao cliente.Ele tenta consultar um registro para obter um nome de host
192
, dentro do domínio0.2.1
. Ele não possui nada armazenado em cache para esse nome, por isso solicita aos servidores raiz. Eles atendem a pedidos de TLDs como.com
e.net
, mas esse é um pedido.1
. Eles prontamente respondem que não existe, e é isso que o recursor envia a você.A resposta que você vê
dig
é o seu servidor de nomes recursivo dizendo: "bem, o nome que você procurou apontou para outro lugar e que não existia - pergunte ao servidor raiz se você não acredita em mim".Portanto, sim,
CNAME
nunca é válido inserir um endereço IP em um registro, e suspeito que os sistemas que estão funcionando estejam funcionando corretamente através de algum outro mecanismo, como um arquivo host ou resolução de nomes local - investigem o comportamento da resolução de nomes.fonte
cname é um nome canônico, que é apenas um alias de outro nome, que geralmente é o registro A ou outro cname, etc. Se você configurar o cname para apontar para um IP, será apenas um alias desse IP. Eu não acho que seu servidor DNS verifique se o destino é legítimo ou não, porque o RFC padrão não diz realmente qual é o formato / validação de dados para o destino de cname. Esse não é um uso usual, mas se estiver funcionando para você, está funcionando. O fato de que às vezes não está funcionando deve ser suficiente para você usar o que é convencionalmente usado, eu acho.
fonte
Você pode ter:
onde 1.2.3.4 é um endereço IP de trabalho. Observe o ponto final no CNAME. O fato de algumas máquinas em seu escritório funcionarem com isso, enquanto outras não me levam a acreditar que aquelas que possuem o subdomínio definido no arquivo
lmhosts
ou/etc/hosts
.fonte
4
?host -a
consulta QUALQUER (por exemplo ).