Forum: PC Hard- und Software BIND9 - Bekomme kein DNS hin, am verzweifeln.


von Rene K. (xdraconix)


Lesenswert?

Ich bin so langsam am verzweifeln...

Ich habe hier Ubuntu Server 20.04 LTS. Darauf läuft DHCP, Web und MySQL 
Server.

Ich wollte über diesen auch einen DNS Server betreiben und bin so 
langsam am Ende. Ich zeige mal meine Dateien:

/etc/bind/named.conf.options
1
options {
2
3
        directory "/var/cache/bind";
4
5
        listen-on-v6 {
6
                none;
7
        };
8
9
        forwarders {
10
                192.168.178.1;
11
                8.8.8.8;
12
        };
13
14
        empty-zones-enable no;
15
        notify no;
16
17
        listen-on { 192.168.178.1; 127.0.0.1; };
18
        pid-file "/var/run/named/named.pid";
19
};

/etc/bind/named.conf.local
1
zone "home" {
2
        type master;
3
        file "/etc/bind/db.home";
4
};
5
6
zone "178.168.192.in-addr.arpa" {
7
      type master;
8
      file "/etc/bind/db.192";
9
};

/etc/bind/db.home
1
$TTL    604800
2
@       IN      SOA     ns.home. root.home. (
3
                        2021003         ; Serial
4
                         604800         ; Refresh
5
                          86400         ; Retry
6
                        2419200         ; Expire
7
                         604800 )       ; Negative Cache TTL
8
;
9
@       IN      NS      ns.home.
10
home    IN      A       192.168.178.5
11
ns      IN      A       192.168.178.5
12
13
;next server
14
rasp    IN      A       192.168.178.6

und zu guter letzt die Reverse...
/etc/bind/db.192
1
$TTL    604800
2
@       IN      SOA     ns.home. root.home. (
3
                        2021001         ; Serial
4
                         604800         ; Refresh
5
                          86400         ; Retry
6
                        2419200         ; Expire
7
                         604800 )       ; Negative Cache TTL
8
;
9
@       IN      NS      ns.
10
5       IN      PTR     ns.home.
11
5       IN      PTR     home.
12
13
; also list other computers
14
6       IN      PTR     rasp.home.


der Status des Services ist:
1
root@server-draconix:/etc/bind# systemctl status bind9zone rasp.home /etc/bind/db.home
2
● named.service - BIND Domain Name Server
3
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
4
     Active: active (running) since Fri 2021-04-02 18:11:30 UTC; 14min ago
5
       Docs: man:named(8)
6
   Main PID: 39613 (named)
7
      Tasks: 14 (limit: 9207)
8
     Memory: 22.8M
9
     CGroup: /system.slice/named.service
10
             └─39613 /usr/sbin/named -f -4 -u bind
11
12
Apr 02 18:11:30 server-draconix named[39613]: zone 0.in-addr.arpa/IN: loaded serial 1
13
Apr 02 18:11:30 server-draconix named[39613]: zone 255.in-addr.arpa/IN: loaded serial 1
14
Apr 02 18:11:30 server-draconix named[39613]: zone 178.168.192.in-addr.arpa/IN: loaded serial 2021001
15
Apr 02 18:11:30 server-draconix named[39613]: zone home/IN: loaded serial 2021003
16
Apr 02 18:11:30 server-draconix named[39613]: zone localhost/IN: loaded serial 2
17
Apr 02 18:11:30 server-draconix named[39613]: zone 127.in-addr.arpa/IN: loaded serial 1
18
Apr 02 18:11:30 server-draconix named[39613]: all zones loaded
19
Apr 02 18:11:30 server-draconix named[39613]: running
20
Apr 02 18:11:30 server-draconix named[39613]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
21
Apr 02 18:11:30 server-draconix named[39613]: resolver priming query complete

