KEA DHCP DDNS Netzwerk und Serveradministration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
= Dynamisches DNS mit Kea und BIND9 =
+
=Auf unserem Nameserver=
 
+
;Key erzeugen
Diese Anleitung beschreibt die Verknüpfung von Kea DHCPv4 mit einem BIND9 Nameserver (10.88.213.21) über den Kea-DHCP-DDNS Daemon unter Verwendung von TSIG-Keys.
+
*cd /etc/bind
 
+
*tsig-keygen -a HMAC-SHA256 it213.key >> /etc/bind/named.conf.local
== Technischer Ablauf und Theorie ==
 
 
 
Das Dynamic DNS (DDNS) Update sorgt für die automatische Synchronisation zwischen DHCP-Leases und DNS-Records.
 
 
 
* Der Client sendet beim DHCP-Request seinen Hostnamen (Option 12).
 
* Kea-DHCPv4 weist eine IP zu und generiert einen Name Change Request (NCR).
 
* Durch das qualifying-suffix wird der Hostname zum Fully Qualified Domain Name (FQDN) ergänzt (z.B. client.it213.int).
 
* Der Kea-DHCP-DDNS Daemon empfängt den NCR auf Port 53001, signiert ihn mit dem TSIG-Key und sendet ein Update-Paket an den BIND9-Server.
 
* BIND9 prüft die Signatur (allow-update) und aktualisiert Forward-Zone (A-Record) sowie Reverse-Zone (PTR-Record).
 
 
 
== Konfiguration des Nameservers ==
 
 
 
Auf dem Nameserver (ns.it213.int) wird der TSIG-Key erstellt und den Zonen zugewiesen.
 
 
 
* Key erzeugen:
 
cd /etc/bind
 
tsig-keygen -a HMAC-SHA256 it213.key >> /etc/bind/named.conf.local
 
 
 
* Zonenkonfiguration anpassen:
 
cat /etc/bind/named.conf.local
 
  
 +
;Zonen und Key konfigurieren
 +
*cat /etc/bind/named.conf.local
 +
<pre>
 
key "it213.key" {
 
key "it213.key" {
    algorithm hmac-sha256;
+
    algorithm hmac-sha256;
    secret "Y8zioRKf3L0lWlhZ5FReSdegcnWVD53IIqT9PPle5cU=";
+
    secret "Y8zioRKf3L0lWlhZ5FReSdegcnWVD53IIqT9PPle5cU=";
};
+
};  
  
 
zone "it213.int" {
 
zone "it213.int" {
    type master;
+
    type master;
    file "/var/cache/bind/it213.int";
+
    file "/var/cache/bind/it213.int";
    allow-update { key "it213.key"; };
+
    allow-update { key "it213.key"; };
};
+
};  
  
 
zone "213.88.10.in-addr.arpa" {
 
zone "213.88.10.in-addr.arpa" {
    type master;
+
    type master;
    file "/var/cache/bind/213.88.10.in-addr.arpa";
+
    file "/var/cache/bind/213.88.10.in-addr.arpa";
    allow-update { key "it213.key"; };
+
    allow-update { key "it213.key"; };
};
+
};  
  
 
zone "213.26.172.in-addr.arpa" {
 
zone "213.26.172.in-addr.arpa" {
    type master;
+
    type master;
    file "/var/cache/bind/213.26.172.in-addr.arpa";
+
    file "/var/cache/bind/213.26.172.in-addr.arpa";
    allow-update { key "it213.key"; };
+
    allow-update { key "it213.key"; };
 
};
 
};
 +
</pre>
  
* Dienst neu starten:
+
;Nameserver neustarten
systemctl restart bind9
+
*systemctl restart named
  
== Konfiguration des Kea Servers ==
+
=Auf dem Kea Server=
 +
;Technischer Ablauf (Theorie)
 +
*'''DHCP-Request:''' Client sendet Hostnamen.
 +
*'''NCR (Name Change Request):''' Kea-DHCP4 erstellt Update-Paket mit FQDN (durch ddns-qualifying-suffix).
 +
