Wenn dhclient, der DHCP-Client, auf dem Client-Rechner ausgeführt wird, beginnt er mit dem Senden von Anfragen nach Konfigurationsinformationen. Standardmäßig erfolgen diese Anfragen auf UDP-Port 68. Der Server antwortet auf UDP 67 und gibt dem Client eine IP-Adresse und andere relevante Netzwerkinformationen wie Netzmaske, Router und DNS-Server. All diese Informationen kommen in Form eines DHCP?Lease? und ist nur für eine bestimmte Zeit gültig (konfiguriert vom DHCP-Server-Maintainer). Auf diese Weise können veraltete IP-Adressen für Clients, die nicht mehr mit dem Netzwerk verbunden sind, automatisch zurückgefordert werden.
DHCP Server (oder DHCPd) ist der Server, der dem DHCP-Client die benötigten Informationen bereitstellt, und der Serverteil der Suite wird nicht als Teil von FreeBSD bereitgestellt und muss daher vom net/isc-dhcp3-server installiert werden Port, um diesen Dienst bereitzustellen.
FreeBSD kommt mit ISC DHCP, und es kommt mit FreeBSD als Ports net/isc-dhcp3-server.
Um es zu installieren, wechseln Sie in das Verzeichnis ports net/isc-dhcp3-server und führen Sie den folgenden Befehl aus:
# make install clean
DHCPd wird mithilfe einer Konfigurationsdatei konfiguriert, normalerweise dhcpd.conf, die sich im Verzeichnis /usr/local/etc befindet. Normalerweise gibt es eine Beispielkonfigurationsdatei, die dhcpd.conf.example ist im Verzeichnis. Kopieren Sie dhcpd.conf.example zu dhcpd.conf oder erstellen Sie eine neue dhcpd.conf bevor Sie Änderungen am DHCP-Server vornehmen.
dhcpd.conf besteht aus Deklarationen zu Subnetzen und Hosts und lässt sich vielleicht am einfachsten anhand eines Beispiels erklären:
Option Domänenname „example.com“; (1)
Option Domain-Name-Server 192.168.4.100; (2)
Option Subnetzmaske 255.255.255.0; (3)
default-lease-time 3600; (4)
max-lease-time 86400; (5)
ddns-update-style keine; (6)
Subnetz 192.168.4.0 Netzmaske 255.255.255.0 {
Bereich 192.168.4.129 192.168.4.254; (7)
Optionsrouter 192.168.4.1; (8)
}
host mailhost {
Hardware-Ethernet 02:03:04:05:06:07; (9)
Mailhost.example.com mit fester Adresse; (10)
}
(1) Diese Option gibt die Domäne an, die Clients als Standardsuchdomäne bereitgestellt wird.
(2) Diese Option gibt eine durch Kommas getrennte Liste von DNS-Servern an, die der Client verwenden soll.
(3) Die Netzmaske, die den Clients bereitgestellt wird.
(4) Ein Kunde kann eine bestimmte Gültigkeitsdauer eines Mietvertrags beantragen. Andernfalls weist der Server eine Lease mit diesem Ablaufwert (in Sekunden) zu.
(5) Dies ist die maximale Dauer, für die der Server geleast wird. Sollte ein Client eine längere Lease anfordern, wird eine Lease ausgegeben, obwohl sie nur für Sekunden der maximalen Lease-Zeit gültig ist.
(6) Diese Option gibt an, ob der DHCP-Server versuchen soll, DNS zu aktualisieren, wenn ein Lease akzeptiert oder freigegeben wird. In der ISC-Implementierung ist diese Option erforderlich.
(7) Dies gibt an, welche IP-Adressen in dem für die Zuweisung an Clients reservierten Pool verwendet werden sollen. IP-Adressen zwischen und einschließlich den angegebenen werden an Clients weitergegeben.
(8) Deklariert das Standard-Gateway, das Clients bereitgestellt wird.
(9) Die Hardware-MAC-Adresse eines Hosts (damit der DHCP-Server einen Host erkennen kann, wenn er eine Anfrage stellt).
(10) Gibt an, dass dem Host immer dieselbe IP-Adresse zugewiesen werden soll. Beachten Sie, dass die Verwendung eines Hostnamens hier korrekt ist, da der DHCP-Server den Hostnamen selbst auflöst, bevor er die Lease-Informationen zurückgibt.
Sobald Sie mit dem Schreiben Ihrer dhcpd.conf fertig sind, können Sie fortfahren, den Server zu starten, indem Sie den folgenden Befehl eingeben:
# /usr/local/etc/rc.d/isc-dhcpd.sh start
Sollten Sie in Zukunft Änderungen an der Konfiguration Ihres Servers vornehmen müssen, ist es wichtig zu beachten, dass das Senden eines SIGHUP-Signals an dhcpd nicht dazu führt, dass die Konfiguration neu geladen wird, wie dies bei den meisten Daemons der Fall ist. Ein SIGTERM-Signal, um den Prozess zu stoppen und ihn dann mit dem obigen Befehl neu zu starten. Zum Beispiel:
# ps wax | grep dhcpd
pid von dhcpd wird mit dem obigen Befehl angezeigt, geben Sie den folgenden Befehl ein, um ihn zu beenden.
# kill -15 (pid of dhcpd)