KEA DHCP DDNS Netzwerk und Serveradministration: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
| − | =Auf | + | = Dynamisches DNS mit Kea und BIND9 = |
| − | + | ||
| − | + | 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. | |
| − | + | ||
| − | + | == Technischer Ablauf und Theorie == | |
| − | *cat /etc/bind/named.conf.local | + | |
| − | + | 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 | |
| − | + | ||
| − | + | key "it213.key" { | |
| − | + | algorithm hmac-sha256; | |
| − | + | secret "Y8zioRKf3L0lWlhZ5FReSdegcnWVD53IIqT9PPle5cU="; | |
| − | + | }; | |
| − | : | + | |
| − | + | zone "it213.int" { | |
| − | = | + | type master; |
| − | + | file "/var/cache/bind/it213.int"; | |
| − | *sudo apt update | + | 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"; }; | ||
| + | }; | ||
| + | |||
| + | * Dienst neu starten: | ||
| + | systemctl restart bind9 | ||
| + | |||
| + | == Konfiguration des Kea Servers == | ||
| + | |||
| + | * Installation des DDNS-Dienstes: | ||
| + | sudo apt update | ||
| + | sudo apt install kea-dhcp-ddns-server | ||
| + | |||
| + | * Konfiguration DHCPv4 (/etc/kea/kea-dhcp4.conf): | ||
{ | { | ||
"Dhcp4": { | "Dhcp4": { | ||
"interfaces-config": { | "interfaces-config": { | ||
"interfaces": [ "enp0s3" ] | "interfaces": [ "enp0s3" ] | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}, | }, | ||
"dhcp-ddns": { | "dhcp-ddns": { | ||
| Zeile 61: | Zeile 72: | ||
"ddns-update-on-renew": true, | "ddns-update-on-renew": true, | ||
"ddns-qualifying-suffix": "it213.int", | "ddns-qualifying-suffix": "it213.int", | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
"subnet4": [ | "subnet4": [ | ||
{ | { | ||
| Zeile 72: | Zeile 77: | ||
"subnet": "172.26.213.0/24", | "subnet": "172.26.213.0/24", | ||
"pools": [ { "pool": "172.26.213.100 - 172.26.213.200" } ], | "pools": [ { "pool": "172.26.213.100 - 172.26.213.200" } ], | ||
| − | |||
"reservations": [ | "reservations": [ | ||
{ | { | ||
| Zeile 80: | Zeile 84: | ||
} | } | ||
] | ] | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
], | ], | ||
| Zeile 98: | Zeile 90: | ||
"name": "kea-dhcp4", | "name": "kea-dhcp4", | ||
"output_options": [ { "output": "/var/log/kea/kea-dhcp4.log" } ], | "output_options": [ { "output": "/var/log/kea/kea-dhcp4.log" } ], | ||
| − | "severity": " | + | "severity": "INFO" |
| − | |||
} | } | ||
] | ] | ||
} | } | ||
} | } | ||
| − | + | ||
| − | + | * Konfiguration DDNS-Daemon (/etc/kea/kea-dhcp-ddns.conf): | |
| − | |||
| − | |||
{ | { | ||
"DhcpDdns": { | "DhcpDdns": { | ||
"ip-address": "127.0.0.1", | "ip-address": "127.0.0.1", | ||
"port": 53001, | "port": 53001, | ||
| − | |||
| − | |||
| − | |||
| − | |||
"tsig-keys": [ | "tsig-keys": [ | ||
{ | { | ||
| Zeile 150: | Zeile 135: | ||
"name": "kea-dhcp-ddns", | "name": "kea-dhcp-ddns", | ||
"output_options": [ { "output": "/var/log/kea/kea-ddns.log" } ], | "output_options": [ { "output": "/var/log/kea/kea-ddns.log" } ], | ||
| − | "severity": " | + | "severity": "INFO" |
| − | |||
} | } | ||
] | ] | ||
} | } | ||
} | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | == Restart und Debugging == | |
| + | |||
| + | * Dienste neu starten: | ||
| + | systemctl restart kea-dhcp4-server 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). | ||
| + | * Suffix: Ohne ddns-qualifying-suffix in der kea-dhcp4.conf schlägt der Zonen-Match im DDNS-Daemon fehl. | ||
| + | * AppArmor: Bei Zugriffsproblemen (Unable to open file) AppArmor-Profile prüfen oder deaktivieren. | ||
Version vom 31. März 2026, 13:35 Uhr
Dynamisches DNS mit Kea und BIND9
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.
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
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"; };
};
- Dienst neu starten:
systemctl restart bind9
Konfiguration des Kea Servers
- Installation des DDNS-Dienstes:
sudo apt update sudo apt install kea-dhcp-ddns-server
- Konfiguration DHCPv4 (/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"
}
]
}
}
- Konfiguration DDNS-Daemon (/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 Debugging
- Dienste neu starten:
systemctl restart kea-dhcp4-server 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).
- Suffix: Ohne ddns-qualifying-suffix in der kea-dhcp4.conf schlägt der Zonen-Match im DDNS-Daemon fehl.
- AppArmor: Bei Zugriffsproblemen (Unable to open file) AppArmor-Profile prüfen oder deaktivieren.