*'''TSIG:''' Kea-DDNS signiert das Paket mit dem it213.key.
 +
*'''DNS-Update:''' BIND9 empfängt Update und schreibt A- sowie PTR-Records.
  
* Installation des DDNS-Dienstes:
+
;Installation DDNS-Server
sudo apt update
+
*sudo apt update
sudo apt install kea-dhcp-ddns-server
+
*sudo apt install kea-dhcp-ddns-server
  
* Konfiguration DHCPv4 (/etc/kea/kea-dhcp4.conf):
+
;kea-dhcp4.conf anpassen
 +
*cat /etc/kea/kea-dhcp4.conf
 +
<pre>
 
{
 
{
 
   "Dhcp4": {
 
   "Dhcp4": {
Zeile 95: Zeile 86:
 
   }
 
   }
 
}
 
}
 +
</pre>
  
* Konfiguration DDNS-Daemon (/etc/kea/kea-dhcp-ddns.conf):
+
;kea-dhcp-ddns.conf erstellen
 +
*cat /etc/kea/kea-dhcp-ddns.conf
 +
<pre>
 
{
 
{
 
   "DhcpDdns": {
 
   "DhcpDdns": {
Zeile 140: Zeile 134:
 
   }
 
   }
 
}
 
}
 +
</pre>
  
== Restart und Debugging ==
+
=Restart und Debuggen=
 
+
;Dienste neustarten
* Dienste neu starten:
+
*systemctl restart kea-dhcp4-server
systemctl restart kea-dhcp4-server kea-dhcp-ddns-server
+
*systemctl restart kea-dhcp-ddns-server
 
 
* Fehleranalyse:
 
Bei Problemen das Logging auf "severity": "DEBUG" und "debuglevel": 99 setzen.
 
Logs live einsehen:
 
tail -f /var/log/kea/kea-dhcp4.log
 
tail -f /var/log/kea/kea-ddns.log
 
 
 
* Überprüfung der Einträge im DNS:
 
dig @10.88.213.21 client.it213.int
 
dig @10.88.213.21 -x 172.26.213.99
 
 
 
== Wichtige Hinweise ==
 
  
* Schreibrechte: BIND benötigt Schreibrechte im Verzeichnis /var/cache/bind/ für die Journal-Dateien (.jnl).
+
;Debugging-Hinweise
* Suffix: Ohne ddns-qualifying-suffix in der kea-dhcp4.conf schlägt der Zonen-Match im DDNS-Daemon fehl.
+
*'''Logs prüfen:''' tail -f /var/log/kea/kea-ddns.log
* AppArmor: Bei Zugriffsproblemen (Unable to open file) AppArmor-Profile prüfen oder deaktivieren.
+
*'''Debug-Level:''' Bei Fehlern "severity" auf "DEBUG" setzen. Nach Erfolg wieder auf "INFO" zurückstellen.
 +
*'''Eintrag prüfen:''' dig @10.88.213.21 client.it213.int
 +
*'''AppArmor:''' Falls Dateien nicht geöffnet werden können, AppArmor Profile unter /etc/apparmor.d/disable/ prüfen.
 +
*'''Schreibrechte:''' BIND benötigt Schreibrechte für /var/cache/bind/ (Journal-Dateien).

Version vom 31. März 2026, 13:37 Uhr

Auf unserem Nameserver

Key erzeugen
  • cd /etc/bind
  • tsig-keygen -a HMAC-SHA256 it213.key >> /etc/bind/named.conf.local
Zonen und Key konfigurieren
  • cat /etc/bind/named.conf.local
key "it213.key" {
     algorithm hmac-sha256;
     secret "Y8zioRKf3L0lWlhZ5FReSdegcnWVD53IIqT9PPle5cU=";
}; 

zone "it213.int" {
     type master;
     file "/var/cache/bind/it213.int";
     allow-update { key "it213.key"; };
}; 

