Installation eines DNS-Servers auf einem Raspberry Pi 3B

green004-bind9-dns-beitragsbild

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!!!!!

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert