Descubra qual servidor DNS respondeu sua consulta

4

Eu tenho uma pergunta aparentemente simples, mas não consegui encontrar a resposta exatamente para essa pergunta depois de alguma pesquisa:
Eu sei que, se eu quiser procurar o endereço IP de algum nome de domínio, eu digito, por exemplo:

nslookup google.de

e obtenha

Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   google.de
Address: 172.217.18.3

No entanto, não sei de onde recebi essa resposta. Tanto quanto eu sei em primeiro lugar o meu resolvedor tenta perguntar ao meu servidor DNS local (que está no Ubuntu dnsmasq) e se esse não tiver a resposta, ele pergunta ao próximo servidor e assim por diante. Mas eu quero saber qual servidor exato no final teve a resposta. Isso é possível?
Eu também tentei

dig +trace www.google.com

, que fornece todas as informações sobre os servidores emitidos, mas realiza uma pesquisa totalmente iterativa. Eu basicamente gostaria de uma resposta como essa, mas com uma pesquisa normal.

    
por Staki42 25.06.2017 / 21:52

3 respostas

3

I want to know what exact server in the end had the answer. Is that possible?

Isso não é alcançável. Você não encontrará o específico servidor autoritativo que foi consultado nomeado em qualquer lugar na carga útil de uma resposta do DNS. Existem consultas CHAOS que existem com a finalidade de identificar o servidor recursivo específico que respondeu a você, mas não equivalente para extrair o nome do servidor autoritativo exato do qual um recursor obteve os dados.

O QO & StackOverflow ao qual o Phillip está vinculado fornece instruções sobre como identificar a lista de NS registros que estavam presentes na seção de autoridade de uma resposta DNS recursiva. Esta é a lista completa de servidores, não o servidor específico . Mesmo que isso fosse suficiente para seus usos, essa informação é considerada opcional pelos padrões de DNS e é cada vez mais raro vê-la em respostas recursivas para reduzir o tamanho da carga útil dos ataques de reflexão gerados internamente.

Se você souber o nome da zona, poderá solicitar a lista completa de NS registros por meio de uma solicitação explícita para eles. Isso requer saber que você está no ápice da zona; uma solicitação para example.com NS registros retornará a resposta desejada, mas www.example.com não será, a menos que www tenha sido delegada a outro conjunto de servidores. Nesse caso, você não tem escolha a não ser trabalhar de forma repetitiva até descobrir o ápice da zona.

Para encurtar a história, não há nenhum caminho curto confiável (ou seja, consulta única) para obter informações sobre todas autoridades upstream de um servidor recursivo, e não há nenhuma maneira de Aprenda o servidor autoritativo específico que respondeu a uma consulta sem também controlar o servidor autoritativo e criar dados exclusivos em cada servidor. (se você fizer isso, crie uma zona exclusiva para essa finalidade para que ela não interfira em suas transferências de zona de produção mais sensíveis)

    
por 26.06.2017 / 23:21
4

Veja este link

em resumo, nslookup defina o tipo de consulta para SOA

linha única:

 nslookup -querytype=soa google.de
 nslookup -d2 -type=ANY google.de
 nslookup -d2 -type=ANY google.de 8.8.8.8

procure: servidor de nomes principal

command line> nslookup
> set querytype=soa
> google.de
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
google.de
    primary name server = ns2.google.com 
    responsible mail addr = dns-admin.google.com
    serial  = 160093636
    refresh = 900 (15 mins)
    retry   = 900 (15 mins)
    expire  = 1800 (30 mins)
    default TTL = 60 (1 min)

>

EDITAR:

Disseram-me que o registro SOA pode não ser o melhor método. Isso pode até não ser definido corretamente. Então, o registro de NS teria sido uma escolha melhor:

Onde está o nameserver server para o domínio ...

  nslookup  -type=NS google.de

Ou com muitas informações de depuração para encontrar o nameserver

  nslookup -d2 -type=NS google.de
    
por 26.06.2017 / 05:54
1

Quando você usa dig na resposta padrão, você terá o IP do servidor de nomes de resposta, que deve ser o servidor de nomes recursivo configurado em seu sistema ( /etc/resolv.conf normalmente).

    
por 27.06.2017 / 00:45