Netzkonfiguration Debian / Ubuntu

Last change on 2023-12-04 • Created on 2020-05-18 • ID: RO-E29F4

Haupt-IP-Adresse

IPv4

Die Hauptadresse eines Root-Servers liegt in der Regel in einem /26 oder /27-Netz. Um die (versehentliche) Übernahme fremder IP-Adresse zu verhindern, ist ausschließlich die Kommunikation mit der Gateway-Adresse möglich. Um auch Server im gleichen Netzsegment ansprechen zu können, muss die Netzwerkkonfiguration so erfolgen, daß alle Pakete an das eigene Subnetz trotzdem über das Gateway geschickt werden. Bei den Standardimages ist eine entsprechende Konfiguration bereits enthalten.

Dies wird durch eine Punkt-zu-Punkt-Verbindung zwischen Haupt-Adresse und Gateway erreicht. Dabei wird als Netzmaske 255.255.255.255 (/32) genutzt; so daß der Server davon ausgeht, sich alleine in seinem Ethernet-Segment zu befinden. Damit das das Gateway und damit das Internnet erreicht werden kann, wird eine Host-Route benötigt.

etc/network/interfaces (ENI)

Bei Konfiguration via etc/network/interfaces wird dies mit der Option pointopoint in der Konfiguration realisiert.

## /etc/network/interfaces Beispiel Hetzner Rootserver
# Loopback-Adapter
auto lo
iface lo inet loopback
#
# LAN-Schnittstelle
auto eth0
iface eth0 inet static
  # Haupt-IP-Adresse des Servers
  address 192.168.0.250
  # Netzmaske 255.255.255.255 (/32) unabhängig von der
  # realen Netzaufteilung (z.B. /27)
  netmask 255.255.255.255
  # Explizite Hostroute zum Gateway
  gateway 192.168.0.1
  pointopoint 192.168.0.1

netplan

Bei der Konfiguration via netplan erfolgt dies über das Schlüsselwort on-link.

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
      - 192.168.0.250/32
      routes:
      - to: 0.0.0.0/0
        via: 192.168.0.1
        on-link: true

IPv6

Neben einer primäre IPv4-Adresse erhält jeder Server ein /64 IPv6-Subnetz, welches auf die link-local IPv6-Adresse geroutet wird, die automatisch aus der MAC-Addresse des Servers generiert wird. Im Gegensatz zur IPv4 Konfiguration ist für IPv6 keine Punkt-zu-Punkt Konfiguration nötig.

Das Gateway ist immer fe80::1

## /etc/network/interfaces Beispiel Hetzner Rootserver
# Loopback-Adapter
auto lo
iface lo inet loopback
#
# IPv6 LAN
auto eth0
iface eth0 inet6 static
  # Eine IPv6-Adresse aus dem /64 des Servers
  address 2001:db8:1234::1
  netmask 64
  gateway fe80::1

IPv4 + IPv6

Es ist zu erwarten, daß IPv4 und IPv6 auch weiterhin parallel verwendet wird. Dazu werden einfach die beiden Konfigurationsdateien aneinandergefügt und die doppelten Einträge weggelassen.

etc/network/interfaces (ENI)

Konfiguration via /etc/network/interfaces

## /etc/network/interfaces Beispiel Hetzner Rootserver
# Loopback-Adapter
auto lo
iface lo inet loopback
#
# LAN-Schnittstelle
auto eth0
iface eth0 inet static
  # Haupt-IP-Adresse des Servers
  address 192.168.0.250
  # Netzmaske 255.255.255.255 (/32) unabhängig von der
  # realen Netzaufteilung (z.B. /27)
  netmask 255.255.255.255
  # Explizite Hostroute zum Gateway
  gateway 192.168.0.1
  pointopoint 192.168.0.1
#
iface eth0 inet6 static
  # Haupt-IPv6-Adresse des Servers
  address 2001:db8:1234::1
  netmask 64
  gateway fe80::1

netplan

Konfiguration via netplan für Ubuntu 22.04 und neuer, oder mit netplan 1.03 oder neuer:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
      - 192.168.0.250/32
      - 2001:db8:1234::1/64
      routes:
      - to: default
        via: 192.168.0.1
        on-link: true
      - to: default
        via: fe80::1

Konfiguration via netplan für Ubuntu 21.04 und älter

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
      - 192.168.0.250/32
      - 2001:db8:1234::1/64
      routes:
      - to: 0.0.0.0/0
        via: 192.168.0.1
        on-link: true
      gateway6: fe80::1

