DHCP

Wir interessieren uns für das (Debian-) Paket isc-dhcp-server

Anm.: für eine einfach Kombination aus DHCP und DNS kann man auch zu dnsmasq greifen.

Wir greifen aber zur vollständigen DHCP-Serverlösung.

Installation auf Maschine router

Wichtig

An richtigem Adapter (LAN-Seite) zur Verfügung stellen!

Vorbereitungen:

Konfiguration des Routers auf statische LAN-IP (z.B.): 172.16.1.1 / 24

Installation mittels apt install isc-dhcp-server

Die Installation quittiert am Ende mit Fehlern, da eine saubere Konfigurationen des DHCP-Servers noch fehlt.

root@vm-lpic-router:~# systemctl status isc-dhcp-server.service
  isc-dhcp-server.service - LSB: DHCP server
    Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
    Active: failed (Result: exit-code) since Wed 2021-09-15 15:34:08 CEST; 35min ago
    Docs: man:systemd-sysv-generator(8)
    Process: 973 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=1/FAILURE)
        CPU: 23ms

Sep 15 15:34:06 vm-lpic-router dhcpd[988]: before submitting a bug.  These pages explain the proper
Sep 15 15:34:06 vm-lpic-router dhcpd[988]: process and the information we find helpful for debugging.
Sep 15 15:34:06 vm-lpic-router dhcpd[988]:
Sep 15 15:34:06 vm-lpic-router dhcpd[988]: exiting.
Sep 15 15:34:08 vm-lpic-router isc-dhcp-server[973]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ...
Sep 15 15:34:08 vm-lpic-router isc-dhcp-server[993]:  failed!
Sep 15 15:34:08 vm-lpic-router isc-dhcp-server[994]:  failed!
Sep 15 15:34:08 vm-lpic-router systemd[1]: isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE
Sep 15 15:34:08 vm-lpic-router systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
Sep 15 15:34:08 vm-lpic-router systemd[1]: Failed to start LSB: DHCP server.

Wir beginnen mit der Konfiguration des NIC-Adapters für DHCP:

/etc/default/isc-dhcp-server (hier: LAN-seitiger eth1 von router)

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="eth1"
INTERFACESv6=""

Die eigentliche Konfiguration liegt in Standardverzeichnis:

/etc/dhcp/dhcpd.conf

Beispieleinträge / Konfigurationen (sollten vorher sauber bei Entwurf geplant werden!)

option domain-name "firma.local";
option domain-name-servers 8.8.8.8, 10.200.87.10;
...
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.200;
option routers 172.16.1.1;
}

Wichtig: in Firmennetzen mit eigenem DNS bitte später die (zweite) DNS anpassen!

Kurzanleitungen im Web für Debian und den ISC DHCP Server:

https://wiki.debian.org/de/DHCP_Server

Der DHCP-Daemon lässt sich mit den üblichen Target/Runlevel Tools analysieren:

systemctl status|restart|stop|enable|disable isc-dhcp-server

Journaling:

journalctl -u isc-dhcp-server

(Journal / Logging auslesen - Anm.: Persistenz checken bzw. konfigurieren! Status bei Debian 11: persistent!)

Übersicht zu Leases/Releases des DHCP-Servers:

/var/lib/dhcp/dhcpd.leases (alle Infos inkl. MACs oder Lease-Times)

Tipp

Nach DHCP-Server Implementierung Test mit Clients/Servern und Analyse der IP-Konfigurationen.

Übungen/Erinnerungen: Netzwerktechnik manuell/klassisch konfigurieren

Konfiguration der Debian-Systeme auf klassische statische Konfigurationen mit Hilfe der Konfigurationsdatei /etc/network/interfaces

Hier: Auszug aus der Konfiguration (Anm.: die Zeile auto … ist heute oft verschwunden)

.....
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet static
    address 192.168.17.10
    netmask 255.255.255.0
    gateway 192.168.17.1
.....

Für die Konfiguration mittels DHCP ist es:

...
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet dhcp
...

Für diese Netze bitte auch immer die Tools kennen: ip, ifup, ifdown

Beachten: bei Verwendung von NetworkManager (z.B. unter Gnome-Desktop) oder netconfig oder auch netplan (siehe Ubuntu Server) dann bitte abweichende Konfigurationsdateien beachten!

Über die /etc/resolv.conf Kommentare erkennt man recht schnell die genutzte Technik.