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
Permanente konfiguration aktivieren
Nachdem wir uns mit den Zugangsdaten (Benutzername: vyos, Passwort: vyos) eingeloggt haben, ging es darum, VyOS dauerhaft auf der Festplatte zu installieren. Dafür haben wir einfach den Anweisungen des Installationsassistenten gefolgt. So bleibt unsere Konfiguration auch nach dem Neustart erhalten.
install image
Netzwerkschnittstellen einrichten
Mit der Installation im Rücken haben wir uns an die Konfiguration der Netzwerkschnittstellen, Routing-Protokolle und NAT-Regeln gemacht:
1. Wir haben den Konfigurationsmodus gestartet.
configure
2. Die Netzwerkschnittstellen haben wir mit festen IP-Adressen oder über DHCP konfiguriert und ihnen passende Beschreibungen gegeben.
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. Eine statische Route für den Internetzugang wurde eingerichtet, indem wir <Your_Gateway_IP> durch die IP unseres Gateways ersetzt haben.
set protocols static route 0.0.0.0/0 next-hop <Your_Gateway_IP>
4. NAT-Regeln wurden so eingerichtet, dass unsere internen Netzwerke auf das Internet zugreifen können.
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. Zum Schluss haben wir die Konfiguration angewendet und gespeichert.
commit
save
Konfiguration überprüfen
Nach dem Speichern der Konfiguration haben wir alles noch einmal überprüft, um sicherzustellen, dass alles korrekt eingerichtet wurde:
1. Die Schnittstellenkonfiguration haben wir mit einem Befehl überprüft, der uns alle Konfigurationen der Schnittstellen, inklusive der zugewiesenen IP-Adressen und Beschreibungen, aufgelistet hat.
show interfaces
2. Die Konnektivität und die Routing-Einstellungen haben wir getestet, indem wir erfolgreich zur IP-Adresse 8.8.8.8 (Google DNS) gepingt haben. Das bestätigte, dass unsere statische Route und die Internetverbindung korrekt funktionieren.
ping 8.8.8.8
3. Die NAT-Regeln haben wir ebenfalls überprüft. Der entsprechende Befehl zeigte uns die konfigurierten NAT-Regeln und ihre Details auf, was bestätigte, dass das NAT richtig eingerichtet wurde.
show nat source rules
vogelsrv42002 - Ubuntu-Server (ISC-DHCP)
Grundkonfiguration
Überprüfen der aktuellen Netzwerkkonfiguration (Normalerweise nicht nötig):
Öffnen Sie ein Terminal auf Ihrem Debian- oder Ubuntu-Server und führen Sie den Befehl ip a
aus, um die aktuellen Netzwerkeinstellungen und -schnittstellen anzuzeigen. Sie sollten eine Liste der Netzwerkschnittstellen sehen.
ip a
Netzwerkschnittstelle ens33 konfigurieren
Wir wollten die Schnittstelle ens33 mit einer statischen IP-Adresse einrichten. Dafür haben wir die Netplan-Konfigurationsdatei in einem Texteditor, zum Beispiel nano, bearbeitet.
nano /etc/netplan/00-installer-config.yaml
In die Datei haben wir einen bestimmten Abschnitt hinzugefügt oder die vorhandene Konfiguration aktualisiert. Dabei haben wir ens33 eine statische IP-Adresse zugewiesen.
# 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
Netzwerkkonfiguration anwenden
Nachdem wir den entsprechenden Befehl ausgeführt hatten, war ens33 mit der statischen IP-Adresse konfiguriert, die wir in der Netplan-Konfigurationsdatei festgelegt hatte.
sudo netplan apply
Einrichten und Konfigurieren eines DHCP-Servers
ISC-DHCP-Server Installation
Zuerst haben wir den ISC-DHCP-Server installiert, indem wir ein Terminal geöffnet und den entsprechenden Installationsbefehl eingegeben haben.
sudo apt install isc-dhcp-server
DHCP-Server konfigurieren
Danach haben wir die Hauptkonfigurationsdatei dhcpd.conf mit einem Texteditor wie nano bearbeitet, um den DHCP-Server zu konfigurieren.
nano /etc/dhcp/dhcpd.conf
Wir haben eine Basis-Konfiguration eingefügt, die eine Standard-Lease-Zeit von 600 Sekunden und eine maximale Lease-Zeit von 7200 Sekunden festlegt. Außerdem haben wir ein Subnetz 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
Anschließend haben wir die Netzwerkschnittstelle konfiguriert, die der DHCP-Server für die Verteilung der IP-Adressen nutzen soll. Dazu haben wir die isc-dhcp-server-Konfigurationsdatei bearbeitet und die INTERFACES-Variable auf die entsprechende Schnittstelle gesetzt, in unserem Fall war das ens33.
nano /etc/default/isc-dhcp-server
DHCP-Server neu starten
Um die vorgenommenen Änderungen anzuwenden, haben wir den DHCP-Server neu gestartet.
sudo systemctl restart isc-dhcp-server.service
Überprüfung und Analyse
Um sicherzustellen, dass der DHCP-Server korrekt arbeitet, haben wir einen Client im selben Netzwerk getestet.
Konfiguration des DHCP-Servers mit Reservation
Wir haben den DHCP-Server weiter konfiguriert, indem wir erneut die Hauptkonfigurationsdatei dhcpd.conf bearbeitet haben.
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;
}
Hier haben wir 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 wir diese Einstellung vorgenommen hatten, haben wir den DHCP-Server neu gestartet, um die Änderungen zu übernehmen.
sudo systemctl restart isc-dhcp-server.service
vogelsrv42010 / vogelsrv42011 - Windows-Server
Erweiterte Konfiguration und Analyse
Einrichtung eines DHCP-Relays
Um ein DHCP-Relay auf einem Router, zum Beispiel VyOS, einzurichten, haben wir folgende Schritte durchgeführt. Diese Konfiguration erlaubt es dem Router, DHCP-Anfragen von einem Netzwerksegment (dem "Listen-Interface") an einen DHCP-Server in einem anderen Netzwerksegment (dem "Server") weiterzuleiten, der über das "Upstream-Interface" erreichbar ist.
1.Wir begannen mit der Konfiguration.
configure
2. Dann haben wir den DHCP-Relay-Service konfiguriert, 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 auf unserem DHCP-Server haben wir die DHCP-Konfigurationsdatei bearbeitet:
1. Zuerst öffneten wir die Datei `dhcpd.conf` mit einem Texteditor.
nano /etc/dhcp/dhcpd.conf
2. Dann fügten wir die Konfiguration für die neuen Subnets hinzu.
# 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 wir die Datei gespeichert und geschlossen hatten, starteten wir den DHCP-Server neu, um die Änderungen zu übernehmen.
sudo systemctl restart isc-dhcp-server
Testen des DHCP-Relays
Um das DHCP-Relay zu testen, haben wir einen neuen Windows-Server in das Netzwerk eingefügt, das durch das DHCP-Relay versorgt wird, und überprüft, ob der Server 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üften wir, 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ührten wir 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.
Wireshark Analyse
Schließlich 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
vogelsrv42001
GigabitEthernet0/0
GigabitEthernet1/0
DHCP-Relay konfiguration
conf t
interface GigabitEthernet1/0
ip helper-address 192.168.1.2
exit
wr