Por que meu arquivo / etc / hosts não é consultado quando o nslookup tenta resolver um endereço?

9

Eu tenho um par de domínios locais resolvidos para 127.0.0.1 no meu arquivo /etc/hosts . E ficou tudo bem por um período de tempo, mas agora quando eu corro:

nslookup test.local

Isso resulta em:

Server:     192.168.1.3
Address:    192.168.1.3#53

** server can't find test.local: NXDOMAIN

O 192.168.1.3 é o DNS da nossa rede e não deve saber meu domínio local test.local . Depois de algumas pesquisas, descobri que o arquivo /etc/nsswitch.conf contém informações sobre a prioridade das fontes de DNS a serem consultadas. Mas não houve problema lá! Aqui está o meu:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the 'glibc-doc-reference' and 'info' packages installed, try:
# 'info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Alguém sabe por que meu arquivo hosts não está incluído na pesquisa de DNS?

    
por Mehran 25.05.2015 / 09:08

3 respostas

12

nslookup apenas corresponde à resolução de DNS, que é significativamente diferente do Interruptor de serviço de nomes nslookup ignora /etc/hosts e mDNS.

Para testar resoluções locais como essa, use algo que use o NSS. ping <hostname> por exemplo. Aqui está uma demonstração simples com base em uma entrada /etc/hosts na minha rede.

$ nslookup bert
Server:     8.8.8.8
Address:    8.8.8.8#53

** server can't find bert: NXDOMAIN

$ ping bert
PING bert (10.10.0.4) 56(84) bytes of data.
64 bytes from bert (10.10.0.4): icmp_seq=1 ttl=64 time=0.352 ms
64 bytes from bert (10.10.0.4): icmp_seq=2 ttl=64 time=0.407 ms

Observe que há servidores DNS e proxies que podem incluir um arquivo /etc/hosts . Nesses casos, nslookup pode retornar um resultado de uma fonte local.

    
por Oli 25.05.2015 / 09:14
2

Eu acho que você quer a resolução de nome do arquivo /etc/hosts para o host específico (mysite.com).

Outro problema comum que pode causar esse comportamento é que você pode ter muitas entradas no arquivo /etc/hosts para o mesmo IP, por exemplo:

1.1.1.1 host1.domain1.com
1.1.1.1 host2.domain2.com

Em algumas implementações, isso pode fazer com que a resolução de nomes seja entregue ao DNS. Uma solução rápida, agrupe tudo em uma linha

1.1.1.1 host1.domain1.com host2.domain2.com
    
por afe038 11.11.2016 / 11:49
1

Outra coisa comum que vejo é onde alguém (geralmente eu) inverte o endereço IP com o nome do host em /etc/hosts - por exemplo:

mysite.com    10.2.3.4

À primeira vista, parece normal ... Aqui está a minha solução em cerca de 50% do tempo:

10.2.3.4    mysite.com
    
por KLaw 15.07.2016 / 16:50

Tags