DNS hostname não resolve mais se um sub-hostname foi definido

2

Tenho dificuldade em entender um efeito específico na resolução de nomes de DNS para nomes de subdomínio que surgiram quando a ativação permite a criptografia.

O contexto da minha pergunta:

Eu tenho um domínio (basjes.nl) e defini todos os nomes de host nesse domínio para resolver o mesmo endereço IP.

Na interface do usuário do meu provedor de DNS (Transip), vejo algo assim:

@                      A      x.x.x.x
*                      CNAME  @

Agora posso fazer isso para obter o endereço IP especificado.

dig blurp.basjes.nl

Recentemente, implantei a ferramenta ACME-DNS e configurei as entradas de DNS apropriadas (por exemplo, delegate auth.basjes.nl para meu próprio servidor ACME-DNS) para permitir que o Lets Encrypt verifique se eu possuo o nome do host especificado via DNS.

Para este nome de host específico, eu quero ter um certificado HTTPS de 'nome completo' (ou seja, não o curinga), então eu adicionei algo assim:

_acme-challenge.blurp  CNAME  something.auth.basjes.nl.

Depois de adicionar essa entrada, descubro que fazer dig blurp.basjes.nl não funciona mais. O estranho é que eu não recebo um erro (então não há NXDOMAIN), eu não recebo nada ou apenas

;; AUTHORITY SECTION:
basjes.nl.      300 IN  SOA ns0.transip.net. hostmaster.transip.nl. 2018041107 14400 1800 2419200 300

Então, neste momento, eu tenho algo assim:

@                      A      x.x.x.x
*                      CNAME  @
_acme-challenge.blurp  CNAME  something.auth.basjes.nl.

Descobri que, se eu adicionar um registro DNS explícito para este nome de host, então, de repente, ele funciona novamente:

@                      A      x.x.x.x
*                      CNAME  @
blurp                  CNAME  @
_acme-challenge.blurp  CNAME  something.auth.basjes.nl.

Os efeitos que eu gostaria de entender:

  • Por que não resolve mais quando perguntando a um servidor DNS normal?

    O registro '*' ainda está presente!

    dig blurp.basjes.nl @1.1.1.1

  • Por que resolver ao perguntar diretamente ao servidor de SOA DNS da Transip?

    dig blurp.basjes.nl @ns0.transip.net

  • Por que resolve ao adicionar o registro explícito?

    Isso é o que eu uso atualmente como solução alternativa para que funcione para mim.

P.S. Entrei em contato com o suporte da Transip antes de postar esta pergunta. Eles não sabiam o que deu errado aqui e / ou porque isso acontece.

    
por Niels Basjes 12.04.2018 / 10:45

1 resposta

2

O DNS é hierárquico. Quando você adicionou o nome _acme-challenge.blurp.basjes.nl , isso significa que blurp.basjes.nl também foi implicitamente adicionado. O pouco aqui que pode ser surpreendente é que um nome pode existir sem ter qualquer conteúdo . Quando você usou dig para solicitar blurp.basjes.nl , obteve uma resposta correta e precisa: o nome existe, mas não contém registros. Este caso, onde existe um nome apenas porque existem outros nomes abaixo dele na árvore DNS, é chamado de não-terminal vazio . Você pode pesquisar no Google se quiser saber mais.

Essa é a primeira parte do seu comportamento confuso. A segunda parte é a seguinte: um registro curinga é usado para gerar uma resposta se e somente se o nome solicitado ainda não existir. Então, primeiro você pediu blurp.basjes.nl e obteve uma resposta gerada a partir do curinga. Então você adicionou _acme-challenge.blurp.basjes.nl . Quando você perguntou novamente depois disso, o nome blurp.basjes.nl existia (como descrito acima), portanto, o curinga não foi usado. Mas como blurp.basjes.nl não tinha registros, tudo que você recebeu foi uma resposta vazia. Depois disso, você adicionou um registro CNAME para blurp.basjes.nl , então, quando você perguntou mais uma vez, foi o que recebeu.

Isso esclarece as coisas?

    
por 12.04.2018 / 18:50