No data center da universidade onde trabalho, temos um sistema DNS, que utilizamos para registrar os nomes dos nossos servidores e os endereços dos serviços que são destinados apenas para uso interno.
Normalmente, usamos o seguinte padrão:
server A xxx.xxx.xxx.xxx
service CNAME server
Agora temos um serviço que queremos resolver apenas para o registro CNAME, ao acessar via HTTP, e não para o registro A.
Isso é possível usando apenas a configuração DNS?
Responder1
Para alguns protocolos (como http), você pode configurar o serviço para responder apenas se o cliente especificar o nome correto; neste cenário, você configuraria o servidor web para responder apenas a solicitações http contendo o CNAME. Com base nos comentários, você já sabe como fazer isso.
Existem também protocolos em que o servidor ignora o nome que o cliente está utilizando, caso em que não há como impedir que o usuário utilize o nome no registro A.
Não acredito que você possa fazer isso na camada DNS. Ou seja, não existe uma maneira confiável de fazer um CNAME que seja visível para seus clientes e que resolva para o endereço IP desejado, sem que haja um registro A correspondente que também seja visível para seus clientes.
O que vocêpodefazer (dependendo de qual software DNS você está usando, eu acho) é ter dois registros A, ambos apontando para o mesmo endereço IP, ou seja,
server A xxx.xxx.xxx.xxx
service A xxx.xxx.xxx.xxx
e, em seguida, torne o server
registro visível apenas para a equipe administrativa que precisa acessá-lo. Você nãoterpara usar um CNAME para nomes de serviço. O único problema é que é sua responsabilidade garantir que os endereços IP dos dois nomes sempre correspondam.
Responder2
Sim é possivel. Na verdade, esse é o primeiro passo para resolver tudo de qualquer maneira.
Porém, para realmente fazer isso, você (normalmente) precisará ignorar os métodos de resolução de DNS local do seu sistema operacional, já que eles (normalmente, novamente) não podem parar no registro CNAME e não resolver mais. Não conheço nenhuma biblioteca de resolução de DNS que permita fazer isso, mas conheço uma ferramenta padrão que permite, dig
o comando do BIND não seguirá os registros CNAME se você solicitar explicitamente um CNAME
tipo de consulta (ou um ANY
tipo de consulta, embora quepoderiaretornar registros A ou AAAA também dependendo do servidor DNS).