Skip to main content

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.

image.png

Theorie

Vorgehen mit Hürden und Lösungsansätze

Erstellung eines Netzwerklabors

Router (VYOS)

image.png

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 '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 '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

image.png

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

image.png

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

image.png


Debian-Server (Ubuntu)

image.png

Ü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

image.png

Konfigurieren der Netzwerkschnittstelle ens35:

Um ens33 mit einer statischen IP-Adresse zu konfigurieren, bearbeiten Sie die Netplan-Konfigurationsdatei mit einem Texteditor Ihrer Wahl, wie z.B. nano.

nano /etc/netplan/00-installer-config.yaml

Fügen Sie den folgenden Abschnitt in die Datei ein oder aktualisieren Sie die vorhandene Konfiguration. Dabei wird ens33 auf DHCP gesetzt (falls noch nicht geschehen), und ens35 wird 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

Anwenden der Netzwerkkonfiguration:

Nachdem Sie diesen Befehl ausgeführt haben, wird ens33 mit der statischen IP-Adresse konfiguriert sein, die Sie in der Netplan-Konfigurationsdatei angegeben haben.

sudo netplan apply
Windows-Server

image.png

DHCP-Server Einrichtung und Konfiguration

Installation des ISC-DHCP-Servers:

Öffnen Sie ein Terminal und installieren Sie den ISC-DHCP-Server mit dem folgenden Befehl:

sudo apt install isc-dhcp-server
Konfiguration des DHCP-Servers

Konfigurieren Sie den DHCP-Server, indem Sie die Hauptkonfigurationsdatei dhcpd.conf bearbeiten. Verwenden Sie einen Texteditor Ihrer Wahl, wie nano:

nano /etc/dhcp/dhcpd.conf

Fügen Sie die folgende minimale Konfiguration in die Datei ein:

# 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;
}

Diese Konfiguration setzt eine Standard-Lease-Zeit von 600 Sekunden, eine maximale Lease-Zeit von 7200 Sekunden und definiert ein Subnetz mit einem IP-Bereich für DHCP-Clients.

Festlegen der Netzwerkschnittstelle für den DHCP-Dienst:

Konfigurieren Sie die Netzwerkschnittstelle, die der DHCP-Server für die Verteilung der IP-Adressen verwenden soll, indem Sie die isc-dhcp-server-Konfigurationsdatei bearbeiten:

nano /etc/default/isc-dhcp-server

Setzen Sie die INTERFACES-Variable auf die Schnittstelle, die der DHCP-Server verwenden soll (in diesem Beispiel ens35):

image.png

Neustarten des DHCP-Servers:

Wenden Sie die Änderungen an, indem Sie den DHCP-Server neu starten:

sudo systemctl restart isc-dhcp-server.service
Überprüfung und Analyse

Um sicherzustellen, dass der DHCP-Server richtig funktioniert, können Sie einen Client im selben Netzwerk testen.

image.png

Konfiguration des DHCP-Servers mit Reservation

Konfigurieren Sie den DHCP-Server, indem Sie die Hauptkonfigurationsdatei dhcpd.conf bearbeiten. Verwenden Sie einen Texteditor Ihrer Wahl, wie nano:

nano /etc/dhcp/dhcpd.conf

Fügen Sie die folgende minimale Konfiguration in die Datei ein:

# 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;
}

In diesem Beispiel wird dem Gerät mit der MAC-Adresse 00:50:56:9e:c7:d7 immer die IP-Adresse 192.168.1.9 zugewiesen, wenn es eine DHCP-Anfrage sendet.

Starten Sie den DHCP-Server neu, um die Änderungen zu übernehmen. Verwenden Sie den folgenden Befehl, um den ISC DHCP-Server neu zu starten:

sudo systemctl restart isc-dhcp-server.service

image.png

Erweiterte Konfiguration und Analyse

DHCP-Relay Konfiguration

Um eine DHCP-Relay-Konfiguration auf einem Router (z.B. VyOS) einzurichten, folgen Sie diesen Schritten. Dies ermöglicht 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. Starten Sie die Konfiguration:

configure

2. Konfigurieren Sie den DHCP-Relay-Service:

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

Diese Befehle konfigurieren den DHCP-Relay, um Anfragen von eth2 zu sammeln und diese über eth1 an den DHCP-Server mit der Adresse 192.168.1.2 weiterzuleiten.

Neues DHCP Subnets erstellen

Um neue DHCP-Subnets auf Ihrem DHCP-Server zu erstellen, bearbeiten Sie die DHCP-Konfigurationsdatei:

1. Öffnen Sie die Datei dhcpd.conf mit einem Texteditor:

nano /etc/dhcp/dhcpd.conf

2. Fügen Sie 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. Speichern Sie die Datei und schließen Sie den Editor.

4. Starten Sie den DHCP-Server neu, um die Änderungen zu übernehmen:

sudo systemctl restart isc-dhcp-server
DHCP-Relay testen

Um zu überprüfen, ob der DHCP-Relay funktioniert, fügen Sie einen neuen Windows-Server in das Netzwerk ein, das über das DHCP-Relay bedient wird, und prüfen Sie, ob der Server eine korrekte IP-Konfiguration vom DHCP-Server erhält.

1. Richten Sie eine neue Windows-VM im Netzwerk ein, das von eth2 bedient wird.

2. Überprüfen Sie nach dem Start der VM, ob sie eine IP-Adresse aus dem entsprechenden DHCP-Bereich erhält (z.B. 192.168.1.70 bis 192.168.1.110 für das Subnet 192.168.1.64/26).

3. Verwenden Sie auf dem Windows-Server die Befehlszeile (CMD) und führen Sie ipconfig /all aus, um die erhaltene IP-Konfiguration zu überprüfen. Sie sollten sehen, dass die VM eine IP-Adresse, einen Subnetzmasken, den Standardgateway und die DNS-Serverinformationen korrekt vom DHCP-Server zugewiesen bekommen hat.

image.png

Wireshark DHCP

Folgend sieht man einen Screenshot wie im Wireshark ipconfig /renew aufgezeichnet wurde. Der Ablauf stimmt überein mit der Grafik auf Wikipedia.

image.png

Packet Tracer - DHCP Relay

Overview

image.png

vogelsrv42001

GigabitEthernet0/0

image.png

GigabitEthernet1/0

image.png

DHCP-Relay konfiguration
conf t
interface GigabitEthernet1/0
ip helper-address 192.168.1.2
exit
wr

vogelsrv42002

DHCP-Auftrag.pkt

Server Netzwerkkonfiguration

image.png

DHCP VOGEL_INTNET Konfiguration

image.png

DHCP VOGEL_DHCP_RELAY Konfiguration

image.png

vogelsrv42010

DHCP Konfiguration

image.png

vogelsrv42011

DHCP Konfiguration

image.png

Ergebnis