zone "213.88.10.in-addr.arpa" {
     type master;
     file "/var/cache/bind/213.88.10.in-addr.arpa";
     allow-update { key "it213.key"; };
}; 

zone "213.26.172.in-addr.arpa" {
     type master;
     file "/var/cache/bind/213.26.172.in-addr.arpa";
     allow-update { key "it213.key"; };
};
Nameserver neustarten
  • systemctl restart named

Auf dem Kea Server

Technischer Ablauf (Theorie)
  • DHCP-Request: Client sendet Hostnamen.
  • NCR (Name Change Request): Kea-DHCP4 erstellt Update-Paket mit FQDN (durch ddns-qualifying-suffix).
  • TSIG: Kea-DDNS signiert das Paket mit dem it213.key.
  • DNS-Update: BIND9 empfängt Update und schreibt A- sowie PTR-Records.
Installation DDNS-Server
  • sudo apt update
  • sudo apt install kea-dhcp-ddns-server
kea-dhcp4.conf anpassen
  • cat /etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "enp0s3" ]
    },
    "dhcp-ddns": {
      "enable-updates": true,
      "server-ip": "127.0.0.1",
      "server-port": 53001
    },
    "ddns-send-updates": true,
    "ddns-override-no-update": true,
    "ddns-override-client-update": true,
    "ddns-update-on-renew": true,
    "ddns-qualifying-suffix": "it213.int",
    "subnet4": [
      {
        "id": 1,
        "subnet": "172.26.213.0/24",
        "pools": [ { "pool": "172.26.213.100 - 172.26.213.200" } ],
        "reservations": [
          {
            "hw-address": "08:00:27:5d:76:5d",
            "ip-address": "172.26.213.99",
            "hostname": "client"
          }
        ]
      }
    ],
    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [ { "output": "/var/log/kea/kea-dhcp4.log" } ],
        "severity": "INFO"
      }
    ]
  }
}
kea-dhcp-ddns.conf erstellen
  • cat /etc/kea/kea-dhcp-ddns.conf
{
  "DhcpDdns": {
    "ip-address": "127.0.0.1",
    "port": 53001,
    "tsig-keys": [
      {
        "name": "it213.key",
        "algorithm": "HMAC-SHA256",
        "secret": "Y8zioRKf3L0lWlhZ5FReSdegcnWVD53IIqT9PPle5cU="
      }
    ],
    "forward-ddns": {
      "ddns-domains": [
        {
          "name": "it213.int.",
          "key-name": "it213.key",
          "dns-servers": [ { "ip-address": "10.88.213.21" } ]
        }
      ]
    },
    "reverse-ddns": {
      "ddns-domains": [
        {
          "name": "213.88.10.in-addr.arpa.",
          "key-name": "it213.key",
          "dns-servers": [ { "ip-address": "10.88.213.21" } ]
        },
        {
          "name": "213.26.172.in-addr.arpa.",
          "key-name": "it213.key",
          "dns-servers": [ { "ip-address": "10.88.213.21" } ]
        }
      ]
    },
    "loggers": [
      {
        "name": "kea-dhcp-ddns",
        "output_options": [ { "output": "/var/log/kea/kea-ddns.log" } ],
        "severity": "INFO"
      }
    ]
  }
}

Restart und Debuggen

Dienste neustarten
  • systemctl restart kea-dhcp4-server
  • systemctl restart kea-dhcp-ddns-server
Debugging-Hinweise
  • Logs prüfen: tail -f /var/log/kea/kea-ddns.log
  • Debug-Level: Bei Fehlern "severity" auf "DEBUG" setzen. Nach Erfolg wieder auf "INFO" zurückstellen.
  • Eintrag prüfen: dig @10.88.213.21 client.it213.int
  • AppArmor: Falls Dateien nicht geöffnet werden können, AppArmor Profile unter /etc/apparmor.d/disable/ prüfen.
  • Schreibrechte: BIND benötigt Schreibrechte für /var/cache/bind/ (Journal-Dateien).