In diesem Artikel geht's um die wichtigsten Konfigurationsoptionen von Netplan, das oft bei Distributionen wie Ubuntu und seinen Ablegern genutzt wird. Wir schauen uns die empfohlene Basiskonfiguration, die Konfiguration zusätzlicher IPs und deren Verwendung in einer virtualisierten Umgebung an.
Es gibt mehrere Optionen zur Auswahl:
- Verwende mehrere IP-Adressen auf dem HOST ohne Virtualisierung
- Verwende Bridging (Layer 2), um deinen VMs IP-Adressen zuzuweisen
- Verwende Routing (Layer 3), um deinen VMs IP-Adressen zuzuweisen
- Kombiniere Routing und Bridging zu einer hybriden Konfiguration, indem du zwei oder mehr Netzwerkbrücken nutzt
Beispielterminologie
2001:db8:1234:: # Platzhalter für öffentliches IPv6-Netzwerk des Servers
10.0.0.168 # Platzhalter für Haupt-IPv4
10.0.10.135 # Platzhalter für zusätzliche einzelne IPv4
10.10.10.128/29 # Platzhalter für zusätzliches IPv4-Netzwerk
AA:BB:CC:DD:EE:FF # Platzhalter für MAC-Adresse der physischen Schnittstelle und Haupt-IPv4
00:50:56:00:11:22 # Platzhalter für virtuelle MAC-Adresse der zusätzlichen einzelnen IP-AdresseBeispiel für die Standardkonfiguration nach einer neuen Ubuntu 24-Installation (Hetzner-Installationsimage)
nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp7s0:
addresses:
- 10.0.0.1 # Haupt-IPv4 für den HOST
- 2001:db8:1234::1 # Haupt-IPv6/64-Subnetz für den HOST
routes:
- on-link: true
to: 0.0.0.0/0
via: 10.0.0.129 # Gateway IPv4 of the main IPv4 address
- to: default
via: fe80::1 # Standard-IPv6-Gateway von Hetzner
nameservers:
addresses:
- 185.12.64.2 # Nameservers from installimage process
- 2a01:4ff:ff00::add:1 # Nameservers from installimage process
- 185.12.64.1 # Nameservers from installimage process
- 2a01:4ff:ff00::add:2 # Nameservers from installimage processKonfigurieren von zusätzlichen einzelnen IPv4-Adressen und IPv4-Subnetzen (ohne Virtualisierung)
Voraussetzungen:
- Der Server hat 1 physische Uplink-Schnittstelle – enp7s0 mit der MAC-Adresse AA:BB:CC:DD:EE:FF
- Der Server hat eine Haupt-IPv4-Adresse (enp7s0)
- Der Server hat eine zusätzliche einzelne IPv4-Adresse (die virtuelle MAC-Adresse wurde über das Robot-Konto deaktiviert)
- Der Server hat ein zusätzliches IPv4-Subnetz
- Der Server hat ein /64 IPv6-Subnetz für den HOST
Ziel:
- Der Server kann über folgende Adressen kommunizieren:
- Haupt-IPv4
- Zusätzliche einzelne IPv4
- Alle nutzbaren IP-Adressen des IPv4-Subnetzes (einschließlich der Netz-IP)
- IPv6::2/64
- IPv6::3/64
Umsetzung:
- Alle IP-Adressen und Routen werden direkt auf der Hauptschnittstelle konfiguriert.
Schritt 1 – Netplan auf dem HOST einrichten
nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp7s0:
addresses:
- 10.0.0.168/32 # Main IPv4 for the HOST
- 10.0.10.135/32 # The single IPv4 Address for the GUEST
- 10.10.10.128/32 # Net-IP of the IPv4 Subnet (Net IP can be used in this case)
- 10.10.10.129/32 # IP of the IPv4 Subnet
- 10.10.10.130/32 # IP of the IPv4 Subnet
- 10.10.10.131/32 # IP of the IPv4 Subnet
- 10.10.10.132/32 # IP of the IPv4 Subnet
- 10.10.10.133/32 # IP of the IPv4 Subnet
- 10.10.10.134/32 # Last usable IP of the IPv4 Subnet (.135 is reserved for broadcast)
- 2001:db8:1234::2/128 # Main IPv6/64 subnet for the HOST
- 2001:db8:1234::3/128 # Main IPv6/64 subnet for the HOST
routes:
- on-link: true
to: 0.0.0.0/0
via: 10.0.0.129 # Gateway IPv4 of the main IPv4 address
- to: default
via: fe80::1 # Default Hetzner IPv6 gateway
nameservers:
addresses:
- 185.12.64.2 # Nameservers from installimage process
- 2a01:4ff:ff00::add:1 # Nameservers from installimage process
- 185.12.64.1 # Nameservers from installimage process
- 2a01:4ff:ff00::add:2 # Nameservers from installimage processErklärung:
Der Kernel nutzt keine Routen für lokale zusätzliche IPs, auch wenn sie definiert sind. Der Datenverkehr wird für zusätzliche IPs nicht über die Haupt-IPv4 geleitet, und du siehst keinen zusätzlichen Hop für zusätzliche IPs. Das führt aber nicht zu abuse. Bei jeder IP ist die Source-MAC-Adresse die erlaubte MAC-Adresse der Haupt-IPv4. Das Hetzner-Netzwerk leitet den Datenverkehr korrekt an zusätzliche IPs auf deinem Server weiter, und der Server sendet den Datenverkehr ordnungsgemäß an das Hetzner-Netzwerk.