DDNS mit ISC-DHCP-SERVER und BIND9

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
DerT
Beiträge: 4
Registriert: 26.02.2019 21:44:59

DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von DerT » 26.02.2019 21:54:30

Hallo zusammen,

ich betreibe aktuell einen ISC-DHCP-Server und einen BIND9 Server.
Beide wurden neu aufgesetzt und in diesem Zuge wollte ich auch DDNS aktiveren.
DDNS habe ich auch konfiguriert und ein Test mit NSUPDATE war auch erfolgreich. (nsUpdate durchgeführt und danach mit dig geprüft ob ein Eintrag vorhanden ist)
Nun bekomme ich leider einen Fehler in den Logs des DHCP Servers.

Code: Alles auswählen

Feb 26 21:46:17 dc named[2168]: client 127.0.0.1#13213: request has invalid signature: TSIG ddns_update: tsig verify failure (BADKEY)
Feb 26 21:46:17 dc dhcpd[3371]: Unable to add forward map from TA-PC.angl.loc to 192.168.170.10: tsig indicates error
Feb 26 21:46:17 dc named[2168]: client 127.0.0.1#47585: request has invalid signature: TSIG ddns_update: tsig verify failure (BADKEY)
Feb 26 21:46:17 dc dhcpd[2968]: Unable to add forward map from TA-PC.angl.loc to 192.168.170.10: tsig indicates error
Ich gehe davon aus, dass irgendetwas mit dem Key nicht stimmt, komme aber nicht dahinter was.
Der Test mit nsupdate funktioniert mit dem selben key.

Anbei noch meine config files.

/etc/bind/ddns.key & /etc/bind/ddns.key

Code: Alles auswählen

key DDNS_UPDATE {
       algorithm hmac-md5;
       secret "Smrvvv/+aa+cgOJhZkXVVw==";
};
/etc/dhcp/dhcpd.conf

Code: Alles auswählen

authoritative;
option domain-name "angl.loc";

ddns-updates on;
ddns-update-style interim;
ignore client-updates;
update-static-leases on;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;

include "/etc/dhcp/ddns.key";

zone angl.loc. {
  primary 127.0.0.1;
  key DDNS_UPDATE;
}

zone 170.168.192.in-addr.arpa. {
  primary 127.0.0.1;
  key DDNS_UPDATE;
}

# Default
subnet 192.168.170.0 netmask 255.255.255.0 {
        range 192.168.170.100 192.168.170.200;
        option routers 192.168.170.1;
        option domain-name-servers 192.168.170.20, 192.168.170.1;
        option domain-name "angl.loc";
        }
        
Ab hier kommen dann die Reservierungen welche an dieser Stelle irrelevant sein dürften.
/etc/bind/named.conf.local

Code: Alles auswählen

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
include "/etc/bind/ddns.key";

// ----------------------- Zones -----------------------

// Forward-Lookup
zone "angl.loc" {
    type master;
    notify no;
    file "/var/lib/bind/db.angl";
    allow-update { key DDNS_UPDATE; };
};

// Reverse-Lookup
zone "170.168.192.in-addr.arpa" {
    type master;
    notify no;
    file "/var/lib/bind/db.170.168.192";
    allow-update { key DDNS_UPDATE; };
};

// ----------------------- Zones -----------------------

MSfree
Beiträge: 4224
Registriert: 25.09.2007 19:59:30

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von MSfree » 27.02.2019 14:54:40

Bei mir läuft ebenfalls des ISC-DHCP-Server mit Bind9 im Gespann. Allerdings habe ich die Keys direkt in die /etc/dhcp/dhcpd.conf und /etc/bind/named.conf eingetragen statt sie per "include" zu laden. Ich kann mich aber nicht mehr daran erinnern, ob ich das gemacht habe, weil es per include nicht geklappt hat.

Bei mir steht in der named.conf am Dateianfang:

Code: Alles auswählen

key "DHCP_UPDATER" {
        algorithm hmac-md5;
        secret "GeheimerSchlüssel";
};
und das passende Pendant in der dhcpd.conf hat die gleichen Zeilen.

DerT
Beiträge: 4
Registriert: 26.02.2019 21:44:59

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von DerT » 02.03.2019 18:03:06

Hi,

Danke erstmal für deine Hilfe.


