Update Readme

Signed-off-by: Blackyfff <blackyfff@noreply.git.freifunk-franken.de>
This commit is contained in:
Blackyfff 2021-07-13 20:30:15 +02:00
parent 330fa156c7
commit 44dfd87e58
1 changed files with 44 additions and 6 deletions

View File

@ -1,12 +1,14 @@
# fff-scripts
# dns-scripts
Dieses Git enthält eine Sammlung an Scripten zur Aktualisierung der Zonen für fff.community.
Dabei werden aus der Forward-Zone und optional eigener Subdomain (durch community-Zonefile gesteuert) auch passende Reverse-Zonen für unsere internen RFC 1918 und RFC 4193 Adressen erzeugen.
Weiterhin werden bei eigener Subdomain die momentan vergebenen Adressen von dnsmasq und odhcpd (alles unter /tmp/hosts/) inkludiert.
Es werden bei eigener Subdomain die momentan vergebenen Adressen von dnsmasq und odhcpd (alles unter /tmp/hosts/) inkludiert.
Das ermöglicht eine Namensauflösung für Freifunk-Teilnehmer ohne manuelle Konfiguration.
Damit kann jeder Freifunk-Teilnehmer ein gültiges TLS-Zertifikat bekommen, sofern DHCPv6 am Gateway aktiviert ist.
Unterstützt wird Split-DNS für Freifunk-interne und -externe Anfragen, dabei kann auch eine Subdomain angelegt werden unter welcher nur extern erreichbare IPs herausgegeben werden.
DNSSEC wird für jede Zone unterstützt, allerdings nur für die Hauptzone mit mehreren Servern. Für Subdomainserver darf mit DNSSEC nur jeweils ein Server authorativ sein.
## Installation
@ -23,14 +25,17 @@ für DNSSEC: delv; bind9 >= 9.16.18
#### dns-scripts klonen
Die Scripte müssen geklont werden, oder anderweitig in einem Ordner auf dem Server abgelegt werden. Dabei ist aktuell noch die Position wichtig, da das Skript derzeit absolute Pfade verwendet (oder den Pfad in update-dns.sh anpassen)
Die Scripte müssen geklont werden, oder anderweitig auf dem Server abgelegt werden. Die Ordner sind im Git vorgegeben. /usr/lib/ffdns für die Scripte und /etc/ffdns für die Konfigurationsdateien.
```
git clone https://git.freifunk-franken.de/freifunk-franken/dns-scripts.git /usr/lib/ffdns
git clone https://git.freifunk-franken.de/freifunk-franken/dns-scripts.git
```
#### konfigurieren
In der Datei update-dns.sh die Konfigurationsparameter setzen.
Die Datei /etc/ffdns/community.conf wird für eine Community konfiguriert(vorzugsweise im Git), und sollte nicht lokal geändert werden.
Die Datei /etc/ffdns/local.conf muss serverspezifisch konfiguriert werden.
Für die Konfiguration der Zonendatei siehe https://git.freifunk-franken/freifunk-franken/dns
#### Cron anlegen
Schließlich muss noch ein Cron angelegt werden, der regelmäßig das Skript aufruft:
@ -39,7 +44,7 @@ Schließlich muss noch ein Cron angelegt werden, der regelmäßig das Skript auf
```
#### DNS-Server konfigurieren
Dann muss nur noch der DNS Server, z.B. `bind`, eingerichtet werden.
Dann muss noch der DNS Server `bind` eingerichtet werden. Andere Distributionen sind auch möglich, aber DNSSEC und automatische Konfiguration der verschiedenen Zonen müssen dann selbst gelöst werden.
Für bind werden durch die Scripte für jeden view include-Dateien angelegt (z.B. icvpn-internal-view.conf) und zusätzlich eine icvpn-acl.conf:
@ -113,3 +118,36 @@ dnssec-policy <Name frei wählbar> { # Name muss in der config gesetzt werden
[..]
```
## Konfiguration der Zonendatei
### Einträge generell
Alle Einträge sollten im relativen Schema vorliegen, also ohne die Rootdomain und ohne abschließenden Punkt.
### Subdomains
Subdomains der Rootzone können von Root-Servern selbst oder auch von jedem anderen Server gehostet werden.
Subdomains sollten im folgenden Format angelegt werden
```
<Subdomain> IN NS <Serverhostname>[ ; Subnets:[ <SubnetzIPv4>/<Subnetzmaske>| <SubnetzIPv6>/<Subnetzmaske>]+]?
```
z.B.:
```
herpf IN NS dns.herpf.fff.community. ; Subnets: 10.50.250.0/24 fd43:5602:29bd:62::/64
```
Serverhostname muss mit der Konfiguration in local.conf übereinstimmen und muss absolut sein (mit abschließendem Punkt).
Die Subnetzparameter sind für die Delegierung und Erstellung der Reversezonen notwendig.
Sofern noch nicht vorhanden wird dann eine neue Zonendatei für diese Subdomain erstellt. Diese darf dann auch oberhalb der Zeile
```
;### Leases ###
```
wie die Rootzonendatei editiert werden.
### Subsubdomains
Auch unterhalb von bereits delegierten Subdomains können beliebig viele weitere Subdomains bedient werden.
Dazu muss in local.conf angegeben werden wo die Zonendatei der nächst höheren Zone zu erreichen ist.