Ich betreibe einen Proxmox-Cluster (PVE 9.1) an einem Hetzner vSwitch. Der vSwitch stellt im VLAN 4000 ein IPv4 Subnetz bereit. Darauf soll eigentlich ein OPNsense HA Setup laufen. Ich habe das ganze mehrfach aufgesetzt, Firewall kontrolliert (und teilweise deaktiviert zum Test). Die MTU wird von Hetzner mit 1400 vorgegeben, die habe ich auch an allen Interfaces (Host und OPNsense) kontrolliert und gesetzt.
Eine vollständig eingerichtete OPNsense (mit Regeln, mit Outbound NAT, mit Wireguard und mit CARP IPs) funktioniert prinzipiell. Selbst das Failover funktioniert grundsätzlich. Aber es gibt ein Problem. Ich habe jetzt tatsächlich als allerletzten Test eine weitere OPNsense als VM nur installiert und überhaupt nicht konfiguriert (also wirklich überhaupt nicht konfiguriert, außer der WAN IP) und trotzdem hat sie das folgende Problem.
In einem festen Zeitabstand, ca. alle 160 Minuten, verliert die IP (egal ob CARP IP oder die IP der OPNsense selbst) die Verbindung für 1-5 Minuten. Sie ist dann weder von außen anzupingen, noch kommen die dahinterliegenden VMs ins Internet. Ich lasse von extern mehrere Monitorings (PING) darauf laufen und sehe regelmäßig die Unterbrechungen. Ich finde das Problem einfach nicht. Jetzt kommt das Kuriose: Wenn ich in Proxmox bspw. eine Debian VM aufsetze und auch diese nicht weiter konfiguriere außer ihr eine IP aus dem Subnetz zu geben, dann hat diese *kein* Problem. Wir haben jetzt also eine Debian VM und ein OPNsense, beide in Ausgangskonfiguration nur mit einer Subnetz-IP und nur eine von beiden Maschinen - die Debian-VM - funktioniert.
Hetzner hat dahingehend kein Problem und der Support findet auch nichts. Es stellt sich jetzt die Frage: Was macht OPNsense/FreeBSD also bei der Verwaltung einer einfachen IP anders als Debian? Und wie kann ich das Verhalten abstellen? Ich bin kurz davor, das ganze Setup komplett aufzulösen, weil es seit Wochen instabil läuft.
Hier mal die interfaces eines PVE-Hosts:
auto lo
iface lo inet loopback
auto enp1s0f0np0
iface enp1s0f0np0 inet static
# public server address
address <IPv4>/32
# route to default gateway
post-up ip route add 88.190.120.1 dev enp1s0f0np0 scope link
post-up ip route add default via 88.190.120.1
pre-down ip route del default via 88.190.120.1
pre-down ip route del 88.190.120.1 dev enp1s0f0np0
iface enp1s0f0np0 inet6 static
address <IPv6>/64
gateway fe80::1
auto enp1s0f1np1
iface enp1s0f1np1 inet static
# ceph cluster interface
mtu 9000
address 192.168.1.11/24
auto vlan4000
iface vlan4000 inet manual
# public subnets on vswitch
vlan-raw-device enp1s0f0np0
vlan-id 4000
mtu 1400
iface vlan4000 inet6 manual
auto vmbr4000
iface vmbr4000 inet manual
# bridge for routing subnets
bridge-ports vlan4000
bridge-stp off
bridge-fd 0
mtu 1400
iface vmbr4000 inet6 manual
auto vlan4010
iface vlan4010 inet static
# proxmox cluster traffic
vlan-raw-device enp1s0f0np0
vlan-id 4010
mtu 1400
address 10.0.0.11/24