Hamburg/DNS

Aus wiki.freifunk.net
Wechseln zu: Navigation, Suche


Ü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
Mail 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