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

DHCP Auftrag.excalidraw

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)

image.png

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

image.png

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

image.png

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

image.png

vogelsrv42002 - Ubuntu-Server (ISC-DHCP)

image.png

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

image.png

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

image.png

DHCP-Server neu starten

Um die Änderungen anzuwenden, wurde der DHCP-Server neu gestartet.

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

Es wurde ein Client im selben Netzwerk getestet, um sicherzustellen, dass der DHCP-Server korrekt arbeitet.

image.png

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

image.png

vogelsrv42010 / vogelsrv42011 - Windows-Server

image.png

image.png

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.

image.png

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.

image.png

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

image.png

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.

image.png

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.

image.png

Packet Tracer - DHCP Relay

DHCP-Auftrag.pkt

Overview

Folgend ist der Packet Tracer Aufbau zu sehen um DHCP Relay zu testen.

image.png

vogelsrv42001

GigabitEthernet0/0

Konfiguration vom Router Interface zum VOGEL_INTNET Switch

image.png

GigabitEthernet1/0

Konfiguration vom Router Interface zum VOGEL_DHCP_RELAY Switch

image.png

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

image.png

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.

image.png

DHCP VOGEL_DHCP_RELAY Konfiguration

DHCP Konfiguration von VOGEL_DHCP_RELAY.

image.png

vogelsrv42010

DHCP Konfiguration

Prüfen, ob der Client eine DHCP IP im VOGEL_INTNET erhält.

image.png

vogelsrv42011

DHCP Konfiguration

Prüfen, ob der Client eine DHCP IP im VOGEL_DHCP_RELAY erhält.

image.png

Ergebnis