Problem: IPv6 für VMs im Subnetz von Hetzner

Gerald Rathjen

Active Member
Aug 9, 2017
11
0
41
52
Hallo alle zusammen,
ich setze auf dem Host Proxmox 5 VE ein. Auf den VMs benutze ich Debian 9 Stretch.

Problem: Virtuelle Maschine (VM), die im Subnetz 2a01:4f8:c0:17c2::/64 (ipv6) bzw. 88.198.197.24/29 (ipv4) läuft, klappt das Anpingen und die Namensauflösung mit ipv6-Servern nicht. Das Anpingen und die Namensauflösung mit ipv4 klappt hingegen.

Beim Versuch, in der VM einen Host mit ipv6 anzupingen (z.B. ping6 pro-linux.de oder ping6 2a01:4f8:120:10ee::2), bekomme ich folgende Fehlermeldung:
From 2a01:4f8:c0:17c2::10 (2a01:4f8:c0:17c2::10) icmp_seq=6
Destination unreachable: Address unreachable

Trotz funktionierendem ipv4 kann ich die Host-IP 88.99.207.132 im Ggs. zur IP 88.99.207.129 nicht erreichen. Gleichfalls ist das Gateway mit der IPv6-Adresse 2a01:4f8:c0:17c2::2 nicht zu erreichen.

Die Routing-Tabelle sieht wie folgt aus:
rathjen@debian-vm102:~$ sudo route -A inet6
Kernel-IPv6-Routentabelle
Destination Next Hop Flag Met Ref Use If
2a01:4f8:c0:17c2::/64 [::] U 256 2 6 ens18
fe80::/64 [::] U 256 0 0 ens18
[::]/0 2a01:4f8:c0:17c2::2 UG 1024 2 29 ens18
[::]/0 [::] !n -1 1 35 lo
localhost/128 [::] Un 0 3 3 lo
2a01:4f8:c0:17c2::/128 [::] Un 0 1 0 lo
2a01:4f8:c0:17c2::20/128 [::] Un 0 3 78 lo
fe80::/128 [::] Un 0 1 0 lo
fe80::d053:35ff:fe7e:c94c/128 [::] Un 0 1 0 lo
ff00::/8 [::] U 256 0 0 ens18
[::]/0 [::] !n -1 1 35 lo

Für die VM habe ich in der Datei /etc/network/interfaces folgende Einstellungen vorgenommen:
rathjen@debian-vm102:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback
iface lo inet6 loopback

# The primary network interface
auto ens18
iface ens18 inet static
address 88.198.197.25
netmask 255.255.255.248
gateway 88.198.197.30

iface ens18 inet6 static
address 2a01:4f8:c0:17c2::20
netmask 64
gateway 2a01:4f8:c0:17c2::2


In der VM enthält die Datei /etc/resolv.conf folgende Parameter:
rathjen@debian-vm102:~$ cat /etc/resolv.conf
search your-server.de
nameserver 213.133.98.98
nameserver 213.133.99.99
nameserver 213.133.100.100
nameserver 2a01:4f8:0:a0a1::add:1010
nameserver 2a01:4f8:0:a102::add:9999
nameserver 2a01:4f8:0:a111::add:9898


Für die Aktivierung von ipv6-Support habe ich in der Datei /etc/sysctl.conf der VM folgende Zeilen eingefügt:
# Hetzner
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
# ipv6 settings (no autoconfiguration)
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.default.accept_dad=0
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.accept_ra_defrtr=0
net.ipv6.conf.default.accept_ra_rtr_pref=0
net.ipv6.conf.default.accept_ra_pinfo=0
net.ipv6.conf.default.accept_source_route=0
net.ipv6.conf.default.accept_redirects=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.accept_dad=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.accept_ra_defrtr=0
net.ipv6.conf.all.accept_ra_rtr_pref=0
net.ipv6.conf.all.accept_ra_pinfo=0
net.ipv6.conf.all.accept_source_route=0
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.all.forwarding=1


Im Host sieht die Datei /etc/network/interfaces wie folgt aus:
rathjen@Debian-90-stretch-64-minimal:~$ cat /etc/network/interfaces
### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto eno1
iface eno1 inet static
address 88.99.207.132
netmask 255.255.255.255
pointopoint 88.99.207.129
gateway 88.99.207.129

iface eno1 inet6 static
address 2a01:4f8:c0:17c2::2
netmask 128
gateway fe80::1
up sysctl -p

auto vmbr0
iface vmbr0 inet static
address 88.99.207.132
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
up ip route add 88.99.207.251/32 dev vmbr0
up ip route add 88.99.207.252/32 dev vmbr0

iface vmbr0 inet6 static
address 2a01:4f8:c0:17c2::2
netmask 64

auto vmbr1
iface vmbr1 inet static
address 88.198.197.30
netmask 255.255.255.248
bridge_ports none
bridge_stp off
bridge_fd 0


