Está definindo um registro de DNS A vazio / em branco permitido?

5

Estou tentando envolver meu mundo maravilhoso no DNS.

Eu criei um arquivo de zona para example.com que contém:

@     A    1.2.3.4
*     A    1.2.3.4

No entanto, também estou configurando meu DNS local, local.example.com, que criei um arquivo de zona separado para conter o seguinte:

machine1     A    192.168.0.1
machine2     A    192.168.0.2

Quando cavo machine1.local.example.com, ele retorna um registro 192.168.0.1, ótimo.

Infelizmente, badmachine.local.example.com retorna 1.2.3.4, assim como local.example.com.

Não tenho certeza da melhor maneira de evitar isso. Se eu adicionar o seguinte ao local.example.com, os registros A vazios serão retornados para os 2 exemplos acima, assim como o comportamento que desejo:

@     A
*     A

Eu quero que anything.example.com use o caractere curinga, EXCETO qualquer coisa no subdomínio local.example.com, a qual eu não queira dar uma resposta, a menos que seja especificado. Essencialmente eu preciso de um curinga com uma exclusão.

Isso é permitido? Esta é a melhor prática, ou estou fazendo coisas terrivelmente erradas? Estou usando o PowerDNS com backend do BIND.

Obrigado por seus pensamentos!

    
por John 21.12.2010 / 16:55

4 respostas

4

Em primeiro lugar, seu comentário para Chris S acima esclarece (na verdade, modifica) sua pergunta original consideravelmente, e espero que você me perdoe em editá-la em sua pergunta original.

Em segundo lugar, registros nulos não são permitidos, como outros notaram.

Em terceiro lugar, acho que a maneira de fazer o que você quer é declarar local.example.com como um subdomínio adequado:

local                       IN      NS      ns1.example.com
local                       IN      NS      ns2.example.com

listando os mesmos dois servidores de nomes que você executa atualmente para example.com ( nota: eu não sei PowerDNS, então minhas entradas acima estão no formato BIND ). Então, nesses servidores de nomes (que eu presumo que seja este servidor de nomes), você declara um arquivo de zona para local.example.com, que contém apenas os hosts que você deseja resolver e nenhum registro curinga.

Assim, quando as pessoas procurarem foo.example.com , supondo que não estejam listadas, elas corresponderão ao registro curinga existente e retornarão 1.2.3.4 (ou qualquer outra coisa). Mas quando as pessoas olham para cima foo.local.example.com , os registros do servidor de nomes para local.example.com serão retornados e uma nova recursão ocorrerá, com seu servidor de nomes olhando agora para o arquivo de zona para local.example.com e dizendo (na ausência de um registro específico para foo e um curinga em local.example.com) "não, não existe tal registro".

    
por 21.12.2010 / 17:40
1

Seria útil saber exatamente quais respostas você está seguindo. As duas primeiras linhas citadas em sua pergunta definem a resposta padrão para o domínio e também a resposta de registro sem correspondência. Por exemplo, o example.com será atendido pelo registro "@", e qualquer coisa que o-doesnt-exist.exmaple.com será atendida pelo registro "*". Eles não são necessários, você pode se livrar de ambos. Configurá-los para valores em branco é uma configuração inválida (na maioria dos sistemas).

    
por 21.12.2010 / 17:02
1

Não consigo pensar em uma maneira de "anular" uma entrada. Os registros A vazios não são permitidos.

Talvez *.example.com A 1.2.3.4 impediria a substituição das entradas .local.example.com? Parece que o PowerDNS está se comportando mal das especificações. Ter o domínio local.example.com definido deve impedir que o curinga pise em qualquer coisa nesse domínio. Você pode postar arquivos de zona completa? Isso resolveria uma série de pequenas perguntas.

    
por 21.12.2010 / 17:22
1

Você deve observar o comportamento específico do servidor que está executando, porque esse recurso não foi implementado de forma consistente:

To quote from RFC 4592, many DNS implementations diverge, in different ways, from the original definition of wildcards.

Wildcards na prática

O que você deseja que a entrada curinga faça é correto, como eu entendo a definição do uso de curinga (melhor pensar nisso como um valor padrão de último recurso). Vou tentar encontrar tempo para ler o esclarecedor RFC e atualizar aqui ...

    
por 23.12.2010 / 10:37