Heute installieren wir mal ohne Raspberry Pi und Pi-hole einen DNS / Bind Server in Azure zur Auflösung von Azure Private DNS Zonen.
Für einige weitere Blogartikel und praktische Übungen brauche ich einen Bind Server unter Linux. Dieser soll uns in Azure als Forwarder dienen um DNS Anfragen für Private Endpoints in Azure Private DNS Zonen abzufragen. Wir bereiten hier für Testzwecke die Legacy / Infrastructure as a Service Variante vor. Jedem der sich das neu anschaut, dem empfehle ich sich den Azure Private DNS Resolver anzuschauen. Der Service ist seit kurzem offiziell verfügbar.
Dazu legen wir uns in Azure eine minimal kleine VM an. Ich nehme dazu eine B1s und deploye darauf mein bevorzugtes Linux “Ubuntu Server 20.04 LTS”.
Das sind die Minimum Specs laut Ubuntu Dokumentation, also wird das keine Rennmaschine, aber mit ca 10 USD pro Monat etwas das 24×7 in Azure laufen kann.
Trotz “minimum specs” und einer Standard SSD statt Premium SSD, war das Deployment in unter 5 Minuten erledigt. Nun gehts per SSH und Putty auf den Server.
Wir machen auf dem System minimalen Aufwand, d.h. wir belassen es bei der dynamischen IP und den automatischen Updates und dank Azure hat sich das System auch bereits mit dem Hostname installiert.
Als erstes schauen wir ob unser Server seine aktuellen Updates hat und installieren die notwendigen Bind Komponenten
sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc
Beides sollte selbst auf diesem sehr kleinen System in einer Minute erledigt sein und dann so aussehen:
Nun sicheren wir die config Datei des Bind Dienstes weg und stoppen den DNS / named Dienst
sudo cp /etc/bind/named.conf /etc/bind/named.conf.orig
sudo systemctl stop named
Zur Anpassung der Einstellungen für das Forwarding müssen wir nun in die /etc/bind/named.conf.options
sudo nano /etc/bind/named.conf.options
Wir ändern die Zeilen für die Forwardereinstellungen und dort muss unbedingt für unseren Anwendungsfall “Auflösung von Azure DNS Private Zone EInträgen” die 168.63.129.16 stehen. Was ist die 168.63.129.16 kann Microsoft selber am besten beantworten.
Eure /etc/bind/named.conf.options sollte nun wie folgt aussehen.
Wer die Conectivity testen will, der kann das am schnellsten mit folgenden Commands tun:
sudo apt install traceroute
sudo traceroute -T -p 80 168.63.129.16
Ihr bekommt dann folgendes Ergebnis.
Wir starten nun wieder den Bind / named Dienst.
sudo systemctl start named
Wenn alle Firewallregeln vorhanden sind, dann kann man per nslookup nun von einem beliebigen System bereits die Funktion testen.
Bei mir sieht der Test mit meinem Ubuntu Server und der IP 10.0.2.6 und dem Azure Private DNS Zone A Record ah-admin-westeurope.privatelink.documents.azure.com mit der IP 10.0.2.8 wie folgt aus:
Hier ist zum Vergleich meine Azure Private DNS Zone mit A-Record
Azure DNS Private Zones und die Namensauflösung sind ein spannendes Thema. Zusammen mit diesem Server werden wir uns das Thema in Zukunft weiter anschauen. Wer Interesse hat, dem empfehle ich diese beiden Microsoft Artikel:
https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns
Bonustipp (Stand 1 / 2023) : Wer sich schnell einen Azure Private Endpoint anlegen lassen will, da nimmt am besten eine cosmos DB – No SQL und kann dort einige zusätzliche “Free Credits” mitnehmen.