Existe uma maneira de fazer dig digerir o servidor de nomes real em vez de 127.0.0.1? [duplicado]

2

Com o resolvconf, dig mostra sempre o endereço de loopback. Existe alguma maneira de ver qual servidor está realmente respondendo?

    
por Bryan Agee 25.08.2012 / 01:35

2 respostas

3

Essa linha de escavação simplesmente diz a você onde a escavação escolheu a resposta, não sua fonte principal.

No seu sistema, supondo que seja o Ubuntu 12.04 ou posterior Desktop e você não desabilitou o servidor de nomes local, o dnsmasq está escutando no endereço de loopback, porta 53. O Dnsmasq é um servidor de nomes leve que usa outros servidores de nomes para resolver nomes. / p>

Para ver o servidor usado, digite o seguinte:

 fgrep dnsmasq /var/log/syslog* | fgrep using | fgrep -v 127.0.0.1

ou use a ótima sugestão do aking1012:

nmcli -f IP4 dev list | grep DNS

No meu caso, esse é meu roteador / modem, também executando um servidor leve, obtido do servidor DHCP do meu roteador / modem. Eu teria que assinar o roteador e usar um método específico do roteador para descobrir qual servidor dns ele usa. (Ele é configurado pelo meu provedor para encaminhar para o servidor de nomes de domínio).

Você pode, com certeza, substituir o servidor de nomes de domínio que seu sistema usa com o NetworkManager ou, se você usar o ifup em vez do NetworkManager, no arquivo de configuração do ifup / etc / network / interfaces.

Supondo que a solicitação seja encaminhada ao seu ISP, o servidor de nomes do ISP pode fazer uma pesquisa recursiva para determinar as respostas ou, menos provavelmente, encaminhar uma solicitação recursiva ainda mais. Essa cadeia de solicitações recursivas continua até que um servidor de nome de domínio seja alcançado, que esteja disposto e seja capaz de fazer a pesquisa recursiva completa. Ele termina, talvez prematuramente, se não houver nenhum servidor de nome de domínio completo antes de você chegar a um que esteja disposto a responder a solicitações recursivas. A maioria dos servidores de nomes de domínio não os fará por você, mas um ISP os fará pelos seus clientes e os servidores de nomes de domínio corporativos os farão pelos seus domínios. Você pode instalar um no Ubuntu. O serviço de nome de domínio aberto 8.8.8.8 do Google também.

Para qualquer endereço específico que eu digite, eu posso obter a resposta do dnsmasq se ele tiver a resposta em seu cache, do meu roteador / modem, se tiver a resposta em seu cache, ou do ISP ou além.

Como o aking1012, eu não acho que você possa rastrear as respostas que o dig digita.

Se você quiser saber de onde essas informações podem vir, você pode querer saber onde a fonte da informação de autoridade é mantida para um domínio.

Como exemplo:

dig @8.8.8.8 -t soa bing.com

Retorna:

; <<>> DiG 9.8.1-P1 <<>> @8.8.8.8 -t soa bing.com    
; (1 server found)    
;; global options: +cmd    
;; Got answer:    
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59757    
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0    

;; QUESTION SECTION:
;bing.com.          IN  SOA    

;; ANSWER SECTION:    
bing.com.       43199   IN  SOA ns1.msft.net. msnhst.microsoft.com. 2012081301 1800 900 2419200 3600    

;; Query time: 155 msec    
;; SERVER: 8.8.8.8#53(8.8.8.8)    
;; WHEN: Sat Aug 25 01:10:26 2012    
;; MSG SIZE  rcvd: 91      

Portanto, a fonte oficial de informações sobre o domínio bing.com pode vir de ns1.msft.net ou msnhst.microsoft.com.

Você também pode rastrear informações usando o algoritmo recursivo que um servidor de nome de domínio completo faz:

dig @8.8.8.8 -t ns "."

retorna:

; ANSWER SECTION:    
.           20616   IN  NS  h.root-servers.net.    
.           20616   IN  NS  m.root-servers.net.    
.           20616   IN  NS  j.root-servers.net.    
.           20616   IN  NS  f.root-servers.net.    
.           20616   IN  NS  a.root-servers.net.    
.           20616   IN  NS  k.root-servers.net.    
.           20616   IN  NS  l.root-servers.net.    
.           20616   IN  NS  i.root-servers.net.    
.           20616   IN  NS  b.root-servers.net.    
.           20616   IN  NS  d.root-servers.net.    
.           20616   IN  NS  g.root-servers.net.    
.           20616   IN  NS  e.root-servers.net.    
.           20616   IN  NS  c.root-servers.net. 

