DHCP Dienst aufsetzen

Wir installieren den DHCP-Dienst auf unserem ddf Server (DNS, DHCP, Freeradius). Es wird davon ausgegangen, dass der DNS Dienst auf diesem Server schon installiert ist.
Wir gehen auf die Shell-Ebene des ddf Servers (172.16.0.10) und installieren das benötigte Paket, das isc-dhcp-server Paket.
Wir gehen auf die Shell-Ebene des ddf Servers (172.16.0.10) und installieren das benötigte Paket, das isc-dhcp-server Paket.
# apt install isc-dhcp-server

Nach der Installation wird automatisch der DHCP Server gestartet. Wir bekommen allerdings Fehlermeldung. Wir nutzen 1 Netzwerkkarte, aber dennoch müssen wir in Default Einstellungen den Namen der Netzwerkkarte in der Konfiguration eintragen. Mit dem Befehl ip a können wir den Namen der Netzwerkkarte herausfinden. In unserem Fall ist das ens18. Auf einer anderen Hardware kann es anders heißen.
root@ddf:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether be:57:23:bd:63:17 brd ff:ff:ff:ff:ff:ff
altname enp0s18
inet 172.16.0.10/22 brd 172.16.3.255 scope global ens18
valid_lft forever preferred_lft forever
inet6 fe80::bc57:23ff:febd:6317/64 scope link
valid_lft forever preferred_lft forever
root@ddf:/#
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether be:57:23:bd:63:17 brd ff:ff:ff:ff:ff:ff
altname enp0s18
inet 172.16.0.10/22 brd 172.16.3.255 scope global ens18
valid_lft forever preferred_lft forever
inet6 fe80::bc57:23ff:febd:6317/64 scope link
valid_lft forever preferred_lft forever
root@ddf:/#

Wir öffnen die Datei: vim.tiny /etc/default/isc-dhcp-server und ändern den Eintrag für die Netzwerkkarte. Danach können wir den Server neu starten, wir müssen es allerdings nicht.
von
...
INTERFACESv4=""
INTERFACESv6=""
auf
...
INTERFACESv4="ens18"
# INTERFACESv6=""
...
INTERFACESv4=""
INTERFACESv6=""
auf
...
INTERFACESv4="ens18"
# INTERFACESv6=""

Den Inhalt der Datei /etc/dhcp/dhcpd.conf bitte löschen und den unterstehendem Text einfügen.
option domain-name "schule.wlan";
option domain-name-servers 172.16.0.10;
# eine Woche. Das kann man selbstverständlich ändern
default-lease-time 604800;
# eine Woche + 1 Tag
max-lease-time 691200;
ddns-update-style none;
authoritative;
subnet 172.16.0.0 netmask 255.255.252.0 {
# Gibt es keine Range werden keine IP-Verteilt nur IP Reservierungen
# werden vergeben.
range 172.16.0.21 172.16.3.200;
option subnet-mask 255.255.252.0;
option broadcast-address 172.16.3.255;
option domain-name "schule.wlan";
# option domain-search "schule.wlan","mono.plan";
option domain-search "schulen.wlan";
option domain-name-servers 172.16.0.10;
option routers 172.16.0.1;
include "/etc/dhcp/geraete-ip-reservierung.conf"; #EXTERNAL FILE
}
option domain-name-servers 172.16.0.10;
# eine Woche. Das kann man selbstverständlich ändern
default-lease-time 604800;
# eine Woche + 1 Tag
max-lease-time 691200;
ddns-update-style none;
authoritative;
subnet 172.16.0.0 netmask 255.255.252.0 {
# Gibt es keine Range werden keine IP-Verteilt nur IP Reservierungen
# werden vergeben.
range 172.16.0.21 172.16.3.200;
option subnet-mask 255.255.252.0;
option broadcast-address 172.16.3.255;
option domain-name "schule.wlan";
# option domain-search "schule.wlan","mono.plan";
option domain-search "schulen.wlan";
option domain-name-servers 172.16.0.10;
option routers 172.16.0.1;
include "/etc/dhcp/geraete-ip-reservierung.conf"; #EXTERNAL FILE
}

Auf dem DHCP Server können wir auch für bestimmte Geräte bestimmte IP-Adressen reservieren. Zu diesem Zweck erstellen wir die Datei /etc/dhcp/geraete-ip-reservierung.conf. Auch, wenn wir keine Reservierungen brauchen, muss die Datei existieren, weil sich der Pfad in unserer Konfigurationsdatei /etc/dhcp/dhcpd.conf befindet.
root@dc1:/# nano /etc/dhcp/geraete-ip-reservierung.conf

Sollten wir IP Reservierung für bestimmte Geräte brauchen, dann können wir die Datei
/etc/dhcp/geraete-dhcp.conf verwenden. Es wird der Gerätename, die MAC-Adresse des Gerätes und die gewünschte IP-Adresse eingetragen. Der Gerätename muss nicht mit dem wirklichen Namen des Gerätes übereinstimmen. Das ist nur für uns eine Orientierung. Die Namen dürfen sich nicht wiederholen. Die Datei kann z.B. so aussehen.
/etc/dhcp/geraete-dhcp.conf verwenden. Es wird der Gerätename, die MAC-Adresse des Gerätes und die gewünschte IP-Adresse eingetragen. Der Gerätename muss nicht mit dem wirklichen Namen des Gerätes übereinstimmen. Das ist nur für uns eine Orientierung. Die Namen dürfen sich nicht wiederholen. Die Datei kann z.B. so aussehen.
host PC1-R206 { hardware ethernet D0:C0:BF:4C:BE:E5; fixed-address 172.16.0.121; }
host PC3-R207 { hardware ethernet D0:C0:BF:4D:5E:E9; fixed-address 172.16.0.122; }
host PC3-R207 { hardware ethernet D0:C0:BF:4D:5E:E9; fixed-address 172.16.0.122; }

Den DHCP Dienst können wir neu starten.
root@dc1:/# systemctl restart isc-dhcp-server.service
Der DHCP Server ist Betriebsbereit.