pingme dice que no puede resolver algún nombre de host ("ping: host desconocido domain.company.local") en una URL, pero cuando uso hosto nslookupen 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, wgety pingtienen el mismo problema. Hacer ping a la dirección IP funciona.
SO: Linux (Ubuntu 13.04)
EDITAR Mis /etc/resolv.conflecturas:
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 ( nslookuptambién informa que se usa 127.0.1.1como servidor DNS).
No hay /etc/*inetd.conf, así que no estoy seguro de qué aplicación sirve este puerto.
Parece que dnsmasqse 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 nslookupdice que usa 127.0.1.1#53mi conjetura es que dnsmasqfunciona incluso sin una configuración. Pero, ¿cómo sabe qué DNS primario consultar?
EDIT2 Desactivar dnsmasqcomo lo sugiere harrymc no ayudó. Así que corrí, lo strace pingque 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 pingve en lo /etc/hostsque tiene sentido. Luego se carga y mmap()s, lo /lib/libnss_mdns4_minimal.so.2que 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.conftambién contiene esta línea:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Si tengo pinguna dirección de trabajo, veo que el proceso también se carga, /lib/libnss_mdns4_minimal.so.2pero luego realiza una consulta DNS a través del puerto 53.
Entonces, supongo que ahora /lib/libnss_mdns4_minimal.so.2es de alguna manera notar que la dirección IP termina con .localy no con .comy luego [NOTFOUND=return]se activa.
¿Cómo puedo solucionar esto?
wget.
nslookupo hostpuedo resolver el nombre y cualquier otra cosa en el sistema no pueden.
/etc/NetworkManager/NetworkManager.confy comente la dns=dnsmasqlínea (ponga un # delante) y luego haga un sudo restart network-manager. Eso apagará el resolutor local. ( fuente )
/etc/resolv.conf?