Dies ist eine alte Version des Dokuments!
Die Installation erfolgt wie gewohnt mit dem apt-get install
-Kommando.
Jedoch darf man sich bei der Installation nicht erschrecken, da Debian versucht
gleich den Dienst zu starten und schlägt dabei fehl, weil der Dienst nicht
konfiguriert ist:
apt-get install isc-dhcp-server -------------------------------------------------------------------- [...] Setting up libirs-export141 (1:9.10.3.dfsg.P4-12.3+deb9u4) ... Setting up isc-dhcp-server (4.3.5-3) ... Generating /etc/default/isc-dhcp-server... Job for isc-dhcp-server.service failed because the control process exited with error code. See "systemctl status isc-dhcp-server.service" and "journalctl -xe" for details. invoke-rc.d: initscript isc-dhcp-server, action "start" failed. ● isc-dhcp-server.service - LSB: DHCP server Loaded: loaded (/etc/init.d/isc-dhcp-server; generated; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2018-02-15 20:40:22 UTC; 44ms ago Docs: man:systemd-sysv-generator(8) Process: 8686 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=1/FAILURE) Feb 15 20:40:20 bananapim2plus systemd[1]: Starting LSB: DHCP server... Feb 15 20:40:20 bananapim2plus isc-dhcp-server[8686]: Launching both IPv4 and IPv6 servers (please configure INTERFACES in /etc/default/isc-dhcp-server if you only want one or the other). Feb 15 20:40:20 bananapim2plus dhcpd[8697]: Wrote 0 leases to leases file. Feb 15 20:40:22 bananapim2plus isc-dhcp-server[8686]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ... failed! Feb 15 20:40:22 bananapim2plus isc-dhcp-server[8686]: failed! Feb 15 20:40:22 bananapim2plus systemd[1]: isc-dhcp-server.service: Control process exited, code=exited status=1 Feb 15 20:40:22 bananapim2plus systemd[1]: Failed to start LSB: DHCP server. Feb 15 20:40:22 bananapim2plus systemd[1]: isc-dhcp-server.service: Unit entered failed state. Feb 15 20:40:22 bananapim2plus systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'. Processing triggers for libc-bin (2.24-11+deb9u1) ... Processing triggers for systemd (232-25+deb9u1) ...
Beim DHCP-Server müssen drei Dinge konfiguriert werden:
/etc/dhcp/dhcpd.conf
: Die Subnetze, die mit IPs versorgt werden /etc/default/isc-dhcp-server
: Das Interface, auf dem auf DHCP-Anfragen von frisch zugeschalteten Rechnern gehorcht wird /etc/network/interfaces
: Die Einstellungen am zuvor genannten InterfaceHier werden global, oder je Subnetz die Parameter für die Vergabe von IP-Adressen festgelegt. Recht weit oben lege man netzübergreifend fest, wie die Domäne heißt und die Namen der zu ihr gehörenden DNS-Server:
[...] # option definitions common to all supported networks... option domain-name "netlab.local"; option domain-name-servers pi1.netlab.local, pi2.netlab.local, pi3.netlab.local, pi4.netlab.local, pi5.netlab.local, pi6.netlab.local; default-lease-time 600; max-lease-time 7200; [...]
Weiter unten beschreibe man das Subnetz, welches bedient wird:
[...] # A slightly different configuration for an internal subnet. subnet 10.0.100.0 netmask 255.255.255.0 { range 10.0.100.20 10.0.100.100; option routers 10.0.100.1; option broadcast-address 10.0.100.255; default-lease-time 600; max-lease-time 7200; } [...]
Hier wurden Festgelegt:
10.0.100.20
bis 10.0.100.100
10.0.100.1
(gerne auch mehrere, kommagetrennt)Hier werden die Interfaces festgelegt, auf denen der DHCP-Dienst lauscht. Dabei muss man bei Maschinen mit mehreren Netzwerk-Interfaces aufpassen, da man den Dienst sonst auf einem falschen Interface startet und damit das falsche Netz mit IPs versorgt. Das kann dazu führen, dass man Dienste aus anderen Netzen durcheinanderbringt und damit im schlimmsten Fall die Infrastruktur lahmlegt.
[...] # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACESv4="eth0" INTERFACESv6=""
Damit die Clients in der /etc/resolv.conf
die richtige Information
haben welche Nameserver sie fragen sollen und um welche Domäne die Hostnamen
ergänzt werden sollen, wenn nach ihnen gesucht wird, müssen in die Interface-Konfiguration
noch zwei direktiven ergänzt werden: dns-nameserver
und dns-search
.
source /etc/network/interfaces.d/* # Wired adapter #1 allow-hotplug eth0 no-auto-down eth0 iface eth0 inet static address 10.0.100.12 netmask 255.255.255.0 gateway 10.0.100.1 dns-nameserver 10.0.100.11 10.0.100.12 10.0.100.13 10.0.100.14 10.0.100.15 10.0.100.16 dns-search netlab.local [...]
Man starte den Dienst …
systemctl start isc-dhcp-server
Nun verbinde man einen weiteren Client mit dem Netz oder restarte das Netzwerkinterface
einen anderen Clients und schaue in die resolv.conf
:
cat /etc/resolv.conf -------------------------------------------------------------- nameserver 10.0.100.11 nameserver 10.0.100.12 nameserver 10.0.100.13 search netlab.local
Hier sollten dann die (nicht zwingend alle) in der /etc/network/interfaces
eingetragenen Nameserver, sowie die search
-Direktive mit dem richtigen
Domänennamen eingetragen sein