ping
sagt mir, dass es einige Hostnamen ("ping: unknown host domain.company.local") in einer URL nicht auflösen kann, aber wenn ich host
oder nslookup
auf demselben Computer in der Befehlszeile verwende, funktionieren die Auflösungen einwandfrei (dh es ist schnell und zuverlässig) ).
Was könnte das verursachen?
Weitere Tests: Firefox wget
und ping
haben das gleiche Problem. Das Pingen der IP-Adresse funktioniert.
Betriebssystem: Linux (Ubuntu 13.04)
BEARBEITEN Meine /etc/resolv.conf
liest:
nameserver 127.0.1.1
search domain.company.local
netstat
Berichte:
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 -
Auf diesem Port läuft also etwas ( nslookup
meldet auch, dass er 127.0.1.1
als DNS-Server verwendet wird).
Es gibt keine /etc/*inetd.conf
, daher bin ich mir nicht sicher, welche Anwendung diesen Port bedient.
Es scheint, dass dnsmasq
verwendet wird:
/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
Alle Konfigurationsdateien und -ordner sind leer. Da nslookup
sagt es nutzt 127.0.1.1#53
meine Vermutung, dass dnsmasq
das auch ohne Konfiguration funktioniert. Aber woher weiß es, welches übergeordnete DNS abgefragt werden soll?
EDIT2 Deaktivieren dnsmasq
wie von harrymc vorgeschlagen hat nicht geholfen. Also lief ich, strace ping
was mir diese seltsame Ausgabe brachte (nur die interessanten Teile):
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
Also ping
schaut /etc/hosts
was Sinn macht. Dann lädt und mmap()
s /lib/libnss_mdns4_minimal.so.2
was auch Sinn macht.
Aber dann spricht es mit Avahi !?
Was mich zu diesem Forumbeitrag geführt hat: Ping stellt keine DNS-Anfrage .
Meine /etc/nsswitch.conf
enthält auch diese Zeile:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Wenn ich ping
eine Arbeitsadresse habe, sehe ich, dass der Prozess auch geladen wird, /lib/libnss_mdns4_minimal.so.2
aber dann führt er eine DNS-Abfrage über Port 53 durch.
Also meine Vermutung ist jetzt, dass /lib/libnss_mdns4_minimal.so.2
irgendwie auffällt, dass die IP-Adresse mit .local
und nicht mit endet .com
und dann das [NOTFOUND=return]
ausgelöst wird.
Wie behebe ich das?
wget
.
nslookup
oder wie ich host
den Namen auflösen kann und alles andere auf dem System nicht.
/etc/NetworkManager/NetworkManager.conf
und kommentieren Sie die dns=dnsmasq
Zeile (setzen Sie ein # davor) und machen Sie dann ein sudo restart network-manager
. Dadurch wird der lokale Resolver ausgeschaltet. ( Quelle )
/etc/resolv.conf
?