DHCP-Server unter Debian
Datum: 21.12.2020
PROJEKT: DHCP-Server und Clients
ZIEL: Installation und Konfiguration eines DHCP-Servers auf unserem NAT-Router
Installation
Die Software ist auf Debian-basierten Systemen schnell installiert:
root# apt-get update
root# apt-get install isc-dhcp-server
Konfiguration
Nach der Installation des Servers konfigurieren wir zuerst einmal die Startoption, die das Listening-Interface betrifft:
root# vi /etc/default/isc-dhcp-server
Dabei setzen wir als Wert ‚enp0s8‘ ein (= die zum ‚intnet‘ hin gerichtete Schnittstelle, wo der Server auf Clientanfragen lauschen soll). Das Ergebnis sieht dann so aus:
INTERFACES="enp0s8"
Danach ist die Hauptkonfigurationsdatei dran:
root# vi /etc/dhcp/dhcpd.conf
Hierbei müssen zwei Dinge eingerichtet werden:
Zu übermittelnde DNS-Server als globale Serveroption
Hierbei wollen wir an die DHCP-Clients mittels ‚option domain-name-servers‘ die IP-Adressen von 2 ausgewählten Nameservern senden:
194.25.2.129 (dns.isp.t-ipnet.de.)
8.8.8.8 (dns.google.)
Zu übermittelnde Adressinformationen über das physische Netzsegment
Hier geht es um speziell um unser isoliertes Netzwerk namens ‚intnet‘, in dem ja die MAC-Adressen umherschwirren:
Deklaration von Netzwerkpräfix und Pool für Adresszuweisungen (mit ‚subnet‘ und ‚range‘)
Übermittlung des Standard-Routers als lokale Bereichsoption (mit ‚option routers‘)
Die betreffenden Abschnitte sollten nach dem Editieren dann in etwa wie folgt aussehen:
# Bei Zeile 20
option domain-name-servers 194.25.2.129, 8.8.8.8;
# Bei Zeile 35
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.50 10.10.10.100;
option routers 10.10.10.1;
}
Inbetriebnahme
Jetzt sollte sich gleich der dhcp-Daemon ohne größere Fehlermeldungen starten lassen. Ob das aber tatsächlich der Fall ist und um später dem Ausliefern der Informationen an die Clients beiwohnen zu können, starten wir vorher in einem zweiten Terminal (natürlich als root) diesen Log-Monitor:
root# tail -f /var/log/syslog
Für den ersten Start verwenden wir am besten gleich ‚restart‘:
root# /etc/init.d/isc-dhcp-server restart
Testing
Nun können sich DHCP-Clients, die sich im ‚intnet‘ befinden, Adressinformationen holen.
Auf einem typischen Ubuntu-System könnte sich das manuelle Testen so gestalten:
$ sudo -i
$ systemctl stop NetworkManager
$ dhclient -r
$ dhclient
$ less /var/lib/dhcp/dhclient.leases
Neben ‚dhclient‘ gibt es weitere DHCP-Clienttools wie ‚dhcpcd‘, ‚udhcpc‘ (bei Slitaz) und ‚pump‘ (veraltet).