Zusätzliche IP-Adressen (Host)

Alle aktuellen Root-Server-Modelle erhalten auf Antrag kostenpflichtig maximal 6 zusätzliche einzelne IP-Adressen. Die Konfiguration erfolgt jedoch auf die gleiche Weise:

Um die zusätzlichen Adressen auf dem Server (keine Virtualisierung) zu nutzen, wird das Paket iproute2 mit dem Dienstprogramm ip benötigt. Konfigurationen mit Alias-Schnittstellen (eth0:1, eth0:2 etc.) sind veraltet und sollten keine Verwendung mehr finden. Um eine Adresse hinzuzufügen, genügt das folgende Kommando:

ip addr add 10.4.2.1/32 dev eth0

Der Befehl ip addr zeigt die momentan aktiven IP-Adressen an. Da das Subnetz dem Server exklusiv zur Verfügung steht, ist es auch hier sinnvoll, die Adressen mit der Präfixlänge /32, also der Subnetzmaske 255.255.255.255 hinzuzufügen.

etc/network/interfaces (ENI)

In der /etc/network/interfaces werden unter dem entsprechenden Interface (hier eth0) die folgenden beiden Zeilen eingefügt:

up ip addr add 10.4.2.1/32 dev eth0
down ip addr del 10.4.2.1/32 dev eth0

up und down erwarten einfach eine Zeile Shell-Code und könnnen für mehrere Adressen wiederholt vorkommen. Der Nachteil: sowohl Schnittstellenname als auch die einzustellende Adresse müssen jeweils zwei mal aufgeführt werden, bei einer größeren Anzahl Adressen wird die Konfiguration daher unübersichtlich und fehleranfällig; ändern sich die Daten, müssen alle Einträge angepasst werden.

netplan

Bei der Verwendung von netplan können die zusätzlichen IP-Adressen einfach als weitere Zeile im addresses Abschnitt hinzugefügt werden.

Zusätzliche IP-Adressen (Virtualisierung)

Bei Einsatz von Virtualisierung werden die zusätzliche IP-Adressen durch die Gast-Systeme genutzt. Damit diese im Internet erreichbar sind, muss im Hostsystem eine entsprechende Konfiguration entsprechend angepasst werden, um die Pakete weiterzuleiten. Dabei gibt es für zusätzliche Einzel-IPs zwei Möglichkeiten: Routed und Bridged.

Routed (brouter)

Bei einer Routed-Konfiguration werden die Pakete geroutet. Dafür muss eine zusätzliche Bridge mit nahezu gleicher Konfiguration (ohne Gateway) wie eth0 angelegt werden.

auto eth0
iface eth0 inet static
   address (Haupt-IP)
   netmask 255.255.255.255
   pointopoint (Gateway-IP)
   gateway (Gateway-IP)
#
iface eth0 inet6 static
  address 2a01:4f8:XX:YY::2
  netmask 128
  gateway fe80::1
#
auto virbr1
iface virbr1 inet static
   address (Haupt-IP)
   netmask 255.255.255.255
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   pre-up brctl addbr virbr1
   up ip route add (Zusatz-IP)/32 dev virbr1
   down ip route del (Zusatz-IP)/32 dev virbr1
 #
 iface virbr1 inet6 static
   address 2a01:4f8:XX:YY::2
   netmask 64

Für jede Zusatz-IP muss eine entsprechende Host-Route angelegt werden. Die Konfiguration von eth0 bleibt unverändert.

Bridged

Bei einer Bridge-Konfiguration werden die Pakete direkt zugestellt. Das Gast-System verhält sich so, als ob es eigenständig wäre. Da die MAC-Adressen des Gasts dadurch nach außen sichtbar werden, muss für jede IP-Adressen über den Hetzner Robot eine virtuelle MAC beantragt und der Netzwerkkarte des Gasts zugewiesen werden. Sie können die virtuelle Mac automatisch im Robot generieren. Klicken Sie dafür auf den Server und dann neben der zusätzlichen IP auf das Icon. Die Bridge erhält 1:1 die Netz-Konfiguration von eth0:

auto  br0
iface br0 inet static
 address (Haupt-IP)
 netmask (wie eth0, z.B: 255.255.255.254)
 gateway (wie bei Haupt-IP)
 bridge_hw eth0 (erforderlich ab Debian 11 'bulleye')
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12

Die Konfiguration von eth0 entfällt ersatzlos.

Table of Contents