PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 'Temporary failure in name resolution' als User



kiker99
15.02.07, 20:55
Hallo,

Distribution: Arch Linux
Kernel: 2.6.16
Rechner: Notebook Asus F3jm
Netzwerkkarte: 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
mit Modul r1000 im Betrieb

Mein Problem:
Als root funktioniert alles wunderbar. Als User funktioniert nur solange alles wunderbar, solange ich die IP direkt eingebe. Mit Domainnamen funktioniert nur ping und nslookup. Surfen im Browser funktioniert auch, Probleme gibt es aber z.B. bei SSH sowie Subversion.



nameserver 192.168.2.1
search WorkGroup


Kann daran eigentlich nicht liegen, wird automatisch generiert und ist außerdem identisch mit der auf einem anderen Rechner im LAN, auf dem alles funktioniert. 192.168.2.1 ist mein lokaler Router.

Eth0 wird über DHCP konfiguriert.



$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:17:31:DE:08:14
inet addr:192.168.2.12 Bcast:255.255.255.255 Mask:255.255.255.0
inet6 addr: fe80::217:31ff:fede:814/64 Scope:Link
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:128979 errors:0 dropped:0 overruns:0 frame:0
TX packets:72991 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:173130888 (165.1 Mb) TX bytes:6166480 (5.8 Mb)
Interrupt:16 Base address:0xc800




hosts: files dns
networks: files dns




$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost hermes hermes.localdomain
192.168.2.39 asklepios.localdomain asklepios




$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0


Da mir keine anderen Dateien mehr einfallen, die einen Einfluss auf das Problem machen könnte, hier noch ein Testszenario:



$ cat ./lookup.pl
#!/usr/bin/perl -w

$host = $ARGV[0] || die "usage: $0 hostname";

my ($name, $aliases, $addrtype, $length, @addrs) =
gethostbyname($host);
$a='';
$a=gethostbyname($host);
if (!defined($a)) {
print "Error\n";
}
foreach $i (@addrs) {
my ($a, $b, $c, $d) = unpack('C4', $i);
print "$a.$b.$c.$d\n";
}




[root@hermes andre]# ./lookup.pl google.de
66.249.93.104
216.239.59.104
72.14.221.104
[andre@hermes ~]$ ./lookup.pl google.de
Error


Danke schonmal an alle, die sich Gedanken machen. Ich hoffe, jemand hat eine Idee.

Gruß,
kiker99

403
15.02.07, 21:13
moin :-)

lass doch mal Prell im Taint Modus laufen.
Oder nutze host und strace und poste dann
nochmal.

Gruss 403

kiker99
15.02.07, 22:05
[root@hermes andre]# host google.de
google.de has address 72.14.221.104
google.de has address 66.249.93.104
google.de has address 216.239.59.104
google.de mail is handled by 10 smtp4.google.com.
google.de mail is handled by 10 smtp1.google.com.
google.de mail is handled by 10 smtp2.google.com.
google.de mail is handled by 10 smtp3.google.com.
[andre@hermes ~]$ host google.de
google.de has address 66.249.93.104
google.de has address 216.239.59.104
google.de has address 72.14.221.104
google.de mail is handled by 10 smtp3.google.com.
google.de mail is handled by 10 smtp4.google.com.
google.de mail is handled by 10 smtp1.google.com.
google.de mail is handled by 10 smtp2.google.com.


hm. Ich denke mal dann macht es keinen Sinn, strace darauf anzuwenden.

Soll ich die strace-Ausgabe auf das lookup.pl mal anhängen?

Was ist prell? Gibt es im Arch-Repository nicht.

403
15.02.07, 22:33
Sorry Typo!!1elf :ugly:
Meinte Perl ;)

hm, host sieht doch gut aus.
War wohl nur ein temporaerer
Fehler wie es in der Fehlermeldung
schon steht:
Temporary failure

Das Perlscript ist auch fehlerfrei.

Kanst du den Fehler noch reproduzieren?

[ ] NEIN [ ] ja

kiker99
15.02.07, 22:56
Es ist immer noch dasselbe. Ich bin mir nicht sicher, ob es nie funktioniert hat, auf jeden Fall kommt der Fehler sehr häufig.

Ich habe die erste Zeile im Skript durch "#!/usr/bin/perl -T" ersetzt, was IMHO ja den Taint-Modus anschalten sollte. Hat allerdings zu keinem Unterschied geführt.

Was ich nicht verstehe ist wie ein angeblich temporärer Fehler nur als User auftreten kann und nicht als root. Und außerdem: was machen ping, nslookup,host und webbrowser anders als subversion, ssh und mein skript mit gethostname?
Ich schätze die Programme nutzen jeweils gethostname, während die dns-spezifischen Tools das irgendwie umgehen.

Susu
15.02.07, 22:58
Ähm, Du hast Dein System schon lange nicht mehr auf den aktuellen Stand gebracht, oder? Zur Zeit ist current/kernel26 2.6.19.2-1 aktuell... vielleicht behebt ein Update schon Deine Probleme?

kiker99
15.02.07, 23:14
Problem ist dass ich den nicht zum laufen gebracht habe, weshalb ich den 2.6.16er erst installiert habe - System ist sonst ganz frisch. Es gab Probleme wegen den Umstellungen rund um Serial-ATA im 2.6.19er Kernel.

Es hängt mit dem Thema hier zusammen, aber ich habe es bis jetzt nicht gelöst bekommen: http://www.linuxquestions.org/questions/showthread.php?t=509439

kiker99
13.11.07, 00:56
Wie geil ist das denn! Habe das Problem endlich gelöst!
Die Lösung war, die Datei /etc/nsswitch.conf folgendermaßen anzupassen:


hosts: dns files
networks: files


Dns bei networks war wohl unnötig, das rumdrehen bei hosts war die Lösung! Ich verstehe zwar nicht, wieso es da einen Unterschied macht, ob gerade root oder der user am werk war, egal: hauptsache es geht endlich :D

_Endlich_ geht skype, google earth, subversion, ssh, etc, etc auch ohne root-Zugriff bzw. manuellem einfügen von ips in die /etc/hosts für jeden host.