Ein DHCP-Server ist ein wesentlicher Bestandteil moderner Computer-Netzwerke. Mit wenig Aufwand kann man sich viel Zeit sparen, wenn es darum geht jeden Host innerhalb des Netzes kommunizieren zu lassen.
Vorbereitung
Ich benutze hierfür meine bereits installierte FreeBSD VM aus den vorherigen FreeBSD-Artikeln.
Hierfür gebe ich nochmal folgende Artikel an die Hand:
Nachdem das erledigt ist, habe ich die VM geklont (Rechtsklick auf die Maschine und Klonen auswählen). Hierbei unter MAC-Adressen-Richtlinie „Neue MAC-Adressen für alle Netzwerkadapter generieren“, um eventuelle Probleme vorzubeugen.
Danach habe ich in VirtualBox die 1. VM ausgewählt und unter Ändern -> Netzwerk die Adaptereinstellungen geändert. Adapter 1 steht auf Netzwerkbrücke, Adapter 2 habe ich neu hinzugefügt und auf „Internes Netz“ mit dem Namen „dhcp“ gestellt.
Bei der 2. VM habe ich ebenfalls die Adaptereinstellungen geändert. Hier habe ich Adapter 1 ebenfalls „Internes Netz“ mit dem Namen „dhcp“ gestellt.
Vorbereitung:
- ip vergeben für zweites Int
- service netif restart
- 2. VM auf internes Netz umstellen
Wenn die erste VM hochgefahren ist, muss das zweite Interface noch konfiguriert werden, sodass später eine Kommunikation mit der zweiten VM möglich ist. Dazu unter /etc/rc.conf folgende Zeile ergänzen:
em1="inet 10.0.0.1 netmask 255.255.255.0"
Damit die Änderungen wirksam werden, wird folgender Befehl ausgeführt
service netif restart
DHCP-Server installieren und konfigurieren
Jetzt sind alle Vorbereitungen abgeschlossen und wir beginnen mit dem eigentlichen Thema: den DHCP-Server. Dazu installieren wir uns das Package isc-dhcp44-server.
pkg install isc-dhcp44-server-4.4.2P1_1
Zum Abschluss der Installation erhält man eine Abschlussmeldung, dass der DHCP-Server zwar installiert ist, aber nicht nach einem Reboot automatisch startet. Die Meldung teilt auch gleich mit was zu tun ist. Folgende Einträge sollen in der /etc/rc.conf hinzugefügt werden.
vi /etc/rc.conf
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="em1"
dhcpd_withumask="022"
Jetzt geht es an die Konfiguration des eigentlichen DNS-Servers. Dazu muss die Datei dhcpd.conf geöffnet werden.
vi /usr/local/etc/dhcpd.conf
Für die beispielhafte Konfiguration habe ich die Datei geöffnet. Hier lohnt es sich die beispielhaften Einträge erstmal anzuschauen, um zu verstehen, was alles möglich ist. Danach empfiehlt es sich den Inhalt komplett zu löschen, um eine für die eigenen Zwecke, übersichtliche Datei zu erhalten.
Als Erstes kommen die Globalen Optionen. Hier habe ich eine Domain und drei DNS-Server eingetragen, die später jedes Subnetz enthalten soll. Weiterhin wird eine lease time angegeben, d.h. solange können die Hosts ihre Netzwerkkonfiguration behalten, bevor sie vom DHCP eine neue beziehen müssen. Hier ist der Default-Wert bei 5 Minuten und maximal bei 24 Stunden.
option domain-name "byte-sized.de";
option domain-name-servers 10.0.0.1, 10.0.0.2, 10.0.0.3;
default-lease-time 3600;
max-lease-time 86400;
Als nächsten und letzten Schritt kommt die Definition des eigentlichen Subnetzes, das der DHCP-Server verwalten soll. Hier wird das entsprechende Netz einmal definiert und in der zweiten Zeile festgelegt, innerhalb welcher Range der Server IP-Addressen verteilen soll. An der Stelle gebe ich ihm auch noch das Standardgateway mit. In diesem Fall ist das die IP der ersten VM.
Hinweis: Ich habe hier gezielt ein paar Adressen frei gelassen. Es ist nicht immer ratsam Adressen über einen DHCP zu verteilen, wenn es Komponenten und Geräte sind, die immer bleiben, also eine statische Adressierung benötigen. Zum Beispiel sind das Drucker, Server oder auch Router. Da sollte sich nie etwas ändern, sonst wird das Netz regelmäßig bzw. dauerhaft ausfallen.
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.254;
option routers 10.0.0.1;
}
Mit folgendem Befehl können wir den Server endlich starten
service isc-dhcpd start
service isc-dhcpd status
Hat der DHCP-Server seine Arbeit getan?
Kurz gesagt: ja! Wenn die zweite VM hochgefahren ist und uns die Netzwerkschnittstelle em0 mittels ifconfig ansehen, ist zu erkennen, dass der DHCP-Server, die erstmögliche Adresse seiner Range an den Host vergegeben hat.
Das war auch schon die ganze Arbeit. Ein DHCP-Server ist einer der wesentlichen Komponenten in einem Computer-Netzwerk. Man muss lediglich einmal Zeit investieren und jeder neue Client kann automatisch im Netzwerk kommunizieren. Hierbei ist zu beachten, wie weiter oben bereits erwähnt, nicht jede Komponente eine dynamische IP besitzen sollte. Vorher Zeit in die Planung stecken kann eine Menge Mehraufwand und Ärger ersparen.
Start the discussion