In meinem lokalen Netzwerk hat sich eine Anzahl an netzwerkfähigen Geräten angesammelt, das beginnt beim Internetrouter über gemanagte Switche, Drucker, WLAN-Accesspoints bis zu Notebooks und Server. Geräte, die am Kupfernetz hängen und auch einige WLAN-Komponenten sind mit statischen IP-Adressen konfiguriert, das macht die Wartung um einiges einfacher. Ein eigener DNS-Server soll jetzt die Verwaltung dieser statischen IP-Adressen organisieren. Es werden drei Subnetze im LAN betrieben. Im wesentlichen wird aber nur ein Subnetz als Homenetz betrieben. Dieses ist ein Netz mit einer 24er-Subnetzmaske, also sind es am Ende höchstens rund 250 Clients, die mit dem DNS-Server zu supporten sind.
Eine Recherche hat mir das Programmpaket BIND https://de.wikipedia.org/wiki/BIND geliefert, aktuell ist im September 2025 die Version 9.20.12. BIND steht für Berkeley Internet Name Domain, die Ursprünge gehen in die 1980er Jahre zurück. Ich habe ein verbreitetes Programm gesucht, das trotzdem einfach zu installieren ist und in der Basisversion eine übersichtliche, ggf. manuelle Konfiguration erlaubt. Der DNS-Dienst soll nur das LAN nutzen, während alle nach außen zeigenden Internetadressen über den Internetrouter aufgelöst werden.
Da der DNS-Dienst in der Basisausführung keine hohe Rechenleistung, aber eine permanente Verfügbarkeit erfordert, habe ich mich entschlossen, hierfür einen Raspberry Pi einzusetzen. Auf der einen Seite setze ich sehr gerne den Ubuntu Server LTS ein, auf der anderen Seite kann ich ruhig einen vorhandenen, wenn auch etwas älteren Raspberry Pi nutzen. So ergibt sich ein Pärchen aus Raspberry Pi 3B mit dem Betriebssystem Ubuntu Server 24.04 LTS. Damit kann hier sofort das Template https://wessos-kramkiste.de/template-ubuntu-server-24-04-2/ genutzt werden. Ich starte also mit dem Installieren des Templates auf eine frische 16-GB-Micro-SD-Karte.
Basisinstallation DNS-Server
Als Abschluss der Templateinstallation wurde der Inhalt der SD-Karte als Image template-raspi-24-image.img https://wessos-kramkiste.de/template-ubuntu-server-24-04-2/#sicherntemplate auf ein Backuplaufwerk zurückgeschrieben. Man schreibt dieses Image jetzt wieder mithilfe von Win32DiskImager auf eine frische 16-GB-microSD-Karte. Anschließend startet man den Raspberry Pi, für das Login ist im Template der Benutzer installer eingerichtet.
Der DNS-Server soll folgende vom Template abweichende Einstellungen erhalten:
- Hostname: green004
- Domäne: wessonet.de
- IP-Adresse: 172.24.12.133
- Nameserver lokal: 172.24.12.133
- Nameserver Internet: 172.24.12.1
Hierzu sind nachfolgende Dateien anzupassen, abschließend ist der Raspi neu zu starten:
sudo vi /etc/hostnames
Eintragen: green004
sudo vi /etc/hosts
Eintragen: 172.24.12.133 green004.wessonet.de green004
sudo vi /etc/netplan/50-cloud-init.yaml
network:
version: 2
renderer: networkd
wifis:
wlan0:
dhcp4: no
dhcp6: no
addresses:
- 172.24.12.133/24
routes:
- to: default
via: 172.24.12.1
nameservers:
addresses: [ 172.24.12.133, 172.24.12.1 ]
access-points:
TOMCAT24:
password: <password>
sudo netplan generate
sudo netplan apply
sudo reboot
Basisinstallation bind9
Vor der Installation von BIND werden nochmals die Paketquellen aktualisiert und der Server upgedatet:
sudo apt update sudo apt upgrade sudo apt install bind9
In der Datei /etc/resolv.conf ist nach localhost der Nameserver einzutragen, der IP-Adressen gegen das Internet auflöst:
sudo ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Aug 9 11:56 /etc/resolv.conf -> ...
... ../run/systemd/resolve/stub-resolv.conf
sudo rm /etc/resolv.conf
sudo vi /etc/resolv.conf
nameserver 127.0.0.1
nameserver 172.24.12.1
search wessonet.de
Anpassung bind9
Die Konfigurationsdateien von BIND befinden sich im Ordner /etc/bind/
Änderungen in named.conf.local:
sudo vi /etc/bind/named.conf.local
zone "wessonet.de" {
type master;
notify no;
file "/etc/bind/db.wessonet.de";
};
zone "12.24.172.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.12.24.172";
};
Die Forward-Lookup-Zonendatei hat folgenden Inhalt, beschränkt zunächst auf den Server manitou. Am Ende der Datei ist unbedingt eine Leerzeile einzufügen:
sudo vi /etc/bind/db.wessonet.de<br>$TTL 604800<br>@ IN SOA green004.wessonet.de. root.wessonet.de. (<br>1 ; Serial<br>604800 ; Refresh (7 Tage)<br>86400 ; Retry (1 Tag)<br>2419200 ; Expire (28 Tage)<br>604800 ) ; Negative Cache TTL (7 Tage)<br>@ IN NS green004.wessonet.de.<br>IN A 172.24.12.133<br>green004 IN A 172.24.12.133<br>manitou IN A 172.24.12.25
Die Reverse-Lookup-Zonendatei hat folgenden Inhalt, beschränkt zunächst auf den Server manitou. Am Ende der Datei ist unbedingt eine Leerzeile einzufügen:
sudo vi /etc/bind/db.12.24.172<br>$TTL 604800<br>@ IN SOA green004.wessonet.de. root.wessonet.de. (<br>1 ; Serial<br>604800 ; Refresh (7 Tage)<br>86400 ; Retry (1 Tag)<br>2419200 ; Expire (28 Tage)<br>604800 ) ; Negative Cache TTL (7 Tage)<br>@ IN NS green004.wessonet.de.<br>25 IN PTR manitou.wessonet.de.<br>133 IN PTR green004.wessonet.de.
Die Zonendateien werden neu geladen und können auf korrekte Syntax geprüft werden:
sudo systemctl restart named<br>cd /etc/bind<br>named-checkzone db.wessonet.de db.12.24.172<br>zone db.wessonet.de/IN: loaded serial 1<br>OK
Abschließend ist auf allen Clients der neue Nameserver 172.24.12.133 einzutragen und kann danach getestet werden:
TESTFOTO!!!!!
