Como você nota, o DNS usa principalmente o UDP, mas o serviço também é fornecido pelo TCP (normalmente usado para grandes respostas e transferências de zona).
É por isso que você conseguiu estabelecer uma conexão em primeiro lugar quando tentou telnet
.
Sua conexão foi fechada porque você não estava interagindo com o serviço da maneira esperada, não porque telnet
usa TCP.
A diferença importante é que, ao contrário do HTTP e SMTP, que são protocolos de texto simples e fáceis de trabalhar diretamente, DNS é um protocolo binário .
Isso significa que você precisará de algum programa cliente DNS para interagir com servidores de nomes de qualquer maneira razoável.
dig
tem sido o padrão de fato para solução de problemas de DNS por um tempo muito longo, pois é muito bom em termos de construção de consultas e em termos de impressão bonita de todas as informações na resposta de maneira concisa.
(Parte da base de código do BIND e incluída na versão do Windows do ISC.)
drill
é outra alternativa com recursos semelhantes e essencialmente a mesma formatação de saída que dig
.
nslookup
é bem conhecido como existe desde o início dos tempos. Ele foi largamente abandonado, exceto no Windows e tem algumas peculiaridades indesejáveis e recursos limitados em comparação com as alternativas mencionadas anteriormente. A opção de depuração ( set debug
) torna útil a solução de problemas em uma situação difícil, pois melhora muito a integridade da saída, embora a formatação da saída de depuração deixe muito a desejar.