Namenauflösung unter 9.3 (64, smp)
Hallo Liste, ich habe hier ein merkwürdiges Problem mit einer 9.3-Kiste. Alles läuft in einem privaten Netzwerk ab. Die Kiste heißt selbst "meinhost", domain "privat.test". Symptom: Er findet keinerlei hostnamen, wenn der Name nicht vollständig angegeben wird. Der Nameserver (bind) läuft direkt auf demselben Rechner. host meinhost connection timed out, no servers could be reached host meinhost.privat.test host meinhost.privat.test has address 192.168.111.1 Alle anderen Rechner im selben Netz lösen auch Namen ohne domain korrekt auf, wobei sie denselben nameserver befragen. Soweit ich weiß, sollte der hostname um die zu suchende domain vor der eigentlichen Anfrage an den Nameserver vom jeweiligen Rechner selbst erweitert werden. hostname: meinhost dnsdomain: privat.test /etc/resolv.conf: domain privat.test nameserver 127.0.0.1 search privat.test Direkt daneben steht eine weitere 9.3/64 Kiste, die auch den Nameserver (im Moment läuft nur einer) fragt, und es funktioniert. Vorher lief der Nameserver auf einer 8.1, und alles funktionierte. named-checkconf gibt keine Meldungen und Status 0 named-checkzone gibt OK Ich vermute das Problem vor dem Nameserver, aber wo? Als temporäre Abhilfe habe ich schon die wichtigsten Rechner in /etc/hosts eingetragen. host und dig finden die natürlich nicht, aber Prozesse wie slogin oder ping finden dann den Rechner sofort. Der Rechner ist auf dem Stand von Mittwoch abend gepatcht. Hat noch jemand eine Idee, wo ich ansetzen kann? Gruß, Wolfgang
Wolfgang Hinsch
Hallo Liste,
ich habe hier ein merkwürdiges Problem mit einer 9.3-Kiste. Alles läuft in einem privaten Netzwerk ab.
Die Kiste heißt selbst "meinhost", domain "privat.test".
Symptom:
Er findet keinerlei hostnamen, wenn der Name nicht vollständig angegeben wird. Der Nameserver (bind) läuft direkt auf demselben Rechner.
host meinhost connection timed out, no servers could be reached [...]
Vergleiche einmal die Einträge in /etc/hosts auf den diversen Rechnern. -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Am Freitag, 19. August 2005 13:53 schrieb Dieter Kluenter:
Wolfgang Hinsch
writes: Hallo Liste,
[...]
Er findet keinerlei hostnamen, wenn der Name nicht vollständig angegeben wird. Der Nameserver (bind) läuft direkt auf demselben Rechner.
host meinhost connection timed out, no servers could be reached
[...]
Vergleiche einmal die Einträge in /etc/hosts auf den diversen Rechnern.
Erstmal vielen Dank für die Antwort, aber... das verstehe ich jetzt nicht so ganz. Natürlich kann ich alles in /etc/hosts eintragen, aber dann trage ich auf allen Rechnern alles in /etc/hosts ein und aktualisiere ständig überall. Die alte Kiste, auf der auch die Auflösung ohne domain lief, steht noch daneben. /etc/hosts unterscheidet sich auf beiden Systemen nicht grundsätzlich. 127.0.0.1 localhost [ipv6 lt SuSE] ip.ip.ip.ip host.domain host .... Einziger Unterschied ist die Trennung, altes System tab, neues System blank. ratlos... Gruß, Wolfgang
Wolfgang Hinsch
Am Freitag, 19. August 2005 13:53 schrieb Dieter Kluenter:
Wolfgang Hinsch
writes: Hallo Liste,
[...]
Er findet keinerlei hostnamen, wenn der Name nicht vollständig angegeben wird. Der Nameserver (bind) läuft direkt auf demselben Rechner.
host meinhost connection timed out, no servers could be reached
[...]
Vergleiche einmal die Einträge in /etc/hosts auf den diversen Rechnern.
Erstmal vielen Dank für die Antwort, aber...
das verstehe ich jetzt nicht so ganz. Natürlich kann ich alles in /etc/hosts eintragen, aber dann trage ich auf allen Rechnern alles in /etc/hosts ein und aktualisiere ständig überall.
Es geht nicht darum nun alle Hosts in /etc/hosts einzutragen, der Resolver (libresolv) prüft zuerst /etc/nsswitch.conf, danach /etc/hosts und erst zum Schluss /etc/resolv.conf
Die alte Kiste, auf der auch die Auflösung ohne domain lief, steht noch daneben. /etc/hosts unterscheidet sich auf beiden Systemen nicht grundsätzlich.
127.0.0.1 localhost [ipv6 lt SuSE] ip.ip.ip.ip host.domain host ....
Einziger Unterschied ist die Trennung, altes System tab, neues System blank.
Wenn ich den Eintrag auf 'der alten Kiste, richtig interpretiere, steht dort die Adresse und auch der Hostname ohne Domainanteil. Der Hostname ohne Domainanteil wird also bei dir durch /etc/hosts aufgelöst und nicht durch named. -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Hallo Dieter, Am Freitag, 19. August 2005 15:48 schrieb Dieter Kluenter:
Wolfgang Hinsch
writes: Am Freitag, 19. August 2005 13:53 schrieb Dieter Kluenter:
[...]
Vergleiche einmal die Einträge in /etc/hosts auf den diversen Rechnern.
Erstmal vielen Dank für die Antwort, aber...
das verstehe ich jetzt nicht so ganz. Natürlich kann ich alles in /etc/hosts eintragen, aber dann trage ich auf allen Rechnern alles in /etc/hosts ein und aktualisiere ständig überall.
Es geht nicht darum nun alle Hosts in /etc/hosts einzutragen, der Resolver (libresolv) prüft zuerst /etc/nsswitch.conf, danach /etc/hosts und erst zum Schluss /etc/resolv.conf
Diese Reihenfolge legt /etc/nsswitch.conf fest. Die Dateien unterscheiden sich auf den beiden Rechnern nicht.
Die alte Kiste, auf der auch die Auflösung ohne domain lief, steht noch daneben. /etc/hosts unterscheidet sich auf beiden Systemen nicht grundsätzlich.
127.0.0.1 localhost [ipv6 lt SuSE] ip.ip.ip.ip host.domain host ....
Einziger Unterschied ist die Trennung, altes System tab, neues System blank.
Wenn ich den Eintrag auf 'der alten Kiste, richtig interpretiere, steht dort die Adresse und auch der Hostname ohne Domainanteil. Der Hostname ohne Domainanteil wird also bei dir durch /etc/hosts aufgelöst und nicht durch named.
Nein, ich habe noch einmal verglichen. In /etc/hosts stehen nur wenige Einträge. Die 127 ist der einzige ohne domain. Ansonsten haben alle Einträge die Form IP <tab> Host.Domain <tab> Host Dort sind außer den Einträgen für die Netzwerkkarten am Rechner selbst nur noch 2 weitere Rechner definiert. Alles andere macht der Nameserver, und der Befehl "host" kümmert sich nicht um /etc/hosts, sondern fragt nur den Nameserver. Es ist aber Fakt, dass auf dem alten System eine Abfrage "host otto" mit der ip zurückkam, es aber definitiv keinen Eintrag für otto in /etc/hosts gab. Auf dem neuen System kommt die gleiche Abfrage ohne Antwort zurück. Auch hier ist otto nicht in /etc/hosts eingetragen. host otto.domain gibt die korrekte ip wieder. Aber das beste dabei ist: Nur ganz einzig und allein der Rechner, auf dem der Nameserver lokal läuft (das ist im Moment nur eine Maschine), nur dieser Rechner ganz allein ist von dem Problem betroffen. Alle anderen greifen auf den Nameserver auf diesem Rechner zu. Bei allen anderen bekomme ich auf die Abfrage "host otto" die korrekte Antwort "otto.domain has address ip.ip.ip.ip". Daraus folgt für mich, dass die Auflösung "otto ohne domain" nach "otto mit domain" lokal auf dem fragenden Rechner ablaufen muss, bevor der Nameserver gefragt wird. Und genau hier scheint ein Hund begraben zu sein, jedenfalls komme ich hier nicht weiter. Wo kann ich diese Auflösung noch beeinflussen? Gruß, Wolfgang
wie lautet die hosts-Zeile in /etc/nsswitch.conf? -- Viele Grüße ------------------------------------------------------------------------ Michael Behrens
Hallo Michael Am Freitag, 19. August 2005 16:57 schrieb Michael Behrens:
wie lautet die hosts-Zeile in /etc/nsswitch.conf?
hosts: <tab>files lwres dns lwres habe ich bisher in keiner Doku gefunden. Testweise hatte ich das auch schon rausgenommen, aber keinerlei Veränderung. Fragen nach Rechnernamen, die in /etc/hosts nicht vorhanden sind, werden auf dem System, auf dem der Nameserver lokal läuft, nicht aufgelöst, wenn die domain nicht mit angegeben wird. Es gibt nur eine Domain und nur einen Nameserver, das ganze hat keinerlei Verbindung zum Internet. Die /etc/named.conf enthält die Anweisung: recursion no; Andere Rechner, die den Nameserver fragen, und selbst auch nur den Nameserver und die eigene Netzwerkkarte in /etc/hosts haben, lösen jede Abfrage (nach dritten Rechnern!) korrekt auf, auch ohne dass die domain angegeben wird. Gruß, Wolfgang
Wolfgang Hinsch
Hallo Michael
Am Freitag, 19. August 2005 16:57 schrieb Michael Behrens:
wie lautet die hosts-Zeile in /etc/nsswitch.conf?
hosts: <tab>files lwres dns
lwres habe ich bisher in keiner Doku gefunden. Testweise hatte ich das auch schon rausgenommen, aber keinerlei Veränderung.
[...] Ein apropos lwres hätte dir jede Menge Info ausgegeben. lwres ist der light weight resolver, siehe man lwres(3) und lwresd(8). In neueren SuSE-Versionen ersetzt liblwres libresolv. -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Am Freitag, 19. August 2005 18:24 schrieb Dieter Kluenter:
Wolfgang Hinsch
writes: Hallo Michael
Am Freitag, 19. August 2005 16:57 schrieb Michael Behrens:
wie lautet die hosts-Zeile in /etc/nsswitch.conf?
hosts: <tab>files lwres dns
lwres habe ich bisher in keiner Doku gefunden. Testweise hatte ich das auch schon rausgenommen, aber keinerlei Veränderung.
[...]
Ein apropos lwres hätte dir jede Menge Info ausgegeben. lwres ist der light weight resolver, siehe man lwres(3) und lwresd(8). In neueren SuSE-Versionen ersetzt liblwres libresolv.
man -k lwres lwres: nothing appropriate man lwresd No manual entry for lwresd Ist anscheinend unter 9.3 nicht standardmäßig installiert (im Gegensatz zu 8.1) ...moment, sollte das vielleicht mit dem Problem zusammenhängen? Teste ich Montag. Schönes Wochenende noch. Nein, ich nehme mir diese Hoffnung jetzt nicht. Der Frust hat Zeit bis Montag. Gruß, Wolfgang
Wolfgang Hinsch
Am Freitag, 19. August 2005 18:24 schrieb Dieter Kluenter:
Wolfgang Hinsch
writes: Hallo Michael
Am Freitag, 19. August 2005 16:57 schrieb Michael Behrens:
wie lautet die hosts-Zeile in /etc/nsswitch.conf?
hosts: <tab>files lwres dns
lwres habe ich bisher in keiner Doku gefunden. Testweise hatte ich das auch schon rausgenommen, aber keinerlei Veränderung.
[...]
Ein apropos lwres hätte dir jede Menge Info ausgegeben. lwres ist der light weight resolver, siehe man lwres(3) und lwresd(8). In neueren SuSE-Versionen ersetzt liblwres libresolv.
man -k lwres lwres: nothing appropriate
man lwresd No manual entry for lwresd
Ist anscheinend unter 9.3 nicht standardmäßig installiert (im Gegensatz zu 8.1)
...moment, sollte das vielleicht mit dem Problem zusammenhängen?
Teste ich Montag. Schönes Wochenende noch.
Dann teste auch einmal die Abhängigkeit von dynamisch zu ladenden Bibliotheken bei host, bei mir ergibt das dieter@rubin:~> ldd /usr/bin/host liblwres.so.1 => /usr/lib64/liblwres.so.1 (0x00002aaaaabc2000) libdns.so.20 => /usr/lib64/libdns.so.20 (0x00002aaaaacd3000) libbind9.so.0 => /usr/lib64/libbind9.so.0 (0x00002aaaaaeee000) libisccfg.so.1 => /usr/lib64/libisccfg.so.1 (0x00002aaaaaff5000) libisc.so.9 => /usr/lib64/libisc.so.9 (0x00002aaaab10d000) libcrypto.so.0.9.7 => /usr/lib64/libcrypto.so.0.9.7 (0x00002aaaab24d000) libisccc.so.0 => /usr/lib64/libisccc.so.0 (0x00002aaaab480000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00002aaaab588000) libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x00002aaaab69f000) libc.so.6 => /lib64/tls/libc.so.6 (0x00002aaaab7b4000) libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaab9da000) /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000) -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Hallo Dieter, Am Freitag, 19. August 2005 19:25 schrieb Dieter Kluenter:
Wolfgang Hinsch
writes: man -k lwres lwres: nothing appropriate
man lwresd No manual entry for lwresd
Ist anscheinend unter 9.3 nicht standardmäßig installiert (im Gegensatz zu 8.1)
Stimmt nicht, ist installiert, aber es gibt out of the box keine Doku dazu.
...moment, sollte das vielleicht mit dem Problem zusammenhängen?
Teste ich Montag. Schönes Wochenende noch.
Dann teste auch einmal die Abhängigkeit von dynamisch zu ladenden Bibliotheken bei host, bei mir ergibt das
dieter@rubin:~> ldd /usr/bin/host liblwres.so.1 => /usr/lib64/liblwres.so.1 [...]
Ja, geht. Aber das ist nicht die Lösung. Ich habe mal mit host rumprobiert. Ein host -a auf dem Server, auf dem der Nameserver lokal läuft, ergibt, dass er sich nicht zuständig fühlt, das aa-Flag ist nicht gesetzt. Ein host -a auf einem anderen Rechner, der auf den gleichen Nameserver zugreift, kommt dagegen mit gesetztem aa-Flag und korrektem Eintrag zurück. Bsp 1: ich@meinhost:~> host -a meinhost Trying "meinhost.privat.test" ;; ->>HEADER<<- opcode:QUERY, status: NOERROR, id:4711 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 0 ;; QUESTION SECTION: ;meinhost.privat.test. IN ANY ;; AUTHORITY SECTION [liste von 13 rootservern] Bsp 2: ich@meinhost:~> host -a meinhost.privat.test Trying "meinhost.privat.test" ;; ->>HEADER<<- opcode:QUERY, status: NOERROR, id:4711 ;; flags: qr aa rd; QU'ERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;meinhost.privat.test. IN ANY ;; ANSWER SECTION meinhost.privat.test 86400 IN A 192.168.111.1 ;; AUTHORITY SECTION meinhost.privat 86400 IN MS meinhost.privat.test. Received 82 bytes from 127.0.0.1#53 in 0 ms Bsp 3: ich@andererhost:~> host -a meinhost Trying "meinhost.privat.test" ;; ->>HEADER<<- opcode:QUERY, status: NOERROR, id:4712 ;; flags: qr aa rd; QU'ERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;meinhost.privat.test. IN ANY ;; ANSWER SECTION meinhost.privat.test 86400 IN A 192.168.111.1 ;; AUTHORITY SECTION meinhost.privat 86400 IN MS meinhost.privat.test. Received 82 bytes from 192.168.111.1#53 in 0 ms ???? Der Server hält sich für die Namensauflösung nur für zuständig, wenn entweder lokal (127.0.0.1) mit angehängter domain oder remote von einem anderen Rechner gefragt wird. Fragt man lokal ohne domain, verweist er auf die root-Server. Any idea? Gruß, Wolfgang
Hallo, noch ein Zusatz: Ich habe jetzt auch /etc/host.conf verglichen: auf dem alten und neuen System gleich: order hosts, bind multi on Gruß, Wolfgang
participants (3)
-
Dieter Kluenter
-
Michael Behrens
-
Wolfgang Hinsch