Ich muss wohl einen Grundkurs verpasst haben und die Formulierung meiner Suchanfragen führt mich nicht zum Ziel.
Verstanden habe ich Folgendes:
- zunächst haben wir NSS, konfiguriert z.B. über die nsswitch.conf - hosts: files dns - sagt: guck zuerst in Dateien wie /etc/hosts und nur bei Mißerfolg im DNS - dann kommt DNS - zumindest solange man nicht explizit einen DNS-Client verwendet
Jetzt habe ich ein Verhalten und will gern verstehen, wo und wie die eigentliche Magie stattfindet: - gegeben sind host1 und host2 in der domain example.com - in der /etc/hostname steht jeweils "hostN.example.com", N ist zu ersetzen, es steht nur der eigene Name drin - in der /etc/resolv.conf kommen 'domain' und search' NICHT vor - in der /etc/hosts, ist der localhost und der FQDN definiert, nicht aber der jeweils andere host
'dig' und 'host' aufgerufen auf host1 können nun die Anfrage 'host2' nicht auflösen. Verständlich, nutzen sie ja DNS und die Anfrage enthielt keinen FQDN. 'ssh' und 'ping' von host1 gegen 'host2' jedoch funktionieren.
Hier zieht also die files vor DNS Regel des NSS. Implementiert ist das vermutlich in der libc. Woher kommt nun der Domainteil, aus der /etc/hostname, alles rechts vom linken Punkt an?
Erweitere ich die Frage. Es gibt auch 'sub.host2.example.com', auf host1 funktioniert ein 'ping sub.host2', wie geht das denn?
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
Ronny Seffner ronny@seffner.de (Do 27 Aug 2015 13:08:06 CEST):
mdns steht meist noch drin. Bei Dir nicht?
Jetzt habe ich ein Verhalten und will gern verstehen, wo und wie die eigentliche Magie stattfindet:
…
dnsdomainname(1) vermutlich
Erweitere ich die Frage. Es gibt auch 'sub.host2.example.com', auf host1 funktioniert ein 'ping sub.host2', wie geht das denn?
Wo kommt das raus?
dnsdomainname(1) vermutlich
Also 'hostname -d', darauf bin ich schon gestossen.
Tatsächlich auf sub.host2.example.com.
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
Ronny Seffner ronny@seffner.de (Do 27 Aug 2015 14:13:46 CEST):
Tatsächlich auf sub.host2.example.com.
Und den gibt es? Also es löst sich auf eine Adresse in Deinem Netz auf?
Kannst Du die nsswitch.conf und die resolv.conf und die hosts mal bitte posten. Möglichst uneditiert.
Ob der dnsdomainname automatisch in die searchlist kommt, weiss ich gerade nicht. Scheint aber so.
Heiko Schlittermann hs@schlittermann.de (Do 27 Aug 2015 16:08:53 CEST):
Was siehst Du mit tcpdump auf port 53 und 5353? Und ist der nscd auch ausgeschaltet?
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann
Was siehst Du mit tcpdump auf port 53 und 5353? Und ist der nscd auch ausgeschaltet?
ns1:~# tcpdump -n port 53 | grep ddns tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 19:53:18.600547 IP 78.46.92.37.53897 > 192.228.79.201.53: 47751% [1au] A? klipphausen.ddns. (45)
Zufall? Denn ich kenne die 192.x nicht. Nein, denn nochmal:
19:54:22.136539 IP 78.46.92.37.9447 > 199.7.91.13.53: 3580% [1au] A? klipphausen.ddns. (45)
Das ist reproduzierbar: 'rndc flush' + 'ping klipphausen.ddns' aber es fragt immer ein anderer Client.
Was sollte auf Port 5353 laufen? Dieser mDNS? ns1:~# netstat -nlp | grep 5353 [leer]
Ha - dachte ich - der nscd war an. Für obige Tests hab ich den ausgemacht.
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
Ronny Seffner ronny@seffner.de (Do 27 Aug 2015 19:50:56 CEST):
Als dnsdomain vermuten wir jetzt mal seffner-schlesier.de.
ns1:~# cat /etc/resolv.conf nameserver 78.46.92.37
Warum nicht 127.0.0.1?
Und, dass ein lokaler Bind läuft, hattest Du bisher nicht erwähnt. Ich bin wegen 'rndc flush' drauf gekommen. Hat aber mit der Problematik nichts zu tun.
nameserver 213.133.98.98 nameserver 213.133.99.99
Die sind von Hetzner? Und genauso schlau wie Dein eigener? Ok.
…
ping klipphausen.ddns
müsste lt. resolv.conf(5) zuerst eine absolute Frage auslösen. Die sehen wir auch:
Das ist Dein eigener Bind, der fragt den b.root-servers.net, von dem wird er NXDOMAIN bekommen. Leider hast Du die Antwort unterdrückt.
Das selbe Spiel, jetzt ist es d.root-servers.net. Mich wundert, warum die Frage ein zweites mal rausgeht. Ach so, rndc flush…
Das ist reproduzierbar: 'rndc flush' + 'ping klipphausen.ddns' aber es fragt immer ein anderer Client.
Anderer Client? Wo siehst Du das? Du meinst, es wird immer ein anderer Server gefragt. Ja, 13 Stück gibt es a…m.root-servers.net, round robin vermutlich.
Was sollte auf Port 5353 laufen? Dieser mDNS? ns1:~# netstat -nlp | grep 5353
Ja, wenn dann der. Aber Du hattest auch nicht gesagt, dass es Server ist. Das MDNS tritt man sich meist erst bei GUI mit rein.
Also noch mal
ping klipphausen.ddns
1. Query (wegen ndots:1): klipphausen.ddns Wird sicher mit NXDomain enden
2. Query mit angehänger Domain aus dem FQDN des eigenen Rechners: klipphausen.ddns.seffner-schlesier.de (siehe resolv.conf, wenn die domain leer ist…) Antwort kennen wir.
Ist doch alles klar, oder habe ich etwas übersehen?
Das könnte die eigentliche Antwort sein, ist laut einer Deiner vorigen Mails aber eben nur eine Vermutung.
Im Umkerhschluss würde das bedeuten, dass für alles wo das DNS "NXDOMAIN" liefert mal zur Sicherheit noch ne Anfrage an 'dnsdomainname' gestartet.
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
Ronny Seffner ronny@seffner.de (Mo 31 Aug 2015 14:39:59 CEST):
Nee, eigentlich keine Vermutung mehr, sondern deterministisch, wenn man resolv.conf(5) ansieht.
Im Umkerhschluss würde das bedeuten, dass für alles wo das DNS "NXDOMAIN" liefert mal zur Sicherheit noch ne Anfrage an 'dnsdomainname' gestartet.
In Abhängigkeit von der Anzahl der Punkte im Namen entweder zuerst mit oder ohne anhängige Domain. Ja.
Tatsächlich auf sub.host2.example.com.
Und den gibt es? Also es löst sich auf eine Adresse in Deinem Netz auf?
Naja, das oben war anonymisiert - wirklich fragte ich nach "klipphausen.ddns". "host1" = ns1, "host2" = ns2, um mal Klartext zu reden.
ns1:~# ping klipphausen.ddns PING klipphausen.ddns.seffner-schlesier.de (84.179.154.164) 56(84) bytes of data. 64 bytes from p54B39AA4.dip0.t-ipconnect.de (84.179.154.164): icmp_req=1 ttl=54 time=57.4 ms
Kannst Du die nsswitch.conf und die resolv.conf und die hosts mal bitte posten. Möglichst uneditiert.
ns1:~# cat /etc/nsswitch.conf passwd: compat mysql group: compat mysql shadow: compat mysql hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
ns1:~# cat /etc/resolv.conf nameserver 78.46.92.37 nameserver 213.133.98.98 nameserver 213.133.99.99
ns1:~# cat /etc/hosts 127.0.0.1 localhost 78.46.92.37 ns1.seffner-schlesier.de ns1 ::1 ip6-localhost ip6-loopback 2a01:4f8:120:6442::2 ns1.seffner-schlesier.de ns1 fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Ob der dnsdomainname automatisch in die searchlist kommt, weiss ich gerade nicht. Scheint aber so.
Ack.
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
lug-dd@mailman.schlittermann.de