Das Dynamic Host Configuration Protocol
(DHCP) ermöglicht es einem System, sich mit
einem Netzwerk zu verbinden und die für die Kommunikation mit
diesem Netzwerk nötigen Informationen zu beziehen. FreeBSD
verwendet den von OpenBSD stammenden
dhclient
, um die Adressinformationen zu
beziehen. FreeBSD installiert keinen
DHCP-Server, aber es stehen einige Server in
der FreeBSD Ports-Sammlung zu Verfügung. Das
DHCP-Protokoll wird vollständig im
RFC 2131 beschrieben. Eine weitere, lehrreiche
Informationsquelle existiert unter
isc.org/downloads/dhcp/
.
In diesem Abschnitt wird beschrieben, wie der integrierte DHCP-Client verwendet wird. Anschließend wird erklärt, wie ein DHCP-Server zu installieren und konfigurieren ist.
Unter FreeBSD wird das Gerät bpf(4) für den
DHCP-Server und den
DHCP-Client benötigt. Das Gerät ist
bereits im GENERIC
-Kernel enthalten.
Benutzer, die es vorziehen einen angepassten Kernel zu
erstellen, müssen dieses Gerät behalten, wenn
DHCP verwendet wird.
Es sei darauf hingewiesen, dass bpf
es priviligierten Benutzern ermöglicht einen Paket-Sniffer
auf dem System auszuführen.
Die Unterstützung für den DHCP-Client ist im Installationsprogramm von FreeBSD enthalten, sodass ein neu installiertes System automatisch die Adressinformationen des Netzwerks vom DHCP-Server erhält. In Abschnitt 2.8, „Arbeiten nach der Installation“ finden Sie Beispiele für eine Netzwerkkonfiguration.
dhclient
beginnt von einem
Clientrechner aus über den UDP-Port 68
Konfigurationsinformationen anzufordern. Der Server antwortet
auf dem UDP-Port 67, indem er dem Client
eine IP-Adresse zuweist und ihm weitere
relevante Informationen über das Netzwerk, wie Netzmasken,
Router und DNS-Server mitteilt. Diese
Informationen werden als
DHCP-Lease bezeichnet und sind
nur für bestimmte Zeit, die vom Administrator des
DHCP-Servers vorgegeben wird, gültig.
Dadurch fallen verwaiste IP-Adressen, deren
Clients nicht mehr mit dem Netzwerk verbunden sind,
automatisch an den Server zurück.
DHCP-Clients können sehr viele
Informationen von einem DHCP-Server
erhalten. Eine ausführliche Liste finden Sie in
dhcp-options(5).
Das Gerät bpf
ist im
GENERIC
-Kernel bereits enthalten. Für
die Nutzung von DHCP muss also kein
angepasster Kernel erzeugt werden. In einer angepassten
Kernelkonfigurationsdatei muss das Gerät enthalten sein, damit
DHCP ordnungsgemäß funktioniert.
Standardmässig läuft die DHCP-Konfiguration bei FreeBSD im Hintergrund oder auch asynchron. Andere Startskripte laufen weiter, während DHCP fertig abgearbeitet wird, was den Systemstart beschleunigt.
DHCP im Hintergrund funktioniert gut, wenn der DHCP-Server schnell auf Anfragen der Clients antwortet. Jedoch kann DHCP eine lange Zeit benötigen, um auf manchen Systemen fertig zu werden. Falls Netzwerkdienste gestartet werden, bevor DHCP die Informationen und Netzwerkadressen gesetzt hat, werden diese fehlschlagen. Durch die Verwendung von DHCP im asynchronen Modus wird das Problem verhindert, so dass die Startskripte pausiert werden, bis die DHCP-Konfiguration abgeschlossen ist.
Diese Zeile wird in /etc/rc.conf
verwendet, um den asynchronen Modus zu aktivieren:
ifconfig_fxp0
="DHCP"
Die Zeile kann bereits vorhanden sein, wenn bei der
Installation des Systems DHCP konfiguriert
wurde. Ersetzen Sie fxp0
durch die
entsprechende Schnittstelle. Die dynamische Konfiguration von
Netzwerkkarten wird in Abschnitt 11.5, „Einrichten von Netzwerkkarten“ beschrieben.
Um stattdessen den synchronen Modus zu verwenden, der während des Systemstarts pausiert bis die DHCP-Konfiguration abgeschlossen ist, benutzen Sie „SYNCDHCP“:
ifconfig_fxp0
="SYNCDHCP"
Es stehen weitere Optionen für den Client zur Verfügung.
Suchen Sie in rc.conf(5) nach
dhclient
, wenn Sie an Einzelheiten
interessiert sind.
Der DHCP-Client verwendet die folgenden Dateien:
/etc/dhclient.conf
Die Konfigurationsdatei von
dhclient
. Diese Datei enthält
normalerweise nur Kommentare, da die Vorgabewerte zumeist
ausreichend sind. Diese Konfigurationsdatei wird in
dhclient.conf(5) beschrieben.
/sbin/dhclient
Weitere Informationen über dieses Kommando finden Sie in dhclient(8).
/sbin/dhclient-script
Das FreeBSD-spezifische Konfigurationsskript des DHCP-Clients. Es wird in dhclient-script(8) beschrieben und kann meist unverändert übernommen werden.
/var/db/dhclient.leases.
interface
Der DHCP-Client verfügt über eine Datenbank, die alle derzeit gültigen Leases enthält und als Logdatei erzeugt wird. Diese Datei wird in dhclient.leases(5) beschrieben.
Dieser Abschnitt beschreibt die Einrichtung eines FreeBSD-Systems als DHCP-Server. Dazu wird die DHCP-Implementation von ISC (Internet Systems Consortium) verwendet. Diese Implementation und die Dokumentation können als Port oder Paket net/isc-dhcp43-server installiert werden.
Der Port net/isc-dhcp43-server
installiert eine Beispiel-Konfigurationsdatei. Kopieren Sie
/usr/local/etc/dhcpd.conf.example
nach
/usr/local/etc/dhcpd.conf
und nehmen Sie
die Änderungen an der neuen Datei vor.
Diese Konfigurationsdatei umfasst Deklarationen für Subnetze und Rechner, die den DHCP-Cleints zur Verfügung gestellt wird. Die folgenden Zeilen konfigurieren Folgendes:
option domain-name "example.org";option domain-name-servers ns1.example.org;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 72400;
ddns-update-style none;
subnet 10.254.239.0 netmask 255.255.255.224 { range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org;
} host fantasia { hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
Diese Option beschreibt die Standardsuchdomäne, die den Clients zugewiesen wird. Weitere Informationen finden Sie in resolv.conf(5). | |
Diese Option legt eine, durch Kommata getrennte Liste von DNS-Servern fest, die von den Clients verwendet werden sollen. Die Server können über den Namen (FQDN) oder die IP-Adresse spezifiziert werden. | |
Die den Clients zugewiesene Subnetzmaske. | |
Die Voreinstellung für die Ablaufzeit des Lease in Sekunden. Ein Client kann diesen Wert in der Konfiguration überschreiben. | |
Die maximale Zeitdauer, für die der Server Leases
vergibt. Sollte ein Client eine längere Zeitspanne
anfordern, wird dennoch nur der Wert
| |
Die Voreinstellung | |
Diese Zeile erstellt einen Pool der verfügbaren IP-Adressen, die für die Zuweisung der DHCP-Clients reserviert sind. Der Bereich muss für das angegebene Netz oder Subnetz aus der vorherigen Zeile gültig sein. | |
Legt das Standard-Gateway für das Netz oder Subnetz
fest, das nach der öffnenden Klammer | |
Bestimmt die Hardware-MAC-Adresse eines Clients, durch die der DHCP-Server den Client erkennt, der eine Anforderung an ihn stellt. | |
Einem Rechner soll immer die gleiche IP-Adresse zugewiesen werden. Hier ist auch ein Rechnername gültig, da der DHCP-Server den Rechnernamen auflöst, bevor er das Lease zuweist. |
Die Konfigurationsdatei unterstützt viele weitere Optionen. Lesen Sie dhcpd.conf(5), die mit dem Server installiert wird, für Details und Beispiele.
Nachdem dhcpd.conf
konfiguriert ist,
aktivieren Sie den DHCP-Server in
/etc/rc.conf
:
dhcpd_enable="YES" dhcpd_ifaces="dc0"
Dabei müssen Sie dc0
durch die
Gerätedatei (mehrere Gerätedateien müssen durch Leerzeichen
getrennt werden) ersetzen, die der
DHCP-Server auf Anfragen von
DHCP-Clients hin überwachen soll.
Starten Sie den Server mit folgenden Befehl:
#
service isc-dhcpd start
Künftige Änderungen an der Konfiguration des Servers
erfordern, dass der Dienst dhcpd
gestoppt
und anschließend mit service(8) gestartet wird.
/usr/local/sbin/dhcpd
Weitere Informationen zu dhcpd finden Sie in dhcpd(8).
/usr/local/etc/dhcpd.conf
Die Konfigurationsdatei des Servers muss alle Informationen enthalten, die an die Clients weitergegeben werden soll. Außerdem sind hier Informationen zur Konfiguration des Servers enthalten. Diese Konfigurationsdatei wird in dhcpd.conf(5) beschrieben.
/var/db/dhcpd.leases
Der DHCP-Server hat eine Datenbank, die alle vergebenen Leases enthält. Diese wird als Logdatei erzeugt. dhcpd.leases(5) enthält eine ausführliche Beschreibung.
/usr/local/sbin/dhcrelay
Dieser Daemon wird in komplexen Umgebungen verwendet, in denen ein DHCP-Server eine Anfrage eines Clients an einen DHCP-Server in einem separaten Netzwerk weiterleitet. Wenn Sie diese Funktion benötigen, müssen Sie net/isc-dhcp43-relay installieren. Weitere Informationen zu diesem Thema finden Sie in dhcrelay(8).
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.