ping
diz-me que não pode resolver algum nome de host ("ping: host desconhecido domain.company.local") em uma URL, mas quando eu uso host
ou nslookup
no mesmo computador na linha de comando, as resoluções funcionam bem (ou seja, é rápido e confiável )
O que poderia estar causando isso?
Mais testes: Firefox wget
e ping
tem o mesmo problema. O ping do endereço IP funciona.
Sistema operacional: Linux (Ubuntu 13.04)
EDITAR Minhas /etc/resolv.conf
leituras:
nameserver 127.0.1.1
search domain.company.local
netstat
relatórios:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
então algo está sendo executado nessa porta ( nslookup
também relata que é usado 127.0.1.1
como servidor DNS).
Não há /etc/*inetd.conf
, então não tenho certeza de qual aplicativo atende a essa porta.
Parece que dnsmasq
é usado:
/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces
--pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1
--conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec
--enable-dbus=org.freedesktop.NetworkManager.dnsmasq
--conf-dir=/etc/NetworkManager/dnsmasq.d
Todos os arquivos e pastas de configuração estão vazios. Desde nslookup
diz que usa 127.0.1.1#53
meu palpite é que dnsmasq
funciona mesmo sem uma configuração. Mas como ele sabe qual DNS pai consultar?
EDIT2 Desativar dnsmasq
como sugerido por harrymc não ajudou. Então eu corri, o strace ping
que me deu uma saída estranha (apenas as partes interessantes):
open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4
read(4, "127.0.0.1\tlocalhost\n#127.0.1.1\ta"..., 4096) = 613
...
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\f\0\0\0\0\0\0"..., 832) = 832
...
mmap(NULL, 2105560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f7829b00000
...
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fstat(4, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f782a4f8000
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "RESOLVE-HOSTNAME-IPV4 domain.com"..., 44) = 44
read(4, "-15 Timeout reached\n", 4096) = 20
Então ping
parece /etc/hosts
que faz sentido. Em seguida, carrega mmap()
es /lib/libnss_mdns4_minimal.so.2
que também faz sentido.
Mas então ele fala com avahi !?
O que me levou a esta postagem no fórum: o ping não faz uma solicitação de DNS .
Meu /etc/nsswitch.conf
também contém esta linha:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Se eu for ping
um endereço de trabalho, vejo que o processo também é carregado, /lib/libnss_mdns4_minimal.so.2
mas faz uma consulta DNS via porta 53.
Então, meu palpite é que agora, de /lib/libnss_mdns4_minimal.so.2
alguma forma, está percebendo que o endereço IP termina com .local
e não com .com
e então o [NOTFOUND=return]
é acionado.
Como faço para corrigir isso?
wget
.
nslookup
ou host
pode resolver o nome e qualquer outra coisa no sistema não pode.
/etc/NetworkManager/NetworkManager.conf
e comente a dns=dnsmasq
linha (coloque um # na frente) e faça a sudo restart network-manager
. Isso desativará o resolvedor local. ( fonte )
/etc/resolv.conf
?