und DIG sagt mir folgendes:
1
root@server-draconix:/etc/bind# dig rasp.home
2
3
; <<>> DiG 9.16.1-Ubuntu <<>> rasp.home
4
;; global options: +cmd
5
;; Got answer:
6
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 29514
7
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
8
9
;; OPT PSEUDOSECTION:
10
; EDNS: version: 0, flags:; udp: 65494
11
;; QUESTION SECTION:
12
;rasp.home.                     IN      A
13
14
;; Query time: 3 msec
15
;; SERVER: 127.0.0.53#53(127.0.0.53)
16
;; WHEN: Fri Apr 02 18:27:20 UTC 2021
17
;; MSG SIZE  rcvd: 38



Aber warum bekomme ich die Adresse nicht aufgelößt? Wenn ich von einer 
externen Maschine, welche die 192.168.178.5 als DNS eingetragen hat die 
domain "rasp.home" anpinge oder zugreife... bekommt er diese nicht 
aufgelößt. Desweiteren leitet er, bei nicht bekannt sein, auch nicht zur 
8.8.8.8 oder 192.168.178.1 weiter.

Hat da jemand ein Rat für mich?!

von abc. (Gast)


Lesenswert?

Hast mal in den Bind-Log oder den Syslog geschaut? Zur not mal das 
Log-Level erhöhen.....

von Mario M. (thelonging)


Lesenswert?

Rene K. schrieb:
> listen-on { 192.168.178.1; 127.0.0.1; };

Wenn die IP Deines Servers die .5 ist, muss bind auch dort lauschen.
Was passiert, wenn Du auf dem Server "dig rasp.home @127.0.0.1" 
eingibst?

von Rene K. (xdraconix)


Lesenswert?

abc. schrieb:
> Hast mal in den Bind-Log oder den Syslog geschaut? Zur not mal das
> Log-Level erhöhen.....

Nicht viel:
1
root@server-draconix:/var/log/bind# cat bind.log
2
02-Apr-2021 18:59:35.420 zoneload: info: managed-keys-zone: loaded serial 28
3
02-Apr-2021 18:59:35.420 zoneload: info: zone 178.168.192.in-addr.arpa/IN: loaded serial 2021001
4
02-Apr-2021 18:59:35.420 zoneload: info: zone 0.in-addr.arpa/IN: loaded serial 1
5
02-Apr-2021 18:59:35.420 zoneload: info: zone 255.in-addr.arpa/IN: loaded serial 1
6
02-Apr-2021 18:59:35.420 zoneload: info: zone home/IN: loaded serial 2021003
7
02-Apr-2021 18:59:35.420 zoneload: info: zone 127.in-addr.arpa/IN: loaded serial 1
8
02-Apr-2021 18:59:35.420 zoneload: info: zone localhost/IN: loaded serial 2
9
02-Apr-2021 18:59:35.420 general: notice: all zones loaded
10
02-Apr-2021 18:59:35.420 general: notice: running
11
02-Apr-2021 18:59:35.500 dnssec: info: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
12
02-Apr-2021 18:59:35.520 resolver: info: resolver priming query complete
13
root@server-draconix:/var/log/bind#



Mario M. schrieb:
> Wenn die IP Deines Servers die .5 ist, muss bind auch dort lauschen.
> Was passiert, wenn Du auf dem Server "dig rasp.home @127.0.0.1"
> eingibst?

Ahhhh.... da kommen wir der Sache schon viel näher...
1
root@server-draconix:/var/log/bind# dig rasp.home @127.0.0.1
2
3
; <<>> DiG 9.16.1-Ubuntu <<>> rasp.home @127.0.0.1
4
;; global options: +cmd
5
;; Got answer:
6
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4453
7
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
8
9
;; OPT PSEUDOSECTION:
10
; EDNS: version: 0, flags:; udp: 4096
11
; COOKIE: a01d392d547cf2230100000060676b11b080a095e984af51 (good)
12
;; QUESTION SECTION:
13
;rasp.home.                     IN      A
14
15
;; ANSWER SECTION:
16
rasp.home.              604800  IN      A       192.168.178.6
17
18
;; Query time: 0 msec
19
;; SERVER: 127.0.0.1#53(127.0.0.1)
20
;; WHEN: Fri Apr 02 19:05:53 UTC 2021
21
;; MSG SIZE  rcvd: 82

