DHCP-Auftrag
Aufgabenstellung
Erstellung eines Netzwerklabors
1. Vorbereitung der Geräte:
- Ein Debian Linux-Server wird aufgesetzt, um als DHCP-Server zu fungieren.
- Ein Router wird ausgesetzt der die zwei Subnetze verbindet und zur gleichen Zeit als Gateway ins Internet dient.
- Zwei Windows-PCs werden vorbereitet, um als DHCP-Client zu dienen (Einer im gleichen Subnetz und der andere im DHCP-Relay Subnetz).
2. Netzwerksetup:
- Auf dem Router werden drei Netzwerk-Interfaces eingerichtet: eines für das interne Netzwerk (intnet) mit der Subnetzmaske 192.168.1.0/26, eines für das interne Netzwerk (DHCP-Relay) und eines für die Internetverbindung (externe DHCP-Zuweisung).
Einrichtungen und Konfiguration des DHCP-Servers
1. Server-Setup auf Debian:
- Der ISC DHCP Server wird auf dem Debian-System installiert.
2. Server-Konfiguration:
- Der DHCP-Server wird so konfiguriert, dass er dem Windows-Client basierend auf dessen MAC-Adresse eine feste IP-Adresse zuweist. Dem Windows-Client wird eine feste IP im intnet-Netzwerk zugewiesen (z.B. 192.168.1.9/26).
3. Überprüfung:
- Der DHCP-Server wird gestartet, um zu überprüfen, ob der Client eine IP-Adresse erhält.
- Mithilfe von Wireshark wird der DHCP-Kommunikationsprozess zwischen Server und Client aufgezeichnet und analysiert. Also es wird mit der Wikipedia Grafik abgeglichen.
Erweiterte Konfiguration und Analyse
1. DHCP-Relay:
- Es wird mit der Einrichtung eines DHCP-Relays auf Linux oder in einer simulierten Umgebung wie Packet Tracer experimentiert, um den Prozess der Weiterleitung von DHCP-Anfragen über verschiedene Netzwerke hinweg zu verstehen.
2. Vergleich von DHCP-Implementierungen:
- Die Unterschiede zwischen verschiedenen DHCP-Server-Implementierungen, wie udhcpd und isc-dhcp-server, werden durch praktische Tests und Vergleiche ermittelt.
3. Fortgeschrittene Server-Optionen:
- Fortgeschrittene Konfigurationsmöglichkeiten des isc-dhcp-Servers, wie die Gruppierung von Geräten basierend auf Hersteller-spezifischen Informationen, werden erkundet und umgesetzt.
Theorie
Grundlagen zu DHCP
Das Dynamic Host Configuration Protocol (DHCP) ist ein Netzwerkprotokoll, das in IP-Netzwerken eingesetzt wird, um Computern und anderen Geräten automatisch IP-Adressen und weitere notwendige Netzwerkinformationen zuzuweisen. Dieser Prozess erleichtert die Netzwerkverwaltung erheblich, da die manuelle Konfiguration von Netzwerkgeräten in großen und dynamischen Netzwerken umständlich und fehleranfällig wäre.
DHCP-Discover und DHCP-Offer
Der DHCP-Vorgang beginnt mit einem DHCP-Discover-Paket, das ein Client ins Netzwerk sendet, um einen DHCP-Server zu finden. Dieses Paket wird als Broadcast gesendet, da der Client zu diesem Zeitpunkt noch keine IP-Adresse hat. DHCP-Server im Netzwerk antworten darauf mit einem DHCP-Offer-Paket, das dem Client eine IP-Adresse und eventuell weitere Konfigurationsparameter wie Subnetzmaske, DNS-Server und Standardgateway anbietet.
DHCP-Request und DHCP-Acknowledgment
Nachdem der Client ein oder mehrere Angebote erhalten hat, wählt er eines aus und sendet einen DHCP-Request zurück an den Server, um das Angebot anzunehmen. Der DHCP-Server bestätigt die Zuteilung der IP-Adresse und der Netzwerkeinstellungen mit einem DHCP-Acknowledgment. Erst nach diesem Schritt ist der Client vollständig im Netzwerk konfiguriert und kommunikationsfähig.
DHCP-Relay
In größeren Netzwerken oder Netzwerken mit mehreren Subnetzen ist es oft notwendig, DHCP-Anfragen über Router hinweg weiterzuleiten, da Broadcasts nicht durch Router weitergeleitet werden. Hier kommt das DHCP-Relay ins Spiel. Ein DHCP-Relay-Agent leitet DHCP-Pakete zwischen Clients und Servern über verschiedene Netzwerksegmente hinweg. So können Clients in einem Subnetz IP-Konfigurationen von einem DHCP-Server in einem anderen Subnetz erhalten.
DHCP-Optionen
DHCP ermöglicht die Verwendung verschiedener Optionen, um eine Vielzahl von Konfigurationsparametern zu übermitteln. Zu den gängigen Optionen gehören Router (Standardgateway), DNS-Server, NTP-Server und viele andere. Diese Optionen erlauben eine flexible und detaillierte Konfiguration der Client-Geräte und unterstützen spezifische Netzwerkanforderungen.
Aufbau der Labor Umgebung
vogelsrv42001 - Router (VYOS)
Grundkonfiguration
Aktivierung der permanenten Konfiguration
Nach dem Einloggen mit den Zugangsdaten (Benutzername: vyos, Passwort: vyos) wurde VyOS dauerhaft auf der Festplatte installiert, indem den Anweisungen des Installationsassistenten gefolgt wurde. Dies gewährleistet, dass die Konfiguration auch nach einem Neustart erhalten bleibt.
install image
Einrichten der Netzwerkschnittstellen
Mit der abgeschlossenen Installation begann die Konfiguration der Netzwerkschnittstellen, Routing-Protokolle und NAT-Regeln:
1. Starten des Konfigurationsmodus.
configure
2. Konfiguration der Netzwerkschnittstellen mit festen IP-Adressen oder über DHCP und Zuweisung passender Beschreibungen:
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'OUTSIDE'
set interfaces ethernet eth1 address 192.168.1.1/26
set interfaces ethernet eth1 description 'VOGEL_INTNET'
set interfaces ethernet eth2 address 192.168.1.65/26
set interfaces ethernet eth2 description 'VOGEL_DHCP_RELAY'
3. Einrichten einer statischen Route für den Internetzugang durch Ersetzen von <Your_Gateway_IP>
mit der IP des Gateways.
set protocols static route 0.0.0.0/0 next-hop <Your_Gateway_IP>
4. Einrichten von NAT-Regeln, um internen Netzwerken Zugang zum Internet zu ermöglichen:
set nat source rule 100 outbound-interface name eth0
set nat source rule 100 source address 192.168.1.0/26
set nat source rule 100 translation address masquerade
set nat source rule 101 outbound-interface name eth0
set nat source rule 101 source address 192.168.1.64/26
set nat source rule 101 translation address masquerade
5. Anwenden und Speichern der Konfiguration:
commit
save
Überprüfung der Konfiguration
Nach dem Speichern der Konfiguration erfolgte eine Überprüfung, um die korrekte Einrichtung sicherzustellen:
1. Überprüfung der Schnittstellenkonfiguration mittels Anzeige aller Konfigurationen der Schnittstellen, inklusive der zugewiesenen IP-Adressen und Beschreibungen.
show interfaces
2. Testen der Konnektivität und Routing-Einstellungen durch erfolgreiches Pingen der IP-Adresse 8.8.8.8 (Google DNS), was die korrekte Funktion der statischen Route und Internetverbindung bestätigte.
ping 8.8.8.8
3. Überprüfung der NAT-Regeln, wobei der entsprechende Befehl die konfigurierten NAT-Regeln und ihre Details anzeigte, was bestätigte, dass das NAT korrekt eingerichtet wurde.
show nat source rules
vogelsrv42002 - Ubuntu-Server (ISC-DHCP)
Grundkonfiguration
Überprüfen der aktuellen Netzwerkkonfiguration (Normalerweise nicht nötig):
Öffnen eines Terminals auf dem Debian- oder Ubuntu-Server und Ausführen des Befehls ip a
zur Anzeige der aktuellen Netzwerkeinstellungen und -schnittstellen.
ip a
Konfiguration der Netzwerkschnittstelle ens33
Ziel war es, die Schnittstelle ens33 mit einer statischen IP-Adresse einzurichten, durch Bearbeitung der Netplan-Konfigurationsdatei in einem Texteditor wie nano.
nano /etc/netplan/00-installer-config.yaml
Hinzufügen eines Abschnitts zur Datei, der ens33 eine statische IP-Adresse zuweist.
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.2/26]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
version: 2
Anwenden der Netzwerkkonfiguration
Durch Ausführung des entsprechenden Befehls wurde ens33 mit der in der Netplan-Konfigurationsdatei festgelegten statischen IP-Adresse konfiguriert.
sudo netplan apply
Einrichten und Konfigurieren eines DHCP-Servers
ISC-DHCP-Server Installation
Zunächst erfolgte die Installation des ISC-DHCP-Servers durch Öffnen eines Terminals und Eingabe des Installationsbefehls.
sudo apt install isc-dhcp-server
DHCP-Server konfigurieren
Die Hauptkonfigurationsdatei dhcpd.conf wurde mit einem Texteditor wie nano bearbeitet, um den DHCP-Server zu konfigurieren.
nano /etc/dhcp/dhcpd.conf
Es wurde eine Basis-Konfiguration eingefügt, die eine Standard-Lease-Zeit und eine maximale Lease-Zeit festlegt. Ein Subnetz wurde definiert, das einen IP-Bereich für die DHCP-Clients bereitstellt.
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
Netzwerkschnittstelle für DHCP festlegen
Die isc-dhcp-server-Konfigurationsdatei wurde bearbeitet und die INTERFACES-Variable auf die entsprechende Schnittstelle gesetzt, in diesem Fall ens33.
nano /etc/default/isc-dhcp-server
DHCP-Server neu starten
Um die Änderungen anzuwenden, wurde der DHCP-Server neu gestartet.
sudo systemctl restart isc-dhcp-server.serviceserver
Überprüfung und Analyse
Es wurde ein Client im selben Netzwerk getestet, um sicherzustellen, dass der DHCP-Server korrekt arbeitet.
Konfiguration des DHCP-Servers mit Reservation
Die Hauptkonfigurationsdatei dhcpd.conf wurde erneut bearbeitet, um den DHCP-Server weiter zu konfigurieren.
nano /etc/dhcp/dhcpd.conf
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
host vogelsrv42010 {
hardware ethernet 00:50:56:9e:c7:d7;
fixed-address 192.168.1.9;
}
Es wurde eine spezielle Konfiguration hinzugefügt, die einem Gerät mit der MAC-Adresse 00:50:56:9e:c7:d7 immer die IP-Adresse 192.168.1.9 zuweist, wenn es eine DHCP-Anfrage stellt. Nachdem diese Einstellung vorgenommen wurde, wurde der DHCP-Server neu gestartet, um die Änderungen zu übernehmen.
sudo systemctl restart isc-dhcp-server.serviceserver
vogelsrv42010 / vogelsrv42011 - Windows-Server
Erweiterte Konfiguration und Analyse
Einrichtung eines DHCP-Relays
Für die Einrichtung eines DHCP-Relays auf einem Router, beispielsweise VyOS, wurden folgende Schritte durchgeführt:
1. Beginn mit der Konfiguration im Konfigurationsmodus.
configure
2. Konfiguration des DHCP-Relay-Services, um Anfragen von eth2 zu sammeln und diese über eth1 an den DHCP-Server mit der Adresse 192.168.1.2 weiterzuleiten.
set service dhcp-relay server 192.168.1.2
set service dhcp-relay upstream-interface eth1
set service dhcp-relay listen-interface eth2
commit
save
Erstellung neuer DHCP-Subnets
Für die Erstellung neuer DHCP-Subnets wurde die DHCP-Konfigurationsdatei bearbeitet:
1. Öffnen der Datei `dhcpd.conf` mit einem Texteditor.
nano /etc/dhcp/dhcpd.conf
2. Hinzufügen der Konfiguration für die neuen Subnets und anschließendes Neustarten des DHCP-Servers, um die Änderungen zu übernehmen.
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
subnet 192.168.1.64 netmask 255.255.255.192 {
range 192.168.1.70 192.168.1.110;
option routers 192.168.1.65;
option domain-name-servers 1.1.1.1;
}
3. Nachdem die Datei gespeichert und geschlossen wurde, startete den DHCP-Server neu, um die Änderungen zu übernehmen.
sudo systemctl restart isc-dhcp-server
Testen des DHCP-Relays
Zur Überprüfung des DHCP-Relays wurde ein neuer Windows-Server in das Netzwerk integriert und überprüft, ob dieser eine korrekte IP-Konfiguration vom DHCP-Server erhält.
1. Eine neue Windows-VM wurde im Netzwerk eingerichtet, das von eth2 bedient wird.
2. Nach dem Hochfahren der VM überprüft man, ob sie eine IP-Adresse aus dem entsprechenden DHCP-Bereich erhielt (z.B. 192.168.1.70 bis 192.168.1.110 für das Subnet 192.168.1.64/26).
3. Auf dem Windows-Server führt man in der Befehlszeile (CMD) den Befehl `ipconfig /all` aus, um die erhaltene IP-Konfiguration zu überprüfen. Es bestätigte sich, dass die VM korrekt eine IP-Adresse, Subnetzmaske, den Standardgateway und die DNS-Serverinformationen vom DHCP-Server zugewiesen bekam.
Einrichtung und Konfiguration eines DHCP-Servers mit udhcpd
Wichtig ist, dass DHCP-Relay von udhcpd nicht unterstützt wird und daher nur eine einfache DHCP-Konfiguration verwendet wurde.
udhcpd Installation:
Zunächst wurde udhcpd durch Öffnen eines Terminals und Eingabe des Installationsbefehls installiert:
sudo apt install udhcpd
DHCP-Server konfigurieren:
Die Hauptkonfigurationsdatei /etc/udhcpd.conf
wurde mit einem Texteditor wie nano bearbeitet, um den DHCP-Server zu konfigurieren. Es wurde eine Basis-Konfiguration eingefügt, die einen IP-Bereich für die DHCP-Clients bereitstellt:
sudo nano /etc/udhcpd.conf
start 192.168.1.10 # Start des IP-Bereichs
end 192.168.1.50 # Ende des IP-Bereichs
option subnet 255.255.255.192
option router 192.168.1.1
option dns 1.1.1.1
option lease 600 # Standard-Lease-Zeit in Sekunden
interface ens33
lease_file /var/lib/misc/udhcpd.leases
static_lease 00:50:56:9e:c7:d7 192.168.1.9
udhcpd aktivieren und starten:
Um udhcpd zu aktivieren und zu starten, wurde zunächst überprüft, ob es nicht durch eine Einstellung in /etc/default/udhcpd
deaktiviert ist. Anschließend wurde der DHCP-Server neu gestartet, um die vorgenommenen Änderungen anzuwenden:
sed -i '/DHCPD_ENABLED/ s/no/yes/' /etc/default/udhcpd
touch /var/lib/misc/udhcpd.leases
update-rc.d udhcpd defaults
sudo service udhcpd restart
udhcpd testen:
Nach dem Neustart wurde die Funktionalität von udhcpd getestet, indem ein Client im Netzwerk überprüft wurde, ob er eine IP-Adresse aus dem konfigurierten Bereich erhält.
Unterschiede zwischen udhcpd und dem ISC DHCP Server:
- Komplexität und Ressourcenverbrauch: udhcpd ist für kleinere Netzwerke oder Embedded-Systeme konzipiert und zeichnet sich durch geringeren Ressourcenverbrauch und einfache Konfiguration aus. ISC DHCP bietet umfangreichere Konfigurationsmöglichkeiten für größere Netzwerke, benötigt aber mehr Systemressourcen.
- Konfigurationsdatei: udhcpd verwendet eine einzige Konfigurationsdatei (
/etc/udhcpd.conf
), die einfacher gestaltet ist. ISC DHCP verwendet die Datei/etc/dhcp/dhcpd.conf
für komplexe Konfigurationsszenarien. - Funktionsumfang: udhcpd konzentriert sich auf Kern-DHCP-Funktionen und ist für einfache Szenarien geeignet. ISC DHCP bietet erweiterte Funktionen wie dynamisches DNS, IPv6-Unterstützung und detaillierte Zugriffskontrollen.
Einrichten eines ISC DHCP-Servers auf BSD
ISC DHCP-Server Installation:
Zuerst wurde die passende Version des ISC DHCP-Servers identifiziert und installiert:
pkg search isc-dhcp
sudo pkg install isc-dhcp44-server-4.4.3P1
DHCP-Server konfigurieren:
Die Hauptkonfigurationsdatei /usr/local/etc/dhcpd.conf
wurde mit einem Texteditor bearbeitet, um den DHCP-Server zu konfigurieren:
sudo nano /usr/local/etc/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
DHCP-Server aktivieren und starten:
Um den DHCP-Server zu aktivieren und beim Systemstart automatisch zu starten, wurde die Datei /etc/rc.conf
bearbeitet und der DHCP-Server gestartet:
dhcpd_enable="YES"
Dann haben wir den DHCP-Server gestartet, um sicherzustellen, dass unsere Konfigurationen angewandt werden:
sudo service isc-dhcpd start
FreeBSD DHCP testen:
Die Funktion des DHCP-Servers auf FreeBSD wurde getestet, indem überprüft wurde, ob ein Windows Server im Netzwerk eine IP-Konfiguration vom DHCP erhält.
Wireshark Analyse
Schliesslich wurde der Ablauf einer `ipconfig /renew` Anfrage in Wireshark aufgezeichnet und bestätigte die Übereinstimmung mit der Struktur, wie sie auch auf Wikipedia beschrieben ist.
Packet Tracer - DHCP Relay
Overview
Folgend ist der Packet Tracer Aufbau zu sehen um DHCP Relay zu testen.
vogelsrv42001
GigabitEthernet0/0
Konfiguration vom Router Interface zum VOGEL_INTNET Switch
GigabitEthernet1/0
Konfiguration vom Router Interface zum VOGEL_DHCP_RELAY Switch
DHCP-Relay konfiguration
Die Folgende konfiguration muss man noch extra auf dem Router machen damit der DHCP Relay funktioniert.
conf t
interface GigabitEthernet1/0
ip helper-address 192.168.1.2
exit
wr
vogelsrv42002
Server Netzwerkkonfiguration
Netzwerkkonfiguration des DHCP Servers im VOGEL_INTNET
DHCP VOGEL_INTNET Konfiguration
DHCP Konfiguration von VOGEL_INTNET. Der Name darf nicht geändert werden, da der Packet Tracer sonst einen neuen erstellt, was zu Problemen führen kann.
DHCP VOGEL_DHCP_RELAY Konfiguration
DHCP Konfiguration von VOGEL_DHCP_RELAY.
vogelsrv42010
DHCP Konfiguration
Prüfen, ob der Client eine DHCP IP im VOGEL_INTNET erhält.
vogelsrv42011
DHCP Konfiguration
Prüfen, ob der Client eine DHCP IP im VOGEL_DHCP_RELAY erhält.