pingmi dice che non è in grado di risolvere alcuni hostname ("ping: host sconosciuto domain.company.local") in un URL ma quando uso hosto nslookupsullo stesso computer sulla riga di comando, le risoluzioni funzionano bene (cioè è veloce e affidabile ).
Che cosa potrebbe causare questo?
Altri test: Firefox wgete pinghanno lo stesso problema. Il ping dell'indirizzo IP funziona.
Sistema operativo: Linux (Ubuntu 13.04)
EDIT Le mie /etc/resolv.confletture:
nameserver 127.0.1.1
search domain.company.local
netstat rapporti:
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 -
quindi qualcosa è in esecuzione su questa porta ( nslookupsegnala anche che utilizza 127.0.1.1come server DNS).
No /etc/*inetd.conf, quindi non sono sicuro di quale applicazione serve questa porta.
Sembra che dnsmasqsia usato:
/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
Tutti i file e le cartelle di configurazione sono vuoti. Dal momento che nslookupdice che usa la 127.0.1.1#53mia ipotesi è che dnsmasqfunziona anche senza una configurazione. Ma come fa a sapere quale DNS genitore interrogare?
EDIT2 La disabilitazione dnsmasqcome suggerito da harrymc non ha aiutato. Quindi ho corso strace pingche mi ha dato questo strano risultato (solo le parti interessanti):
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
Quindi pingguarda in /etc/hostsche senso. Quindi carica e mmap()s /lib/libnss_mdns4_minimal.so.2che ha anche senso.
Ma poi parla con avahi !?
Il che mi ha portato a questo post sul forum: ping non fa una richiesta dns .
Il mio /etc/nsswitch.confcontiene anche questa riga:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Se ho pingun indirizzo funzionante, vedo che viene caricato anche il processo /lib/libnss_mdns4_minimal.so.2, ma esegue una query DNS tramite la porta 53.
Quindi la mia ipotesi ora è che in /lib/libnss_mdns4_minimal.so.2qualche modo sta notando che l'indirizzo IP termina con .locale non con .come quindi [NOTFOUND=return]viene attivato.
Come posso risolvere questo problema?
wget.
nslookupo hostposso risolvere il nome e qualsiasi altra cosa sul sistema non può.
/etc/NetworkManager/NetworkManager.confe commenta la dns=dnsmasqriga (metti un # davanti ad essa) quindi fai un sudo restart network-manager. Ciò disattiverà il resolver locale. ( fonte )
/etc/resolv.conf?