ping
me dice que no puede resolver algún nombre de host ("ping: host desconocido domain.company.local") en una URL, pero cuando uso host
o nslookup
en la misma computadora en la línea de comando, las resoluciones funcionan bien (es decir, es rápido y confiable )
¿Qué podría estar causando esto?
Más pruebas: Firefox, wget
y ping
tienen el mismo problema. Hacer ping a la dirección IP funciona.
SO: Linux (Ubuntu 13.04)
EDITAR Mis /etc/resolv.conf
lecturas:
nameserver 127.0.1.1
search domain.company.local
netstat
informes:
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 -
entonces algo se está ejecutando en este puerto ( nslookup
también informa que se usa 127.0.1.1
como servidor DNS).
No hay /etc/*inetd.conf
, así que no estoy seguro de qué aplicación sirve este puerto.
Parece que dnsmasq
se usa:
/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 los archivos y carpetas de configuración están vacíos. Como nslookup
dice que usa 127.0.1.1#53
mi conjetura es que dnsmasq
funciona incluso sin una configuración. Pero, ¿cómo sabe qué DNS primario consultar?
EDIT2 Desactivar dnsmasq
como lo sugiere harrymc no ayudó. Así que corrí, lo strace ping
que me dio esta salida extraña (solo las partes interesantes):
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
Así se ping
ve en lo /etc/hosts
que tiene sentido. Luego se carga y mmap()
s, lo /lib/libnss_mdns4_minimal.so.2
que tiene sentido también.
¿Pero entonces habla con avahi?
Lo que me llevó a esta publicación en el foro: ping no realiza una solicitud de DNS .
Mi /etc/nsswitch.conf
también contiene esta línea:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Si tengo ping
una dirección de trabajo, veo que el proceso también se carga, /lib/libnss_mdns4_minimal.so.2
pero luego realiza una consulta DNS a través del puerto 53.
Entonces, supongo que ahora /lib/libnss_mdns4_minimal.so.2
es de alguna manera notar que la dirección IP termina con .local
y no con .com
y luego [NOTFOUND=return]
se activa.
¿Cómo puedo solucionar esto?
wget
.
nslookup
o host
puedo resolver el nombre y cualquier otra cosa en el sistema no pueden.
/etc/NetworkManager/NetworkManager.conf
y comente la dns=dnsmasq
línea (ponga un # delante) y luego haga un sudo restart network-manager
. Eso apagará el resolutor local. ( fuente )
/etc/resolv.conf
?