# fff-scripts Dieses Git enthält eine Sammlung an Scripten zur Aktualisierung der Zonendatei für fff.community. Außerdem gibt es Skripte, die aus der Forward-Zone und optional eigener Subdomain (durch community-Zonefile gesteuert) passende Reverse-Zones für unsere internen RFC 1918 und RFC 4193 Adressen erzeugen. ## Installation #### Systemanforderungen curl named-checkzone (z.B. bei bind oder bind-tools enthalten) #### 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 absolulte Pfade verwendet (oder den Pfad in update-dns.sh anpassen) ``` git clone https://git.freifunk-franken.de/freifunk-franken/dns-scripts.git /srv/fff-scripts ``` #### konfigurieren In der Datei update-dns.sh die Konfigurationsparameter setzen. #### Cron anlegen Schließlich muss noch ein Cron angelegt werden, der regelmäßig das Skript aufruft, welches die Zonendatei aktualisiert und die Reverse-Skripte aufruft: ``` 1-59/5 * * * * /usr/lib/ffdns/update-dns.sh ``` #### DNS-Server konfigurieren Dann muss nur noch der DNS Server, z.B. `bind`, für die entsprechenden Zonen eingerichtet werden, die Zonenfiles werden durch die Scripte angelegt, für jedes Zonefile muss ein Eintrag in den entsprechenden view: Einfachste Konfiguration: ``` $ cat named.conf.local [..] zone "50.10.in-addr.arpa" { type master; file "/var/lib/bind/db.10.50"; allow-query { any; }; }; zone "83.10.in-addr.arpa" { type master; file "/var/lib/bind/db.10.83"; allow-query { any; }; }; zone "d.b.9.2.2.0.6.5.3.4.d.f.ip6.arpa" { type master; file "/var/lib/bind/db.f.d.4.3.5.6.0.2.2.9.b.d"; allow-query { any; }; }; zone "fff.community" { type master; file "/srv/fff-dns/db.fff.community"; allow-query { any; }; }; [..] ``` mit Split-View und eigener Subdomain: ``` $ cat named.conf.local [..] acl icvpnlocal { 10.0.0.0/8; 172.16.0.0/12; fd00::/8; }; acl icvpnrange { icvpnlocal; # Die via babel/bird verteilten IPv6-Netze mit src-prefix, diese sollten per Script as der fff-table aktuell gehalten werden #z.B. 2a00:1aa0:ffff::/48; }; [..] options { [..] check-names master warn; #Important for Hostnames with _ (example: HUAWEI_P30_lite ) } [..] view "icvpn-internal-view" { match-clients { icvpnrange; localhost; }; [..] # eigene Optionen zone ".fff.community" { type master; file "/var/lib/bind/db..fff.community"; }; zone ".50.10.in-addr.arpa" { type master; file "/var/lib/bind/db.10.50."; }; # Subnetz kann auch in 10.83 liegen zone ".d.b.9.2.2.0.6.5.3.4.d.f.ip6.arpa" { type master; file "/var/lib/bind/db.f.d.4.3.5.6.0.2.2.9.b.d."; }; zone "50.10.in-addr.arpa" { type master; file "/var/lib/bind/db.10.50"; allow-query { any; }; }; zone "83.10.in-addr.arpa" { type master; file "/var/lib/bind/db.10.83"; allow-query { any; }; }; zone "d.b.9.2.2.0.6.5.3.4.d.f.ip6.arpa" { type master; file "/var/lib/bind/db.f.d.4.3.5.6.0.2.2.9.b.d"; allow-query { any; }; }; zone "fff.community" { type master; file "/srv/fff-dns/db.fff.community"; allow-query { any; }; }; include "/var/lib/bind/icvpn-zones.conf"; # Nicht vergessen ;) [..] }; view "external-view" { match-clients { any; }; [..] # eigene Optionen zone ".fff.community" { type master; file "/var/lib/bind/dbextern..fff.community"; }; zone "fff.community" { type master; file "/var/lib/bind/dbextern.fff.community"; }; [..] }; [..] ```