Router/DHCP-Server

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Starten von Programmen

  3. ⚓︎ Ein Terminal öffnen

  4. ⚓︎ mit Root-Rechten arbeiten

  5. ⚓︎ Router

  6. ⚓︎ Router/Multifunktionsgerät

Inhaltsverzeichnis
  1. DHCP-Server mit systemd-networkd
  2. DHCP-Server mit NetworkManager
  3. DHCP-Server mit dnsmasq
  4. Links

Für die Funktionalität eines DHCP-Servers liefern die offiziellen Ubuntu-Paketquellen mehrere Alternativen:

Die beiden DHCP-Server des ISC sind von Vorteil bei großen Installationen mit tausenden von Clienten, insbesondere wenn diese individuelle Konfigurationen benötigen oder mehrere Schnittstellen bedient werden sollen. Im Consumer-Bereich reichen die drei zuletzt genannten Varianten aus. dnsmasq war vor Ubuntu 17.10 als Standardsoftware immer installiert und ist auch bei späteren Versionen oft schon installiert. systemd-networkd ist bei jedem Ubuntu-System bereits installiert und NetworkManager bei jedem Ubuntu-Desktop-System. Diese Anleitung beschränkt sich daher auf diese drei zuletzt genannten Varianten.

Hinweis:

Zur Konfiguration müssen zuerst die an die anfragenden Teilnehmer zu verteilenden Informationen festgelegt werden. In dieser Anleitung wird dafür angenommen:

Die Netzwerk-Schnittstelle, über welche der DHCP-Server Anfragen annimmt und Daten verteilt, heißt LAN.

DHCP-Server mit systemd-networkd

Der Artikel zu systemd-networkd wird vorausgesetzt.

Die Datei zu Konfiguration der Schnittstelle LAN erhält diesen Inhalt:

# /etc/systemd/network/50-LAN.network

[Match]
Name = LAN

[Network]
Description = Interne Schnittstelle eines kleinen Multifunktions-Routers
DHCPServer = yes
Address = 192.168.33.11/24

[DHCPServer]
PoolOffset = 64
PoolSize = 64

EmitRouter = yes
EmitDNS = yes
DNS = 192.0.2.53 203.0.113.53
EmitDomains = yes
Domains = ubuntuusers.example.net
#SendOption = option:type:value

Die feste Zuordnung von IP-Adressen ist über den DHCP-Server von systemd-networkd nicht möglich.

DHCP-Server mit NetworkManager

NetworkManager startet automatisch auf einer Schnittstelle LAN einen DHCP-Server, wenn im zugeordneten Verbindungsprofil für die IPv4-Methode der Wert shared gewählt wird. Dies wird in der GUI als „Gemeinsam mit anderen Rechnern“ dargestellt. Man kann in der GUI nm-connection-editor das Netzwerk definieren oder man verwendet die Vorgabe 10.42.X.0/24. Im dritten Byte wird „X“, beginnend mit 0 hochgezählt, wenn man mehrere Schnittstellen in diesem Modus konfiguriert. Der Schnittstelle selbst kann man als Gateway für hier angeschlossenen Rechner eine benutzbare Adresse aus dem hier definierten Netz geben. Man kann aber Netzwerk und Vergabebereich der IP-Adressen nicht unabhängig voneinander festlegen. Die oben gestellte Aufgabe kann deshalb mit NetworkManager nur näherungsweise gelöst werden. Entweder muss man die Gateway-Adresse ändern oder den Vergabebereich für die Adressen erweitern. In der Datei für das Verbindungsprofil im Verzeichnis /etc/NetworkManager/system-connections/ sieht das so aus:

[ipv4]
# Gateway-Adresse anders als in Aufgabenstellung:
address1=192.168.33.64/26,192.168.33.80
# Vergabebereich anders als in Aufgabenstellung:
#address1=192.168.33.0/24,192.168.33.11

method=shared

Die DNS-Server und DNS-Suchdomänen werden automatisch entsprechend den bereits für den Rechner geltenden Verhältnisse bestimmt. Da NetworkManager bei Desktop-Installationen normalerweise systemd-resolved als DNS-Cache einrichtet, wird in der Regel dieser Rechner der DNS-Nameserver für die an dieser Schnittstelle LAN angeschlossenen Rechner.

Die feste Zuordnung von IP-Adressen ist über den DHCP-Server von NetworkManager nicht möglich.

NetworkManager benutzt den DHCP-Server aus dem Paket dnsmasq-base.

DHCP-Server mit dnsmasq

Der Artikel zu Dnsmasq wird vorausgesetzt. Dort ist auch die Konfiguration eines DHCP-Servers ausführlich erklärt. Dnsmasq (Abschnitt „Konfiguration-als-DHCP-Server“)

Datei /etc/dnsmasq.conf

interface=LAN
interface=AUX
no-dhcp-interface=Welt

# dhcp-range=interface:LAN,AUX,192.168.33.64,192.168.33.127,12h
# dhcp-range=interface:AUX,192.168.33.64,192.168.33.79,1h
# dhcp-range=interface:LAN,192.168.33.80,192.168.33.127,infinite
dhcp-range=192.168.33.64,192.168.33.127,12h

# dhcp-host=<MAC-Adresse>,<IP-Adresse>,<Verleihdauer>
dhcp-host=0A:01:02:42:25:67,192.168.33.129,infinite
dhcp-host=0A:99:23:55:66:77,192.168.33.130,infinite

dhcp-option=3,192.168.33.11

Hinweis:

* Jede Schnittstelle muss unabhängig von dnsmasq selbst bereits eine IP-Adresse besitzen!