Nach ein bisschen recherche konnte ich herausfinden was die Fehlermeldung bedeutet.
Anders als erst angenommen werden die DDNS Updates trotzdem geschrieben.
Der TSIG Fehler bedeutet "nur", dass der DNS Name nicht verifiziert werden konnte.
https://de.wikipedia.org/wiki/TSIG

Das bedeutet der eigentliche Fehler ist gelöst.

Nun stehe ich aber vor einem ganz anderen Problem.
Wie kann ich die zonen nun manuell anpassen?
Laut dem allwissenden Internet muss ich hierzu erst den Befehl "rdnc freeze" absetzen.
Dabei erhalte ich aber folgenden Fehler.

Code: Alles auswählen

rndc: neither /etc/bind/rndc.conf nor /etc/bind/rndc.key was found
Ich konnte leider nichts finden wie diese Datei aussehen muss.

Sollte ich dazu ein neues Thema aufmachen? (Fände ich unnötig)

Gruß
T

Benutzeravatar
bluestar
Beiträge: 965
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von bluestar » 02.03.2019 18:50:56

DerT hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 18:03:06

Code: Alles auswählen

rndc: neither /etc/bind/rndc.conf nor /etc/bind/rndc.key was found
Ich konnte leider nichts finden wie diese Datei aussehen muss.
Die Datei kannst du folgendermaßen erzeugen:

Code: Alles auswählen

tsig-keygen -a hmac-md5 rndc-key >/etc/bind/rndc.key
chown root:bind /etc/bind/rndc.key
chmod 0740 /etc/bind/rndc.key

MSfree
Beiträge: 4224
Registriert: 25.09.2007 19:59:30

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von MSfree » 02.03.2019 19:02:51

DerT hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 18:03:06
Nun stehe ich aber vor einem ganz anderen Problem.
Wie kann ich die zonen nun manuell anpassen?
Laut dem allwissenden Internet muss ich hierzu erst den Befehl "rdnc freeze" absetzen.
Du mußt unter /etc/bind die Datei rndc.key anlegen. Das Format ist das gleiche wie du auch in deiner /etc/bind/ddns.key hast.

Code: Alles auswählen

key "rndc-key" {
        algorithm hmac-md5;
        secret "HierDeinDHCPUpdaterKey";
};
Ich habe bei mir einfach den selben Schlüssel verwendet wie für die DHCP-Updates. Ich sehe darin auch keine Sicherheitslücke, denn die Keys liegen als ASCII unter /etc/bind und wenn sich jemand unbefugt Zugriff verschafft, ist es egal, ob er erst zwei Schlüssel auslesen muß oder nur einen.

Anpassungen an den Zone-Dateien sollte man nur offline machen, keine Ahnung, wie sich ein Freeze verhält. Ich stoppe dazu den Nameserver, bearbeite die Zonedateien und starte den Nameserver anschließend wieder. In einer großen Umgebung mit mehr als nur einer Handvoll Clients ist das aber nicht empfehlendswert, weil der Nameserver während der Zeit nicht zur Verfügung steht.

Für Änderungen im laufenfden Betrieb sollte man das Programm nsupdate verwenden. Die Bedienung ist aber gewöhnungsbedürftig, man kan es aber durch Skripte vereinfachen.

DerT
Beiträge: 4
Registriert: 26.02.2019 21:44:59

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von DerT » 04.03.2019 17:28:55

Hallo,

Danke für die Rückmeldungen.

Ich habe nun die Datei /etc/bind/rndc.key erzeugt.
Das ganze funktioniert nun auch wie gewünscht.
Anpassungen an den Zone-Dateien sollte man nur offline machen, keine Ahnung, wie sich ein Freeze verhält. Ich stoppe dazu den Nameserver, bearbeite die Zonedateien und starte den Nameserver anschließend wieder. In einer großen Umgebung mit mehr als nur einer Handvoll Clients ist das aber nicht empfehlendswert, weil der Nameserver während der Zeit nicht zur Verfügung steht.
So wie ich das verstanden habe, stoppt der freeze Befehl das schreiben der dynamischen Einträge.
Mit dem Befel thaw wird es wieder gestartet.
Da es sich hier nur um ein Heimnetz handelt sind ausfälle des DNS kein Problem :D.

Nun habe ich noch eine Frage.