Dabei ist mir aufgefallen das bei einem normalen dig rasp.home der 
Server nicht passt, denn wenn ich die IP des Servers angebe 
(192.168.178.5) dann klappt das auch.
1
root@server-draconix:/etc/bind# dig rasp.home
2
3
; <<>> DiG 9.16.1-Ubuntu <<>> rasp.home
4
;; global options: +cmd
5
;; Got answer:
6
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 65399
7
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
8
9
;; OPT PSEUDOSECTION:
10
; EDNS: version: 0, flags:; udp: 65494
11
;; QUESTION SECTION:
12
;rasp.home.                     IN      A
13
14
;; Query time: 3 msec
15
;; SERVER: 127.0.0.53#53(127.0.0.53)        <--- falsche IP Adresse, nimmt Port statt letztes Octtet.
16
;; WHEN: Fri Apr 02 19:00:05 UTC 2021
17
;; MSG SIZE  rcvd: 38

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rene K. schrieb:
> ;; SERVER: 127.0.0.53#53(127.0.0.53)

Da hängt noch dieser systemd-resolved davor. Der scheint dir in die 
Suppe zu spucken bzw. den musst du davon überzeugen, dass er deinen 
Server überhaupt nimmt.

von Rene K. (xdraconix)


Lesenswert?

Mario M. schrieb:
> Wenn die IP Deines Servers die .5 ist, muss bind auch dort lauschen.
> Was passiert, wenn Du auf dem Server "dig rasp.home @127.0.0.1"
> eingibst?

Das war eigentlich der Grund warum ich die lokalen Hosts nicht auflösen 
konnte. Dies funktioniert nun tadellos.

Jörg W. schrieb:
> Da hängt noch dieser systemd-resolved davor. Der scheint dir in die
> Suppe zu spucken bzw. den musst du davon überzeugen, dass er deinen
> Server überhaupt nimmt.

Ja, aber auch da ist keine 127.0.0.53 als localhost angegeben. Oder es 
wurde unter Ubuntu Server 20.04 wieder einmal die config in ein anderes 
Verzeichniss verschoben.



Was er nun auch nicht macht, ist das forwarden, also wenn ich einen 
anderen Namen außerhalb meines Netzwerkes auflösen will, bekomme ich 
immer ein NXDOMAIN. Ich kann zwar über meine DHCP einen zweiten DNS 
angeben, aber das ist ja nun auch nicht Sinn der Sache.

von Oliver S. (phetty)


Lesenswert?

Mach dir das Leben einfacher und nimm dnsmasq. Das reicht für 
Heim-Installationen vollkommen aus.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rene K. schrieb:
>> Da hängt noch dieser systemd-resolved davor. Der scheint dir in die
>> Suppe zu spucken bzw. den musst du davon überzeugen, dass er deinen
>> Server überhaupt nimmt.
>
> Ja, aber auch da ist keine 127.0.0.53 als localhost angegeben.

Diese 127.0.0.53 ist eine fiktive Adresse, die auf ebendiesen 
systemd-resolve verzweigt. Der behandelt dann solche Dinge wie zeroconf.

Wenn du das nicht haben willst, kannst du den wohl irgendwie abklemmen 
(musst du nachlesen wie) und in /etc/resolve.conf trägst du dann die 
Adresse deines Servers ein.

