DHCP Server
Funktion
Ein DHCP Server wird benötigt damit IPv4 Adressen in der Hood vergeben werden können. Es können hier verschiedene Systeme verwendet werden. Aus gründen der Datensparsamkeit sollte man das logging soweit wie möglich abstellen und nur wirklich techn. zwingende Daten speichern.
Der DHCP Server muss auf das Batman Interface arbeiten, falls eine Bridge verwendet wird auf der Bridge. IP Adressen müssen hier https://wiki.freifunk-franken.de/w/Portal:Netz reserviert werden.
Die DHCP Konfiguration kann schon mal vorbereitet werden, sollte aber erst mit als vorletzter Schritt scharf geschaltet werden. Ein DHCP-Server, der Clients nicht funktionierende DNS-Server oder ein nicht funktionierendes Gateway mitteilt, sperrt diese aus dem Freifunk Netz aus. Daher hier bitte acht geben!
ISC-DHCP-Server
In isc-dhcp-server definieren wir ...
vi /etc/default/isc-dhcp-server
... das der DHCP Server für das B.A.T.M.A.N Device Anfragen beantworten soll:
. . INTERFACES="bat0" . .
Nachfolge Konfiguration wird in auskommentierter Form vorbereitet und sollte erst im letzten Schritt durch Einkommentieren und durch einen Neustart des DHCP Servers...
/etc/init.d/isc-dhcp-server restart
...aktiviert werden.
Die Konfiguration wird in dhcpd.conf vorgenommen:
vi /etc/dhcp/dhcpd.conf
und folgender Konfigurationsblock zunächst auskommentiert eingefügt, wobei Gateway und Hood spezifische Änderungen noch eingepflegt werden müssen:
. . . ### Freifunk Franken #option domain-name "fff.community"; #option domain-name-servers 10.50.16.1; #authoritative; ### Fuerth #shared-network fff-fuerth { # subnet 10.50.32.0 netmask 255.255.248.0 { # Netzwerk und Netzmaske der Fuerther Hood # range 10.50.38.0 10.50.39.254; # IP-Range die der DHCP-Server innerhalb der Fuerther Hood verwaltet # option routers 10.50.32.5; # Default-Gateway, dass Clients mitgeteilt wird # option domain-name-servers 10.50.32.5, 10.50.32.1; # Name-Server, die Clients mitgeteilt werden # } #}
Netzwerk und Netzmaske müssen derjenigen der Hood des Gateways entsprechen. Im Beispiel ist dies Fürth, für z.B. Hassberge hieße der Eintrag "subnet 10.50.56.0 netmask 255.255.252.0".
Der IP-Bereich (Range), die der DHCP-Server in der Hood verwaltet, wurde zuvor unter Portal:Netz reserviert.
Unter Routers wird den Clients das Default-Gateway mitgeteilt: Das Gateway, über das Clients das Internet oder eine andere Hood erreichen. In unserem Beispiel routet das aufgesetzte Gateway selber via VPN ins Internet oder via olsr (später) in andere Hoods. Als Default-Gateway wird also die eigene statische IP des Gateways, aus der eigenen Hood, die in Portal:Netz reserviert wurde, verwendet.
Ähnlich verhält es sich mit den Nameservern: Auf unserem Gateway wurde ein DNS Server eingerichtet, also kann der domain-name-server unser eigenes Gateway, mit der reservierten statische IP aus der Hood, wie in Portal:Netz, sein. Als Backup empfiehlt sich ein weiterer DNS-Server aus der Hood, in unserem Beispiel ro1 in der Fürther.
dnsmasq
Es kann als DHCP Server auch der dnsmasq verwendet werden.
Installation
Einfach aus den Paketquellen installieren z.b.
apt-get install dnsmasq
Konfiguration
zuerst die alte systemd Unit deaktivieren
systemctl stop dnsmasq systemctl disable dnsmasq
Danach folgende Konfigartion anlegen
/etc/dnsmasq.d/dhcp.conf
quiet-dhcp bind-interfaces dhcp-authoritative dhcp-option=6,10.83.252.11,10.83.252.31,10.50.252.0 domain=fff.community
/etc/dnsmasq.d/disable-dns.conf
port=0
hiermit werden die Daten angelegt die für jede Hood gleich sind, z.b. die DNS Server eingetragen oder die DNS Funktion deaktiviert.
Nun kann für jede Hood noch eine systemd File angelegt werden z.b.:
/etc/systemd/system/dnsmasqbat0.service
[Unit] Requires=network.target After=network.target [Service] Type=simple Restart=always RestartSec=10 ExecStart=/usr/sbin/dnsmasq -k --conf-dir=/etc/dnsmasq.d,*.conf --interface batX --dhcp-range=10.83.xx.1,10.83.xx.127,255.255.xxx.0,20m --pid-file=/var/run/dhcp-batX.pid --dhcp-leasefile=/var/lib/misc/batX.leases [Install] WantedBy=multi-user.target
Vor & Nachteile
Vorteile
- schlanker
- lässt sich besser per Script konfigurieren
- man muss ihn nicht umständlich abgewöhnen die Logs vollzumüllen
- loggt deutlich weniger kram mit, DHCP Leases werden nur solange behalten wie technisch unbedingt nötig
- Man kann sehr schön pro Hood eine eigene Instanz laufen lassen und muss so bei Änderung nicht immer das komplette DHCP neu machen.
Nachteil
- Ich kenne keins...