DNS
(Domain Name Service)
Viele Communities betreiben eine eigene Top-Level-Domain, die nicht im Internet erreicht werden kann. Damit diese im eigenen Netz genutzt werden können, muss ein DNS-Server konfiguriert werden, der die Authorativen Nameserver anderer Communities abfragt.
Konfiguration
Da die Zahl der Communities ist in den letzten Jahre so stark gewachsen, dass die Konfiguration heute automatisiert von Skripten generiert wird. Hierzu werden Daten aus icvpn-meta herangezogen, wo kollaborativ die jeweils aktuellen Parameter hinterlegt werden.
git clone https://github.com/freifunk/icvpn-scripts.git git clone https://github.com/freifunk/icvpn-meta.git cd icvpn-scripts ./mkdns -f bind -s ../icvpn-meta/
Der Prozess,
- die Repositories aktuell zu halten
- die neue Konfiguration wegzuschreiben
- den DNS-Server neu zu laden
sollte mindestens einmal täglich (z.B. per Cronjob) durchgeführt werden um Konfigurationsänderungen anderer Communities zu ermöglichen.
Die eigene Community sollte hierbei mit -x communityname
von der Einbindung ausgeschlossen werden.
Derzeit werden als Resolver unterstützt:
- dnsmasq
- bind
- bind-forward
- unbound
Weitere Optionen via ./mkdns --help
:
Usage: mkdns [options] Options: -h, --help show this help message and exit -f FMT, --format=FMT Create config in format FMT. Possible values: dnsmasq, bind, bind-forward, unbound. Default: dnsmasq -s DIR, --sourcedir=DIR Use files in DIR as input files. Default: data/ -x COMMUNITY, --exclude=COMMUNITY Exclude COMMUNITY (may be repeated) --filter=FILTER Only include certain servers. Possible choices: v6, v4
Externe Netze
Viele Freifunk-Communities peeren zusätzlich noch mit dem DN42 oder dem ChaosVPN. In icvpn-meta sind bereits Einträge enthalten, so dass auch für diese Netze DNS-Auflösung möglich wird. Ist das nicht gewünscht, so kann man die Netze zum einen im BGP-Daemon filtern, sie aber auch mittels -x dn42
oder -x chaosvpn
ausschließen.
Derzeit hinterlegte externe Netze:
- ChaosVPN (.hack)
- dn42 (.dn42)
- RaumZeitLabor (.rzl)