hack-hro wiki:
Auf Gerät

ditto

Port
53
LXC

DNS

Hostname
dns.hack-hro.de

Was ist das?

DNS ist ein Namensauflösungssystem - also die Umwandlung von Hostnamen in IP-Adressen.

Kurze Einführung in das Domain-System:

Da wir ein Hackspace sind und Lust aufs Basteln haben, ist es fraglos viel aufregender, wenn wir unsere DNS-Zone selbst verwalten :)

Was wollen wir?

Umsetzung

Server

Wir verwenden aktuell folgende externe DNS-Server (Replicas):

Beide Replicas werden durch Zonen-Transfers des Master-DNS-Servers im DNS Container aktualisiert.

Master-Einstellungen

Auf dem DNS Container ist PowerDNS installiert. Die Einstellungen liegen unter /etc/powerdns/. Nachdem wir 2014 mit dem Bind-Zonen-Format begonnen haben, sind wir später auf das PostgresQL-Backend umgestiegen. Das Admin-Interface für PowerDNS ist unter dns.hack-hro.de erreichbar. Zuvor ist eine Anmeldung via ldap-Zugangsdaten notwendig. Anschließend wird das PowerAdmin-Passwort benötigt.

Admin-Passwort-Träger:innen: * Konrad * lars

Replica-Einstellungen

Der Zonen-Transfer wird von verschiedenen DNS-Implementierungen unterstützt. Wir können also unabhängig von dem spezifischen Master-DNS-Server auch anderen Implementierungen als Replicas verwenden.

Bind

Bind ist eine verbreitete DNS-Implementierung.

Die folgende Zonen-Definition ist ausreichend:

zone "hack-hro.de" {
    type slave;
    file "hack-hro.de.zone";
    masters { 5.45.100.156 };
    allow-transfer { none; };
};

PowerDNS

PowerDNS ist ein freier DNS-Server, der verschiedene Daten-Backends (Datenbanken, LDAP, Skripte, ...) unterstützt.

Die allgemeine PowerDNS-Konfiguration ist sehr übersichtlich:

master=no
slave=yes
launch=bind
bind-config=/etc/powerdns/bindbackend.conf
local-address=ipv4-adresse

Die letzte Zeile sollte um die IPv4 Adresse eures Server ergänzt werden. Das ist insbesondere dann wichtig, wenn euer Server mehrere IP-Adressen hat, weil die Antworten des DNS dann verloren gehen können. Unter der obigen Verwendung des bind-Backends (also mit Zone-Definitionen im Bind-Format) lässt sich unsere Zone folgendermaßen in der Datei /etc/powerdns/bindbackend.conf definieren:

zone "hack-hro.de" {
    type slave;
    masters { 5.45.100.156 };
    file "/var/run/powerdns/pdns-hack-hro.de.zone";
};

Übliche Aktivitäten

DNS-Einträge abfragen

Das Programm dig (im Debian-Paket dnsutils enthalten) ist ein komfortables Werkzeug zur Analyse von DNS-Einträgen. Alternativ ist auf fast jedem Rechner das weniger flexible Werkzeug nslookup verfügbar.

Beispiele für die Nutzung:

# IP eines Hostnamen erfragen
dig hack-hro.de

# authorative Nameserver einer Domain erfragen
dig NS hack-hro.de

# Mailserver für eine Domain abfragen
dig MX hack-hro.de

# unseren Master-DNS-Server abfragen (nicht-standard Port)
dig www.hack-hro.de @5.45.100.156

# unsere beiden Replica-DNS-Server abfragen
dig www.hack-hro.de @ns1.farbdev.org
dig www.hack-hro.de @ns2.farbdev.org

# rückwärtige Namensauflösung (IP zu Name)
dig -x 8.8.8.8

DNS-Einträge ändern / hinzufügen / löschen

Du möchtest einen weiteren Hostname unterhalb von hack-hro.de eintragen oder bestehende Einträge ändern? Die folgenden Schritte genügen dafür:

Die neuen Einträge sind unmittelbar auf dem Master-Server verfügbar. Die Replica-Server (und cachende Nameserver von ISPs und anderen) werden erst innerhalb der nächsten Stunden die neuen Einträge übernehmen.

Weiteren Replica-DNS-Server hinzufügen

Falls du administrativen Zugriff auf einen öffentlich erreichbaren Rechner mit statischer IP hast, dann kannst du gern einen weiteren DNS-Server zu unserer Domain-Auflösung hinzufügen.

Die folgenden Schritte sind erforderlich:

DNS-Besonderheiten

CNAME-Einträge verbergen alle Einträge auf selber Ebene

Wenn ein CNAME-Eintrag existiert, dann ist es nicht möglich, für denselben Namen weitere Einträge (beispielsweise NS, MX oder SRV) anzulegen.

Somit sollte jede Second-Level-Domain (z.B. hack-hro.de durch einen A- anstelle eines CNAME-Eintrags aufgelöst werden, da hier üblicherweise NS- und MX-Einträge notwendig sind.

CNAME-Einträge nicht verketten

Die RC 2181 in Punkt 10.3 sagt aus, dass CNAMEs nicht verkettet werden mögen. Manche Nameserver lösen dies wohl trotzdem auf - zumindest bei Bind scheint es jedoch problematisch zu sein.

Redundante Server (Round-Robin)

Für einen Namen können mehrere A-Einträge definiert werden. Clients (Browser, Mailprogramme, ...) werden üblicherweise durch die zurückgelieferten Ergebnisse rotieren. Somit lässt sich eine gewisse Ausfallsicherheit herstellen, die dem Nutzenden nicht auffällt.


KategorieDienste

hack-hro wiki: Dienste/DNS (zuletzt geändert am 2025-02-27 00:03:36 durch lars)