Die ipv4- und ipv6-Namensauflösung in den VMs mit den Public IPs 88.99.207.251 und 88.99.207.252 klappt hingegen.

Ich hoffe, mir kann jemand helfen, den Fehler bei der ipv6-Namensauflösung der VM im Subnetz zu finden.

Viele Grüße aus Bonn
-- Gerald
 
Danke Alwin. Die Pointopoint-Direktive ist doch nur für die Einzel-IPs und nicht für das Subnet erforderlich, oder? Wenn ich diese Direktive in meine VM-Datei /etc/network/interfaces einfüge, klappt die ipv6-Namensauflösung nach wie vor nicht.
 
Korrekt, für Subnets wird diese Direktive nicht gebraucht. Deshalb auch die verschiedenen Bridges. Hängt die VM an der richtigen Bridge?
 
Für IPv6 müsste es die vmbr0 sein, bitte mal probieren.
 
Wenn ich in Proxmox das Netzwerkdevice der VM auf vmbr0 stelle, klappt weder ipv4- noch ipv6-Auflösung. Die vmbr0-Brücke ist schließlich für die Einzel-IPs 88.99.207.251 und 88.99.207.252 eingerichtet.
 
iface vmbr0 inet6 static
address 2a01:4f8:c0:17c2::2
netmask 64
Der Block befindet sich aber auf vmbr0.
 
Ich habe den Block ifce vmbr0 inet6 static auch für vmbr1 mit derselben ipv6-Adresse und Netmask angelegt - mit demselben Ergebnis. Auch habe ich probiert, dem ipv6-Block für vmbr1 eine andere ipv6-Adresse zu geben. Was auch anstelle, das Ergebnis bleibt stets dasselbe.
 
Geht der IPv4 Teil, falls nicht, dann fehlt vielleicht noch net.ipv4.proxy_arp = 1 in sysctl.conf.
 
Hallo Alwin,
Hetzner empfiehlt mir unter anderem, das Routing wie bei den Einzel-IPs auch die IPs des Subnetzes auf vmbr0 umzustellen (vgl. https://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way und https://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_Gastsystem_KVM.2FRouted). IPv4 klappt zwar nach wie vor, doch die Namensauflösung und das Anpingen mit IPv6 klappt nun weder bei den Einzel-IPs noch bei den IPs aus dem Subnetz.

Nachfolgend meine Konfigurationsdateien:
/etc/network/interfaces auf dem Host:
rathjen@Debian-90-stretch-64-minimal:~$ cat /etc/network/interfaces
### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto eno1
iface eno1 inet static
address 88.99.207.132
netmask 255.255.255.255
pointopoint 88.99.207.129
gateway 88.99.207.129
# route 88.99.207.128/25 via 88.99.207.129
### up route add -net 88.99.207.128 netmask 255.255.255.128 gw 88.99.207.129 dev eno1

iface eno1 inet6 static
address 2a01:4f8:c0:17c2::2
netmask 128
gateway fe80::1
up sysctl -p

auto vmbr0
iface vmbr0 inet static
address 88.99.207.132
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
bridge_maxwait 0
up ip route add 88.99.207.251/32 dev vmbr0
up ip route add 88.99.207.252/32 dev vmbr0
up ip route add 88.198.197.24/29 dev vmbr0
up ip route add 88.198.197.25/29 dev vmbr0
up ip route add 88.198.197.30/29 dev vmbr0

iface vmbr0 inet6 static
address 2a01:4f8:c0:17c2::2
netmask 64


/etc/network/interfaces auf der VM mit der IP aus dem Subnetz:
rathjen@debian-vm102:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback
iface lo inet6 loopback

# The primary network interface
auto ens18
iface ens18 inet static
address 88.198.197.25
netmask 255.255.255.255
gateway 88.99.207.132
pointopoint 88.99.207.132

iface ens18 inet6 static
address 2a01:4f8:c0:17c2::20
netmask 64
gateway 2a01:4f8:c0:17c2::2


Selbst wenn ich die IPv6-Adresse für vmbr0 im Host ändere und diese IPv6-Adresse als Gateway in der VM verwende, klappt die IPv6-Namensauflösung und das Anpingen nicht (vgl. https://serversupportforum.de/forum/virtualisierung/56178-proxmox-ipv4-6-hetzner.html).

Viele Grüße aus Bonn
-- Gerald
 
Gut, dann ist es mail ein Problem weniger. Für IPv6 muss wahrscheinlich noch proxy_ndp aktiviert werden. Da aber Hetzner eine sehr angepasste Netzwerk Konfiguration hat, wäre es besser nochmal mit Hetzer zu sprechen.
 
Hallo Alwin, heureka: es funktioniert! Manchmal sind es Kleinigkeiten, die einem zur Verzweiflung treiben. Statt up ip route add 88.198.197.24/29 dev vmbr0 muss die Netmask /32, also up ip route add 88.198.197.24/32 dev vmbr0 verwendet werden. Eigentlich ist das ganz logisch, oder? :)
Ich danke dir für deine Hilfe.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!