Meine Zonendateien sehen nach den dynamischen Einträgen wie folgt aus.

Code: Alles auswählen

ORIGIN .
$TTL 172800     ; 2 days
angl.loc                IN SOA  dc.angl.loc.angl.loc.  mail.angl.loc (
                                2019040302 ; serial
                                28800      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                2419200    ; expire (4 weeks)
                                10800      ; minimum (3 hours)
                                )
                        NS      dc.angl.loc.
                        A       192.168.170.20


$ORIGIN angl.loc.
pi-srv                A       192.168.170.2

$TTL 172800     ; 2 days
Beispiel4           A       192.168.170.1

$TTL 300        ; 5 minutes
Beispiel3         	A       192.168.170.12
                        TXT     "313440b5ea447042d99432226b809ca6a9"
                        
$TTL 172800     ; 2 days
localhost          A       127.0.0.1

$TTL 300        ; 5 minutes
Beispiel1         	A       192.168.170.32
                        TXT     "00ea2391eb254781890a32502ce247cce2"
                        
Beipiel2          	A       192.168.170.3
                        TXT     "31fe90e0737f271c826f045256cdafda9d"
Kann mit jemand sagen was der TXT Parameter angibt?
Warum haben die Einträge unterschiedliche TTLs?
Finde 5 Minuten etwas arg kurz :D.

Und noch die letzte Frage.
Damit mein statischer Eintrag (pi-srv) funktioniert musste ich ihn unter den Eintrag $ORIGIN angl.loc. setzen.
Warum? Kann ich irgendwie einen neuen "Bereich" in der Datei anlegen damit ich direkt sehe welche Einträge statisch und welche dynamisch gesetzte wurden.

Danke und Gruß
T

Benutzeravatar
bluestar
Beiträge: 965
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von bluestar » 05.03.2019 10:45:20

DerT hat geschrieben: ↑ zum Beitrag ↑
04.03.2019 17:28:55

Code: Alles auswählen

$TTL 300        ; 5 minutes
Beispiel3         	A       192.168.170.12
                        TXT     "313440b5ea447042d99432226b809ca6a9"
DerT hat geschrieben: ↑ zum Beitrag ↑
04.03.2019 17:28:55
Kann mit jemand sagen was der TXT Parameter angibt?
Der TXT Parameter kommt vom DHCPD, damit selbiger validieren kann, dass er den A-Eintrag auch angelegt hat.
DerT hat geschrieben: ↑ zum Beitrag ↑
04.03.2019 17:28:55
Warum haben die Einträge unterschiedliche TTLs?
Finde 5 Minuten etwas arg kurz :D.
Alle Einträge vom DHCPD haben eine TTL von 300 Sekunden, das entspricht exakt der Hälfte deiner default-lease-time 600;, die TTLs Einträge für deine manuellen Einträge sind 2 Tage => genauer gesagt, die Standard-TTL (siehe 2. Zeile: $TTL 172800.
DerT hat geschrieben: ↑ zum Beitrag ↑
04.03.2019 17:28:55
Damit mein statischer Eintrag (pi-srv) funktioniert musste ich ihn unter den Eintrag $ORIGIN angl.loc. setzen.
Musst du nicht, du kannst auch ihn auch davor setzen pi-srv.angel.loc. schreiben.
DerT hat geschrieben: ↑ zum Beitrag ↑
04.03.2019 17:28:55
Warum?
Du solltest dir mal die Dokumentation zu dem Aufbau einer Zonen-Datei bei bind anschauen.
DerT hat geschrieben: ↑ zum Beitrag ↑
04.03.2019 17:28:55
Kann ich irgendwie einen neuen "Bereich" in der Datei anlegen damit ich direkt sehe welche Einträge statisch und welche dynamisch gesetzte wurden.
Nein, in Zonendateien werden die Einträge alphabetisch sortiert ... Wobei natürlich die $ORGIGIN und $TTL keine Einträge sondern Konfigurations-Keywords sind.

DerT
Beiträge: 4
Registriert: 26.02.2019 21:44:59

Re: DDNS mit ISC-DHCP-SERVER und BIND9

Beitrag von DerT » 06.03.2019 19:18:08

Hallo,

danke für die Antworten.

Damit sind erstmal keine weiteren offenen Fragen.

Gruß
T

Antworten