Hamburg/DNS
Übersicht
Für die Namesauflösung (Übersetzung von Hosts in IP-Adressen), DNS, wird das Programm BIND genutzt (der Daemon heisst named). DNS ist hierarchisch. Die jeweils darüber liegende Zone sagt, welche DNS-Server die darunter liegende verwalten dürfen.
Im Internet
.net. wird von den DNS-Rootservern verwaltet...
Zone freifunk.net.
freifunk.net. von ns.litras.com
dig any freifunk.net @ns.letras.net +nostats +nocmd +nocomment
; <<>> DiG 9.8.3-P1 <<>> any freifunk.net @ns.letras.net +nostats +nocmd +nocomment ;; global options: +cmd ;freifunk.net. IN ANY freifunk.net. 86400 IN SOA ns.litras.com. hostmaster.letras.net. 2014310318 43200 3600 3600000 86400 freifunk.net. 86400 IN AAAA 2001:bf0:c000:a::2:240 freifunk.net. 86400 IN A 217.197.80.240 freifunk.net. 86400 IN MX 40 mx4.in-berlin.de. freifunk.net. 86400 IN MX 10 mx1.in-berlin.de. freifunk.net. 86400 IN MX 20 mx2.in-berlin.de. freifunk.net. 86400 IN MX 30 mx3.in-berlin.de. freifunk.net. 86400 IN NS ns.letras.net. freifunk.net. 86400 IN NS ns.litras.com. ns.letras.net. 86400 IN A 62.245.168.81 ns.litras.com. 86400 IN A 195.234.229.66
Möchte man also die Nameserver für hamburg.freifunk.net ändern, sollte man Werner von letras.net kontaktieren.
Zone hamburg.freifunk.net.
Der Primäre Nameserver von hamburg.freifunk.net ist srv01, die sekundären sind ohrensessel und exosphere...
dig hamburg.freifunk.net any @srv01.hamburg.freifunk.net +nostats +nocmd +nocomment
; <<>> DiG 9.8.3-P1 <<>> hamburg.freifunk.net any @srv01.hamburg.freifunk.net +nostats +nocmd +nocomment ;; global options: +cmd ;hamburg.freifunk.net. IN ANY hamburg.freifunk.net. 3600 IN SOA srv01.hamburg.freifunk.net. hostmaster.hamburg.freifunk.net. 2015022000 86400 7200 3600000 172800 hamburg.freifunk.net. 3600 IN NS srv01.hamburg.freifunk.net. hamburg.freifunk.net. 3600 IN NS named.exosphere.de. hamburg.freifunk.net. 3600 IN NS ns.ohrensessel.net. hamburg.freifunk.net. 3600 IN A 212.12.51.134 hamburg.freifunk.net. 3600 IN AAAA 2a03:2267::101 hamburg.freifunk.net. 3600 IN MX 10 srv01.hamburg.freifunk.net. srv01.hamburg.freifunk.net. 3600 IN A 212.12.51.134 srv01.hamburg.freifunk.net. 3600 IN AAAA 2a03:2267::101
Rolle | Server | Ansprechpartner |
---|---|---|
Master | srv01.hamburg.freifunk.net | Gateway AG |
Slave | named.exosphere.de | Hansenerd |
Slave | ns.ohrensessel.net | Leo |
srv01.hamburg.freifunk.net | Gateway AG |
Diese Server können also im Internet beantworten welche IP hamburg.freifunk.net ist und alles was darunter liegt, z.B. formular.hamburg.freifunk.net. Bei jeder Anfrage wird die Reihenfolge der Nameserver zufällig zurückgegeben, so dass sie sich die Last der Anfragen teilen. Ändert sich etwas an den Einstellungen, werden die sekundären Nameserver vom primären informiert. Geregelt ist das in der Datei /etc/bind/ffhh.conf. Im Repo: https://github.com/freifunkhamburg/bind/blob/master/ffhh.conf
Die Einstellungen der befinden sich unter /etc/bind/master/db.net.freifunk.hamburg. Das git repository für diese Datei ist unter https://github.com/freifunkhamburg/bind/blob/master/master/db.net.freifunk.hamburg zu finden.
Im freifunk-Netz
Zone ffhh.
Auch innerhalb des freifunk-Netzes (also nicht im Internet) haben wir DNS. Hier haben wir Zonen, die es im Internet nicht gibt, so z.B. .ffhh. für freifunk Hamburg, .ffhl. für freifunk Lübeck, .dn42. für das mit dem freifunk-Netz verbundene Decentralized Network 42, usw.. In Hamburg verwalten wir nur .ffhh.
Nachfolgend sind die für diese Zone definierten DNS Server aufgelistet. Gleichzeitig existieren hier noch Zonen für die Reverse DNS Auflösung des Netzes 10.112.0.0/18.
Rolle | Server | Ansprechpartner |
---|---|---|
Master | srv01.hamburg.freifunk.net | Gateway AG |
Slave | - | Gateway AG |
Der primäre DNS-Server ist srv01. Dementsprechend läuft BIND nur dort.
Die Einstellungen der befinden sich unter /etc/bind/master/db.ffhh. Das git repository für diese Datei ist unter https://github.com/freifunkhamburg/bind/blob/master/master/db.ffhh zu finden.
Gateways
Der DNS-Server für die Endgeräte ist immer das jeweilige gateway, mit dem sie verbunden sind. Auf den gateways läuft DNSMASQ. DNSMASQ leitet die DNS-Anfragen an die zuständigen DNS-Server weiter. Das ist also beispielsweise srv01 für .ffhh., die DNS-Server vom DN42 für .dn42. und die vom ChaosVPN für .hack. und so weiter. Details sind der DNSMASQ-Konfiguraiton zu entnehmen.
Konfiguration
Die Konfiguration des Zonen masters liegt unter https://github.com/freifunkhamburg/bind/blob/master/master/
Die Konfiguration für DNS aus dem ICVPN wird unter DNS beschrieben.
Datei | Aufgabe |
---|---|
db.arpa.in-addr.10.112 | Reverse DNS für das Hamburger IPv4-Netz. Damit man z.B. rausfinden kann wie 10.112.1.1 heißt. |
db.arpa.in-addr.10.189 | Reverse DNS für das Helgoländer IPv4-Netz. |
db.arpa.ip6.2.a.0.3.2.2.6.7 | Reverse DNS für das Hamburger IPv6-Netz. |
db.ffhh | Verwaltet alle Namenseinträge von .ffhh |
db.net.freifunk.hamburg | Verwaltet alle Namenseinträge von hamburg.freifunk.net |
Die Dateien sind so kommentiert und in Abschnitte gegliedert, dass der Inhalt selbsterklärend ist. Genereller Aufbau und Syntax-Regeln einer solchen Datei werden unter http://de.wikipedia.org/wiki/SOA_Resource_Record und http://de.wikipedia.org/wiki/Zonendatei beschrieben.
Empfehlungen für die Werte im SOA Record gibt es in http://www.ripe.net/ripe/docs/ripe-203.
Änderungen vornehmen
Änderungen sollten auf Github vorgenommen werden. Entweder direkt, wenn man Schreibrechte hat, oder man clone-t sich das Repo, nimmt seine Änderungen vor (z.B. einen eigenen Dienst eintragen mein.dienst.ffhh). Dabei sollte nicht vergessen werden auch reverse DNS zu machen. Ist man fertig, stellt man einen pull request.
Wichtig ist, dass man bei jeder Änderung den Zähler der Datei (serial) hoch setzt. Sonst wird die Änderung nicht übernommen. Der Übersicht halber sollte der Zähler nach RFC 1912 2.2 den Aufbau haben: aktuelles Datum mit einem zweistelligen Zähler (zum Beispiel 2014052101 = 21. Mai 2014, erste Änderung an diesem Tag).
Zum übernehmen der Änderungen holt sich die Gateway AG den aktuellen Stand des Repos:
cd /etc/bind/ git pull
Anschliessend wir die Korrektheit der Syntax der geänderten Datei überprüft. Hier ein Beispiel zum überprüfen des reverse DNS von IPv6:
named-checkzone 0.0.0.0.d.0.d.f.2.b.b.2.1.5.d.f.ip6.arpa. /etc/bind/master/db.arpa.ip6.f.d.5.1.2.b.b.2.f.d.0.d
Erhält man OK zurück, kann der Dienst die neuen Einstellungen laden. Zum administrieren des named wird rndc verwendet.
rndc reload