Einen kleinen DNS Server fürs Homelab aufsetzen
Einen kleinen DNS Server fürs Homelab aufzusetzen ist eigentlich ganz einfach. Seit vSphere 7 braucht die VCSA für das Setup zwingend einen DNS Server.
Dieser Beitrag ist von 2021. Er bleibt online, weil er nach wie vor nachgefragt wird, beschreibt aber einen Produktstand von damals.
Einen kleinen DNS Server fürs Homelab aufsetzen
Einen kleinen DNS Server fürs Homelab aufzusetzen ist eigentlich ganz einfach. Seit vSphere 7 braucht die VCSA (vCenter Server Appliance) für das Setup zwingend einen DNS Server. Frühere Versionen liessen teilweise reine IP-Deployments zu, mit den aktuellen kommst du ohne DNS Server nicht mehr durch.
Ich war gerade dabei, ein neues Homelab komplett auf meinem MacBook in VMware Fusion aufzusetzen, als ich über diese Änderung in vSphere 7 stolperte. Wie bin ich es angegangen? Ich habe eine kleine Ubuntu Server VM mit bind9 gebaut.
Ich hatte überlegt, das als Docker Container laufen zu lassen, denn der Grund für das neue vSphere Homelab war ja gerade, mehr über die Vorzüge von vSphere with Tanzu in den aktuellen Releases zu lernen. Weil ich mit Docker und Containern aber noch nicht so vertraut bin, habe ich einen Weg gewählt, den ich gut kenne, um diese Anforderung schnell abzuhaken.
Schritt eins:
Lade das aktuelle Ubuntu Server Image aus dem offiziellen Ubuntu Repo (https://ubuntu.com/download/server): 
Schritt zwei:
Erstelle eine Custom VM in VMware Fusion oder in Workstation, wenn du auf Windows arbeitest, häng das heruntergeladene Ubuntu Server ISO an und folge dem Assistenten:

Ich habe auf Easy Install verzichtet, weil ich Ubuntu Server ewig nicht mehr von Hand installiert hatte.

Die Standardeinstellung «Legacy BIOS» habe ich gelassen.

Das sind die Standardwerte für einen Ubuntu Server. Wenn dein Homelab knapp an Ressourcen ist, kannst du den RAM auf 1 GB reduzieren.

Nach «Finish» wirst du nach dem Namen der VM gefragt. Ich habe meine «homelab-dns» genannt.
Schritt drei:
Ubuntu Server installieren
Auf die Installation gehe ich nicht im Detail ein, sie ist einfach. Ich habe fast alles auf den Standardwerten gelassen und nur den openssh-server installiert, um mich vom Terminal aus zu verbinden.
Schritt vier:
BIND9 auf dem Ubuntu Server installieren
Ich habe BIND9 als DNS Server gewählt, weil er weit verbreitet ist und du schnell Hilfe findest, wenn du feststeckst. Für die Installation habe ich mich mit meinem Ubuntu Server «homelab-dns» verbunden und eingegeben:
sudo apt-get install bind9
Nach der Installation muss BIND konfiguriert werden.
Schritt fünf:
BIND konfigurieren
Die erste Datei, die wir anfassen, ist /etc/bind/named.conf.local
// Forward Zone
zone "virtual.lab" {
type master;
file "/etc/bind/zones/virtual.lab.db";
};
// Reverse Zone
zone "108.16.172.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.108.16.172.in-addr.arpa";
};
Damit weiss BIND, wo die eigentlichen Lookup-Dateien liegen.
Als Nächstes kommen genau diese Dateien. Wir legen das Verzeichnis «zones» an und erstellen die konfigurierten Dateien.
mkdir -p /etc/bind/zones
Dann die erste Datei mit dem Editor deiner Wahl, bei mir VIM:
vim /etc/bind/zones/virtual.lab.db
Und hier kommen die Forward-Lookup-Einträge hinein:
$TTL 86400 ; 24 hours / 1d
; $TTL used for all RRs without explicit TTL value
$ORIGIN virtual.lab.
@ 1D IN SOA dnsserver.virtual.lab. hostmaster.virtual.lab. (
2002022401 ; serial
3H ; refresh
15 ; retry
1w ; expire
3h ; minimum
)
virtual.lab. IN NS dnsserver.virtual.lab.
dnsserver IN A 172.16.108.53
vcsa IN A 172.16.108.2
esxhost1 IN A 172.16.108.3
esxhost2 IN A 172.16.108.4
Danach die Datei für die Reverse-Lookup-Zone:
vim /etc/bind/zones/rev.108.16.172.in-addr.arpa
Und hier das Reverse Mapping:
@ IN SOA virtual.lab. admin.virtual.lab. (
2006081401;
28800;
604800;
604800;
86400
)
IN NS dnsserver.virtual.lab.
53 IN PTR virtual.lab
2 IN PTR vcsa
3 IN PTR esxhost1
4 IN PTR esxhost2
Schritt sechs:
BIND neu starten und die Dateien prüfen
Zum Schluss startest du BIND neu, damit er die neue Konfiguration verwendet:
sudo service bind9 restart
Und optional kannst du prüfen, ob die Dateien sauber konfiguriert sind:
named-checkzone virtual.lab /etc/bind/zones/virtual.lab.db
named-checkzone 172.16.108.0 /etc/bind/zones/rev.108.16.172.in-addr.arpa
Fazit
Das war es. Du hast einen kleinen DNS Server fürs Homelab. Wenn du Fragen hast, melde dich oder schreib einen Kommentar. Als Nächstes schaue ich mir VMware Tanzu und Container an, und ich schreibe einen weiteren Post, in dem ich genau dasselbe mit einem schlanken Docker Container mache.