servidores de nome de domínio completos são configurados com o endereço de pelo menos um servidor raiz.

 dig @c.root-servers.net. -t ns "com"

retorna:

; SECÇÃO DE AUTORIDADE:
co

m.          172800  IN  NS  a.gtld-servers.net.    
com.            172800  IN  NS  b.gtld-servers.net.    
com.            172800  IN  NS  k.gtld-servers.net.    
com.            172800  IN  NS  d.gtld-servers.net.    
com.            172800  IN  NS  j.gtld-servers.net.    
com.            172800  IN  NS  h.gtld-servers.net.    
com.            172800  IN  NS  f.gtld-servers.net.    
com.            172800  IN  NS  c.gtld-servers.net.    
com.            172800  IN  NS  m.gtld-servers.net.    
com.            172800  IN  NS  l.gtld-servers.net.    
com.            172800  IN  NS  g.gtld-servers.net.    
com.            172800  IN  NS  e.gtld-servers.net.    
com.            172800  IN  NS  i.gtld-servers.net.    

;; ADDITIONAL SECTION:    
a.gtld-servers.net. 172800  IN  A   192.5.6.30    
a.gtld-servers.net. 172800  IN  AAAA    2001:503:a83e::2:30    
b.gtld-servers.net. 172800  IN  A   192.33.14.30    
b.gtld-servers.net. 172800  IN  AAAA    2001:503:231d::2:30    
c.gtld-servers.net. 172800  IN  A   192.26.92.30    
d.gtld-servers.net. 172800  IN  A   192.31.80.30    
e.gtld-servers.net. 172800  IN  A   192.12.94.30    
f.gtld-servers.net. 172800  IN  A   192.35.51.30    
g.gtld-servers.net. 172800  IN  A   192.42.93.30    
h.gtld-servers.net. 172800  IN  A   192.54.112.30    
i.gtld-servers.net. 172800  IN  A   192.43.172.30    
j.gtld-servers.net. 172800  IN  A   192.48.79.30    
k.gtld-servers.net. 172800  IN  A   192.52.178.30    
l.gtld-servers.net. 172800  IN  A   192.41.162.30    
m.gtld-servers.net. 172800  IN  A   192.55.83.30    


dig @k.gtld-servers.net -t ns "google.com"

retorna

;; AUTHORITY SECTION:
google.com.     172800  IN  NS  ns2.google.com.    
google.com.     172800  IN  NS  ns1.google.com.    
google.com.     172800  IN  NS  ns3.google.com.    
google.com.     172800  IN  NS  ns4.google.com.    

;; ADDITIONAL SECTION:    
ns2.google.com.     172800  IN  A   216.239.34.10    
ns1.google.com.     172800  IN  A   216.239.32.10    
ns3.google.com.     172800  IN  A   216.239.36.10    
ns4.google.com.     172800  IN  A   216.239.38.10    

e

    dig @ns1.google.com -t a www.google.com

;; ANSWER SECTION:    
www.google.com.     604800  IN  CNAME   www.l.google.com.    
www.l.google.com.   300 IN  A   74.125.225.209    
www.l.google.com.   300 IN  A   74.125.225.208    
www.l.google.com.   300 IN  A   74.125.225.210    
www.l.google.com.   300 IN  A   74.125.225.212    
www.l.google.com.   300 IN  A   74.125.225.211    

A seção Informações Adicionais fornece as dicas de endereço do serviço de nome de domínio para que ele possa localizar facilmente os servidores de nomes.

o registro CNAME diz que o nome canônico para o alias www.google.com é www.l.google.com.

É claro que sites como google.com e msft.com fazem todo tipo de coisa para distribuir consultas a vários computadores.

    
por John S Gruber 25.08.2012 / 07:47
3

Não que eu saiba.

Você poderia usar: nmcli dev list iface *insert outbound interface name here* | grep IP4 | grep DNS como foi sugerido aqui .

Funciona para mim.

Uma chamada de limpeza que não depende da digitação do nome da interface é:
nmcli -f IP4 dev list | grep DNS

    
por RobotHumans 25.08.2012 / 01:53