Über DHCP, das Dynamic Host Configuration Protocol,
kann sich ein System mit einem Netzwerk verbinden und die
für die Kommunikation mit diesem Netzwerk nötigen
Informationen beziehen. FreeBSD verwendet den von
OpenBSD 3.7 stammenden dhclient
.
Die Informationen in diesem Abschnitt
beziehen sich daher sowohl auf den dhclient
von ISC als auch auf den von OpenBSD. Als DHCP-Server wird
in beiden Fällen der DHCP-Server der ISC-Distribution
verwendet.
Dieser Abschnitt beschreibt sowohl die Clientseite des
ISC- als auch des OpenBSD-Clients sowie die
Serverseite des DHCP-Systems von ISC. Das Clientprogramm
dhclient
ist in FreeBSD integriert, das
Serverprogramm kann über den Port
net/isc-dhcp42-server
installiert werden. Weiter Informationen finden Sie in
dhclient(8), dhcp-options(5) sowie
dhclient.conf(5).
Der DHCP-Client 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 wichtige Informationen über das
Netzwerk, wie Netzmasken, Router und DNS-Server mitteilt. Diese
Informationen werden als
DHCP-Lease bezeichnet und
sind nur für eine 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).
FreeBSD verwendet den DHCP-Client von OpenBSD. Sowohl während der Installation als auch im Basissystem steht der DHCP-Client zur Verfügung. In Netzen mit DHCP-Servern wird dadurch die Konfiguration von Systemen erheblich vereinfacht.
DHCP wird von sysinstall
unterstützt. Wenn Sie eine Netzwerkkarte mit
sysinstall konfigurieren, lautet
die zweite Frage „Do you want to try DHCP configuration
of the interface?“. Wenn Sie diese Frage bejahen, wird
dhclient
aufgerufen, und die Netzkarte wird
automatisch eingerichtet.
Um DHCP beim Systemstart zu aktivieren, müssen Sie zwei Dinge erledigen:
Stellen Sie sicher, dass bpf
in
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
device bpf
in Ihre Kernelkonfigurationsdatei ein und erzeugen einen
neuen Kernel. Weitere Informationen zur Kernelkonfiguration
finden Sie in Kapitel 9, Konfiguration des FreeBSD-Kernels des Handbuchs.
Das Gerät bpf
ist im
GENERIC
-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.
Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf
auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root
ausgeführt werden
müssen). bpf
muss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf
aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.
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 antwortet und der DHCP-Konfigurationsprozess ebenso schnell abläuft. Jedoch kann DHCP eine lange Zeit benötigen, um auf manchen Systemen fertig zu werden. Falls Netzwerkdienste versuchen, vor DHCP zum Ende zu kommen, 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.
Um sich zu einem DHCP-Server im Hintergrund zu verbinden,
während andere Startskripte fortfahren
(asynchroner Modus), benutzen Sie den
„DHCP
“-Wert in
/etc/rc.conf
:
fxp0
="DHCP"Um den Start zu pausieren, damit DHCP vorher
abgeschlossen werden kann, benutzen Sie den synchronen Modus
mit dem Eintrag
„SYNCDHCP
“:
fxp0
="SYNCDHCP"Ersetzen Sie fxp0
, das
in diesen Beispielen verwendet wurde, durch den Namen Ihrer
Netzwerkschnittstelle, so wie es in Abschnitt 12.8, „Einrichten von Netzwerkkarten“ beschrieben ist.
Wenn Sie dhclient
an einem anderen
Ort installiert haben, oder zusätzliche Flags an
dhclient
übergeben wollen,
fügen Sie auch folgende (entsprechend angepasste)
Zeilen ein:
Der DHCP-Server dhcpd ist als
Teil des Ports
net/isc-dhcp42-server
verfügbar. Dieser Port enthält die komplette
ISC-DHCP-Distribution, inklusive der Dokumentation.
/etc/dhclient.conf
dhclient
benötigt die
Konfigurationsdatei /etc/dhclient.conf
.
Diese Datei enthält normalerweise nur Kommentare, da
die Vorgabewerte zumeist ausreichend sind. Lesen Sie dazu
auch dhclient.conf(5).
/sbin/dhclient
dhclient
ist statisch gelinkt und
befindet sich in /sbin
. Weitere
Informationen finden Sie in dhclient(8).
/sbin/dhclient-script
Bei dhclient-script
handelt es sich
um 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
Der DHCP-Client verfügt über eine Datenbank, die alle derzeit gültigen Leases enthält und als Logdatei erzeugt wird. Weitere Informationen finden Sie in dhclient(8).
Das DHCP-Protokoll wird vollständig im RFC 2131 beschrieben. Eine weitere, lehrreiche Informationsquelle existiert unter http://www.dhcp.org/.
Dieser Abschnitt beschreibt die Einrichtung eines FreeBSD-Systems als DHCP-Server. Dazu wird die DHCP-Implementation von ISC (Internet Systems Consortium) verwendet.
Der DHCP-Server ist nicht im Basissystem von FreeBSD
enthalten, daher müssen Sie als Erstes den Port
net/isc-dhcp42-server
installieren. Lesen Sie Kapitel 5, Installieren von Anwendungen: Pakete und Ports, wenn Sie
weitere Informationen zur Ports-Sammlung benötigen.
Stellen Sie sicher, dass bpf(4) in Ihren Kernel
kompiliert ist. Dazu fügen Sie die Zeile
device bpf
Ihre Kernelkonfigurationsdatei ein und erzeugen einen neuen
Kernel. Die Kernelkonfiguration wird in
Kapitel 9, Konfiguration des FreeBSD-Kernels beschrieben.
Das Gerät bpf
ist im
GENERIC
-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.
Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf
auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root
ausgeführt werden
müssen). bpf
muss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf
aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.
Danach müssen Sie die vom Port
net/isc-dhcp42-server
erzeugte Vorlage für dhcpd.conf
anpassen. Die bei der Installation erzeugte Datei
/usr/local/etc/dhcpd.conf.sample
sollten Sie nach
/usr/local/etc/dhcpd.conf
kopieren,
bevor Sie Veränderungen vornehmen.
dhcpd.conf
besteht aus Festlegungen
zu Subnetzen und Rechnern und lässt sich am besten an
einem Beispiel erklären:
Diese Option beschreibt die Domäne, die den Clients als Standardsuchdomäne zugewiesen wird. Weitere Informationen finden Sie in man.resolv.conf.5;. | |
Diese Option legt eine, durch Kommata getrennte Liste von DNS-Servern fest, die von den Clients verwendet werden sollen. | |
Die den Clients zugewiesene Netzmaske. | |
Ein Client kann eine Lease einer bestimmten Dauer anfordern. Geschieht dies nicht, weist der Server eine Lease mit einer vorgegebenen Ablaufdauer (in Sekunden) zu. | |
Die maximale Zeitdauer, für die der Server
Konfigurationsinformationen vergibt. Sollte ein Client
eine längere Zeitspanne anfordern, wird dennoch
nur der Wert | |
Diese Option legt fest, ob der DHCP-Server eine DNS-Aktualisierung versuchen soll, wenn Konfigurationsdateien vergeben oder zurückgezogen werden. In der ISC-Implementation muss diese Option gesetzt sein. | |
Dadurch werden die IP-Adressen festgelegt, die den Clients zugewiesen werden können. IP-Adressen zwischen diesen Grenzen sowie die einschließenden Adressen werden den Clients zugewiesen. | |
Legt das Standard-Gateway fest, das den Clients zugewiesen wird. | |
Die (Hardware-)MAC-Adresse eines Rechners (durch die der DHCP-Server den Client erkennt, der eine Anforderung an ihn stellt). | |
Einem Rechner soll immer die gleiche IP-Adresse zugewiesen werden. Beachten Sie, dass hier auch ein Rechnername gültig ist, da der DHCP-Server den Rechnernamen auflöst, bevor er die Konfigurationsinformationen zuweist. |
Nachdem Sie dhcpd.conf
fertig
konfiguriert haben, sollten Sie den DHCP-Server aktivieren,
indem Sie folgende Zeilen in
/etc/rc.conf
aufnehmen:
Dabei müssen Sie den Geräteeintrag
dc0
durch die Gerätedatei (mehrere
Gerätedateien müssen durch Leerzeichen getrennt
werden) ersetzen, die Ihr DHCP-Server auf Anfragen von
DHCP-Clients hin überwachen soll.
Danach können Sie den Server durch Eingabe des folgenden Befehls starten:
#
/usr/local/etc/rc.d/isc-dhcpd start
Sollten Sie die Konfiguration Ihres Servers einmal
verändern müssen, reicht es nicht aus, ein
SIGHUP
-Signal an
dhcpd zu senden, weil damit die
Konfiguration nicht erneut geladen wird
(im Gegensatz zu den meisten Daemonen). Sie müssen
den Prozess vielmehr mit dem Signal
SIGTERM
stoppen, um ihn
anschließend neu zu starten.
/usr/local/sbin/dhcpd
dhcpd ist statisch
gelinkt und befindet sich in
/usr/local/sbin
. Lesen Sie auch die
mit dem Port installierte Hilfeseite dhcpd(8), wenn
Sie weitere Informationen zu
dhcpd benötigen.
/usr/local/etc/dhcpd.conf
dhcpd benötigt die
Konfigurationsdatei
/usr/local/etc/dhcpd.conf
, damit
der Server den Clients seine Dienste anbieten kann.
Diese Datei muss alle Informationen enthalten, die an
die Clients weitergegeben werden soll. Außerdem
sind hier Informationen zur Konfiguration des Servers
enthalten. Die mit dem Port installierte Hilfeseite
dhcpd.conf(5) enthält weitere Informationen.
/var/db/dhcpd.leases
Der DHCP-Server hat eine Datenbank, die alle vergebenen Leases enthält. Diese wird als Logdatei erzeugt. Weitere Informationen finden Sie in der vom Port installierten Hilfeseite dhcpd.leases(5).
/usr/local/sbin/dhcrelay
dhcrelay 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 den Port
net/isc-dhcp42-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>.