In deiner Konfiguration verstehe ich nicht, warum du die 
"listen"-Adressen überhaupt einschränken willst (und warum du IPv6 
abschaltest – aber das ist 'ne andere Diskussion dann). Wenn du da 
nichts einschränkst, hört er auf IPADDR_ANY.

von Mario M. (thelonging)


Lesenswert?

Was sagt denn "dig @192.168.178.5 google.de", wenn es von einem Client 
gestartet wird? Alternativ "nslookup google.de 192.168.178.5" auf einem 
Windows-Client.

Rene K. schrieb:
> ;; SERVER: 127.0.0.53#53(127.0.0.53)

Das betrifft nur die lokale Namensauflösung auf dem Server und hat mit 
bind9 nichts zu tun.

von Rene K. (xdraconix)


Lesenswert?

Jörg W. schrieb:
> Diese 127.0.0.53 ist eine fiktive Adresse, die auf ebendiesen
> systemd-resolve verzweigt. Der behandelt dann solche Dinge wie zeroconf.
>
> Wenn du das nicht haben willst, kannst du den wohl irgendwie abklemmen
> (musst du nachlesen wie) und in /etc/resolve.conf trägst du dann die
> Adresse deines Servers ein.
>
> In deiner Konfiguration verstehe ich nicht, warum du die
> "listen"-Adressen überhaupt einschränken willst (und warum du IPv6
> abschaltest – aber das ist 'ne andere Diskussion dann). Wenn du da
> nichts einschränkst, hört er auf IPADDR_ANY.

Ah achso, ja aber das funktioniert ja nun, da lass ich das so in Ruhe, 
wenn es eh nur für den internen Gebrauch ist.

Ich dachte dies ist eine zwingende Angabe. Da der Rechner aber über 
mehrere NICs mit dem Switch verbunden ist (eine z.b. speziell für SMB). 
Dachte ich es wäre eine gute Alternative so. Da hatte ich aber auch noch 
den DHCP im Hinterkopf, welcher ja über Broadcast antwortet - dies ist 
ja beim DNS nicht der Fall, da ja die Anfrage auf die IP direkt geht.

Mario M. schrieb:
> Was sagt denn "dig @192.168.178.5 google.de", wenn es von einem
> Client
> gestartet wird? Alternativ "nslookup google.de 192.168.178.5" auf einem
> Windows-Client.
>
> Rene K. schrieb:
>> ;; SERVER: 127.0.0.53#53(127.0.0.53)
>
> Das betrifft nur die lokale Namensauflösung auf dem Server und hat mit
> bind9 nichts zu tun.

Unter Windows ist folgendes zu sehen:
1
C:\Users\DraconiX>nslookup google.de 192.168.178.5
2
Server:  ns.home
3
Address:  192.168.178.5
4
5
DNS request timed out.
6
    timeout was 2 seconds.
7
DNS request timed out.
8
    timeout was 2 seconds.
9
DNS request timed out.
10
    timeout was 2 seconds.
11
DNS request timed out.
12
    timeout was 2 seconds.
13
*** Zeitüberschreitung bei Anforderung an ns.home.
14
15
C:\Users\DraconiX>

Die log von BIND9 sagt dazu folgendes:
1
root@server-draconix:/var/log/bind# < bind.log grep 192.168.178.51
2
3
3-Apr-2021 19:25:23.570 query-errors: info: client @0x7fec5c015a70 192.168.178.51#64113 (google.com): query failed (timed out) for google.com/IN/A at query.c:6883
4
03-Apr-2021 19:25:53.401 queries: info: client @0x7fec6008e680 192.168.178.51#53586 (5.178.168.192.in-addr.arpa): query: 5.178.168.192.in-addr.arpa IN PTR + (192.168.178.5)
5
03-Apr-2021 19:25:53.405 queries: info: client @0x7fec5c0770e0 192.168.178.51#53587 (google.de): query: google.de IN A + (192.168.178.5)
6
03-Apr-2021 19:25:55.413 queries: info: client @0x7fec6008e680 192.168.178.51#53588 (google.de): query: google.de IN AAAA + (192.168.178.5)
7
03-Apr-2021 19:25:57.417 queries: info: client @0x7fec5407d090 192.168.178.51#53589 (google.de): query: google.de IN A + (192.168.178.5)
8
03-Apr-2021 19:25:59.417 queries: info: client @0x7fec5406f600 192.168.178.51#53590 (google.de): query: google.de IN AAAA + (192.168.178.5)
9
03-Apr-2021 19:26:03.409 query-errors: info: client @0x7fec5407d090 192.168.178.51#53589 (google.de): query failed (timed out) for google.de/IN/A at query.c:6883
10
03-Apr-2021 19:26:03.409 query-errors: info: client @0x7fec5c0770e0 192.168.178.51#53587 (google.de): query failed (timed out) for google.de/IN/A at query.c:6883

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rene K. schrieb:

> 03-Apr-2021 19:26:03.409 query-errors: info: client @0x7fec5407d090
> 192.168.178.51#53589 (google.de): query failed (timed out) for
> google.de/IN/A at query.c:6883

Kannst du denn mit einem tcpdump mal verifizieren, dass er die Anfrage 
auch tatsächlich weiter schickt?

Hast du die root-Zonen-Daten installiert, oder ist er komplett auf die 
"forwarders" angewiesen?

von Rene K. (xdraconix)


Angehängte Dateien:

Lesenswert?

Jörg W. schrieb:
> Kannst du denn mit einem tcpdump mal verifizieren, dass er die Anfrage
> auch tatsächlich weiter schickt?

Habe ich mal als Datei angehangen. Der Bereich in dem ich den NSLookUp 
auf Google.de über den DNS Server mache.

Jörg W. schrieb:
> Hast du die root-Zonen-Daten installiert, oder ist er komplett auf die
> "forwarders" angewiesen?

Da verstehe ich nicht so ganz was du meinst. Mein Verständniss der 
Forwarder ist der: Wenn die Adresse im Server nicht aufgelößt werden 
kann - dann schickt er diese zum nächsten DNS Server (in meinem Fall die 
Fritzbox, oder eben 8.8.8.8 (Google)) weiter.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rene K. schrieb:

> Habe ich mal als Datei angehangen. Der Bereich in dem ich den NSLookUp
> auf Google.de über den DNS Server mache.

Kleiner Tipp: benutze besser die Option "-n", vor allem, wenn du 
DNS-Probleme debuggen willst. Ohne diese Option will tcpdump alle 
IP-Adressen in Hostnamen auflösen und generiert dadurch natürlich massiv 
zusätzlichen Traffic.

>> Hast du die root-Zonen-Daten installiert, oder ist er komplett auf die
>> "forwarders" angewiesen?
>
> Da verstehe ich nicht so ganz was du meinst.

Der Trace zeigt zumindest, dass du sie installiert hast. :-) Dein 
DNS-Server macht eigene rekursive Anfragen ins Internet.

> Mein Verständniss der
> Forwarder ist der: Wenn die Adresse im Server nicht aufgelößt werden
> kann - dann schickt er diese zum nächsten DNS Server (in meinem Fall die
> Fritzbox, oder eben 8.8.8.8 (Google)) weiter.

Dieses Verständnis entspricht der Option "forward-only".

Ohne diese Option werden eingetragene Forwarder zwar zuerst befragt 
(sodass man von deren Cache profitiert), aber bei Ausbleiben der Antwort 
startet der Server eigene rekursive Abfragen, beginnend bei den 
root-Servern.

Deine Forwarder werden befragt – und liefern auch Antworten:
1
20:09:51.490624 IP server-draconix.fritz.box.domain > dns.google.domain: 23664+% [1au] A? google.de. (50)
2
20:09:51.545487 IP dns.google.domain > server-draconix.fritz.box.domain: 23664 1/0/1 A 142.250.179.131 (54)
3
20:09:53.503278 IP server-draconix.fritz.box.domain > dns.google.domain: 4274+% [1au] AAAA? google.de. (50)
4
20:09:53.556566 IP dns.google.domain > server-draconix.fritz.box.domain: 4274 1/0/1 AAAA 2a00:1450:4005:803::2003 (66)

Warum er diese Antwort nicht weiter reicht, ist mir allerdings nicht 
klar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.