Networking 101

Auch hier konzentriere ich mich wieder erst einmal auf die Grundkonfigurationen einer Standardinstallation. Ich beschränke mich auch auf nur einen Netzwerkadapter.

Network Basiskonfiguration

Network Basiskonfiguration

Wie immer lassen sich die Konfigurationen über eine Datei einstellen und konfigurieren: /etc/network/interfaces.

# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

iface eth0 inet manual
#Standard-NIC

auto vmbr0
iface vmbr0 inet static
        address 192.168.2.253/24
        gateway 192.168.2.1
        bridge-ports eth0
        bridge-stp off
        bridge-fd 0
#Standard-Bridge

source /etc/network/interfaces.d/*

Kurerläuterungen zu den Fachbegriffen bridge-ports, bridge-stp und bridge-fd:

  • bridge-ports

    Gibt die physischen oder virtuellen Netzwerk-Interfaces an, die mit der Bridge verbunden werden sollen. Beispiel bridge-ports eth0 bedeutet, dass das physische Interface eth0 Teil der Bridge (z.B. vmbr0) ist. Dadurch werden Datenpakete zwischen VMs/Containern und dem physischen Netzwerk über dieses Interface geleitet.

  • bridge-stp

    Steht für Spanning Tree Protocol. Mit diesem Parameter wird festgelegt, ob das Spanning Tree Protocol auf der Bridge aktiviert (on) oder deaktiviert (off) ist. STP verhindert Netzwerkschleifen in komplexeren Netzwerktopologien, ist aber in einfachen Setups meist deaktiviert (bridge-stp off), da dort keine Schleifen entstehen können.

  • bridge-fd

    Bedeutet forward delay. Hier gibt man die Zeit (in Sekunden) an, die die Bridge im Spanning-Tree-Prozess zwischen den Zuständen „learning“ und „forwarding“ wartet. Ein Wert von 0 (wie oft in Proxmox-Standardkonfigurationen) bedeutet, dass keine Verzögerung eingestellt ist, was bei deaktiviertem STP sinnvoll ist (bridge-stp off).

Die Konfigurationsdatei ist an sich komplett so Debian-/Server-Standard. Allerdings erlaube ich mir hier einen Hinweis: Normalerweise kann man über das Sourcing (siehe letzte Zeile) Konfigurationen sauber in einem Sub-Dir (hier: /etc/networking/interfaces.d/) ablegen. Das ist sonst Best Practise und soll bei Aktualisierungen das Überschreiben von Grundkonfigurationen vermeiden. Das sollte man aber auf Proxmox Servern vermeiden! Um so wichtiger, dass man sich Überlegungen zum Sichern von PVE Host Bereichen / Ordner / Konf. macht .

Weiterer Tipp: Wenn man die IP des Hosts ändern möchte, dann sollte man nicht nur diese Datei anpassen, sondern auch mindesten noch die /etc/hosts.

127.0.0.1 localhost.localdomain localhost
192.168.2.253 pve-node-3.example.com pve-node-3

# The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Für das ändern des Hostname verweise ich auf das Proxmox Wiki - Renaming PVE NODE. Weitere PVE Netzwerktechniken folgen im Abschnitt Network.

Wichtig

Man sollte erkennen, dass die /etc/network/interfaces Konfigurationen nur für einen / auf einem Node spezifiziert sind. Sie beziehen sich also nur auf diesen einen Node und die hier verdrahteten / geswitchten Instanzen. Wird eine virtuelle Instanz auf einen anderen Node verschoben, gelten die dortigen Konfigurationen.

Außerdem sind keinerlei Infrastrukturdienstleistungen wie DHCP vorgesehen.

Die Lösung ist aber in Sicht: eine zusätzliche Abstraktionsschicht mit einem Node-übergreifendem Netzwerkmanagment - ein Software defined Network (siehe Abschnitt Network mit Kapitel SDN).