Linux und Windows HelpDesk

IPv6 für einzelne Netzwerkbrücken in Proxmox unterbinden.

Werden einzelne Netzwerkbrücken (vmbr) unter Proxmox ausschließlich für VMs genutzt, werden sie in der Regel ohne IP konfiguriert. Ihre IP erhalten sie von der jeweiligen VM, die darauf zugreift.
In der /etc/network/interfaces unter Proxmox, wird die Netzwerkbrücke dazu auf "manual" konfiguriert.

auto eno4
iface eno4 inet manual

auto vmbr2
iface vmbr2 inet manual
	bridge-ports eno4
	bridge-stp off
	bridge-fd 0

Das funktioniert mit IPv4 ganz problemlos. Sobald im Netzwerk jedoch IPv6 zur Verfügung steht, erhält die Netzwerkbrücke aber eine IPv6-Adresse und Proxmox selbst, nicht die VM, ist mit dieser IPv6-Adresse ansprechbar.
Das Erweitern der /etc/network/interfaces um IPv6, wie man es manchmal ließt, scheint unter Proxmox nicht zu funktionieren.

auto eno4
iface eno4 inet manual
iface eno4 inet6 manual

auto vmbr2
iface vmbr2 inet manual
	bridge-ports eno4
	bridge-stp off
	bridge-fd 0

iface vmbr2 inet6 manual
	accept_ra 0

Das einfügen der Option ipv6.disable=1 in die GRUB Konfiguration sorgt dafür, dass IPv6 auf Proxmox komplett deaktiviert ist. Soll die Netzwerkbrücke, die für die Konfiguration von Proxmox zuständig ist (in der Regel vmbr0) eine IPv6 Adresse bekommt, die anderen unter Proxmox aber nicht, kann die Boot-Option nicht verwendet werden.

Funktioniert hat bei mir, das editieren der Datei /etc/sysctl.conf bzw. das erstellen einer eigenständigen Datei /etc/sysctl.d/60-disable-ipv6.conf um es ein wenig übersichtlicher zu gestalten.
Zunächst erstellt man die Datei /etc/sysctl.d/60-disable-ipv6.conf und öffnet sie anschließend mit dem Editor seine Wahl.

# touch /etc/sysctl.d/60-disable-ipv6.conf
# mcedit /etc/sysctl.d/60-disable-ipv6.conf

In die Datei kann für jede einzelne Netzwerkbrücke eingetragen werden, dass sie unter Proxmox, keine IPv6-Adresse bekommen soll. Das eintragen von Netzwerkbrücken, die eine IPv6 erhalten sollen ist nicht nötig, ich bevorzuge es für die Übersicht.

### disabled IPv6 ###

net.ipv6.conf.vmbr0.disable_ipv6 = 0
net.ipv6.conf.vmbr1.disable_ipv6 = 1
net.ipv6.conf.vmbr2.disable_ipv6 = 1

Um die Einstellung zu übernehmen, wird dieser Befehl ausgeführt.

# sysctl -p -f /etc/sysctl.d/60-disable-ipv6.conf
net.ipv6.conf.vmbr0.disable_ipv6 = 0
net.ipv6.conf.vmbr1.disable_ipv6 = 1
net.ipv6.conf.vmbr2.disable_ipv6 = 1

Damit erhält nur die Netzwerkbrücke eine IPv6, die für die Konfiguration von Proxmox vorgesehen ist, die anderen Netzwerkbrücken sind unter Proxmox ohne IPv6 konfiguriert. Diese Netzwerkbrücken erhalten in der jeweiligen VM eine IPv4, IPv6 oder auch beides, je nach dem wie es dort konfiguriert wurde.