Vorausgeschickt sei, dass ich die Konfiguration schon am laufen habe, damit gibt es aber ein Problem:
Mein Ziel war es, mit nur einer routebaren IPv4 auszukommen (65.99.98.1 - die stimmen natürlich alle nicht). Eine der VMs ist eine OpnSense VM, die als WAN 172.17.17.1 und als Gateway 172.17.17.0 hat (bei IPv6 2a01:4f9:9999:8888:172::1 und 2a01:4f9:9999:8888:172::2 als Gateway). Ich habe mir zur Erleichterung neben dem /64er Subnetz einen zusätzlichen /56er Präfix geben lassen. Auf diese Weise kann ich an vmbr1 als WAN und vmbr2 als LAN unterschiedliche IPv6 nehmen und die OpnSense per SLAAC IPs verteilen lassen. vmbr2 hat auch RFC1981-IPs (192.168.17.0/24).
Somit können alle VMs im LAN per IPv6 über die OpnSense laufen und per IPv4 entweder per Port-Forwarding oder mittels eines Reverse-Proxies.
Ausgehende Verbindungen per IPv6 sind kein Problem, die IPs werden aus dem /56er Subnetz genommen (fest oder IPv6 Privacy). Ausgehendes IPv4 läuft per NAT erst von der OpnSense auf 172.17.17.1 und dann nochmals NAT auf die endgültige IP 65.99.98..
Soweit so gut, funktioniert ganz gut.
Allerdings ist es lästig, dass aus SIcht der OpnSense die WAN-IP eben die 172.17.17.1 ist. Wenn man nämlich entsprechende DNAT-Regeln definiert, um beispielsweise Port 53 (DNS) auf eine interne Maschine weiterzuleiten, werden auch mit Port-Reflection Zugriffe vom LAN oder von der OpnSense selbst nicht auf das interne Ziel umgeleitet. Ähnliches gilt beim Zugriff aus dem LAN auf API-Funktionen per HTTP(s) auf die offiziellen IPs.
Möglicherweise könnte man das mit geschickten Regeln umschiffen - zumindest für das LAN, allerdings ist das unintuitiv.
Was mir vorschwebt, ist eine Konfiguration, bei der vmbr0 keine IPv4, sondern nur die IPv6 2a01:4f9:9999:8888:7777::6666/128 erhält, um ggf, einen Notfall-Zugriff auf den PVE zu ermöglichen. vmbr1 soll als reine Bridge erlauben, dass die OpnSense die offizielle IP 65.99.98.1 übernimmt (plus eine IPv6). vmbr2 kann so bleiben, wie es ist.
Ich kenne die entsprechenden Anleitungen für gerouteten und gebridgten Aufbau. Mein Problem liegt darin, dass ich nun eigentlich vmbr1 mit eth0 als Bridge-Interface konfigurieren müsste, damit die OpnSense selbst aktiv werden kann (mal ganz abgesehen davon, dass ich deren MAC bei Hetzner nicht aktivieren kann, weil für das erste Interface nur die Hardware-MAC genommen und nicht geändert werden kann).
Andererseits weiß ich nicht, wie ich die Notfall-IPv6 dann konfigurieren müsste.
Hat jemand so etwas am Laufen?
Code:
# 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 lo inet6 loopback
auto eth0
iface eth0 inet static
address 65.99.98.21/32
gateway 65.99.98.1
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding
post-up iptables -t nat -A PREROUTING -i eth0 -p tcp -d 65.99.98.21 -j DNAT --to 172.17.17.1
post-up iptables -t nat -A PREROUTING -i eth0 -p udp -d 65.99.98.21 -j DNAT --to 172.17.17.1
iface eth0 inet6 static
address 2a01:4f9:9999:8888:7777::6666/128
address 2a01:4f9:9999:8888:172::2/128
gateway fe80::1
auto vmbr0
iface vmbr0 inet static
address 65.99.98.21/32
bridge-ports none
bridge-stp off
bridge-fd 0
#Proxmox WAN Bridge
iface vmbr0 inet6 static
address 2a01:4f9:9999:8888:4e8c::6666/80
auto vmbr1
iface vmbr1 inet static
address 172.17.17.0/31
bridge-ports none
bridge-stp off
bridge-fd 0
post-up iptables -t nat -A POSTROUTING -s '172.17.17.1/31' -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '172.17.17.1/31' -o eth0 -j MASQUERADE
#OPNsense WAN - Proxmox LAN
iface vmbr1 inet6 static
address 2a01:4f9:9999:8888:172::2/80
post-up ip -6 route add 2a01:4f9:9999:8888:173::/80 via 2a01:4f9:9999:8888:172::1
post-up ip -6 route add 2a01:4f9:9999:0000::/64 via 2a01:4f9:9999:8888:172::1
auto vmbr2
iface vmbr2 inet static
address 192.168.17.2/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up ip route add 192.168.0.0/16 via 192.168.17.1 dev vmbr2
#LAN bridge
iface vmbr2 inet6 static
source /etc/network/interfaces.d/*
Mein Ziel war es, mit nur einer routebaren IPv4 auszukommen (65.99.98.1 - die stimmen natürlich alle nicht). Eine der VMs ist eine OpnSense VM, die als WAN 172.17.17.1 und als Gateway 172.17.17.0 hat (bei IPv6 2a01:4f9:9999:8888:172::1 und 2a01:4f9:9999:8888:172::2 als Gateway). Ich habe mir zur Erleichterung neben dem /64er Subnetz einen zusätzlichen /56er Präfix geben lassen. Auf diese Weise kann ich an vmbr1 als WAN und vmbr2 als LAN unterschiedliche IPv6 nehmen und die OpnSense per SLAAC IPs verteilen lassen. vmbr2 hat auch RFC1981-IPs (192.168.17.0/24).
Somit können alle VMs im LAN per IPv6 über die OpnSense laufen und per IPv4 entweder per Port-Forwarding oder mittels eines Reverse-Proxies.
Ausgehende Verbindungen per IPv6 sind kein Problem, die IPs werden aus dem /56er Subnetz genommen (fest oder IPv6 Privacy). Ausgehendes IPv4 läuft per NAT erst von der OpnSense auf 172.17.17.1 und dann nochmals NAT auf die endgültige IP 65.99.98..
Soweit so gut, funktioniert ganz gut.
Allerdings ist es lästig, dass aus SIcht der OpnSense die WAN-IP eben die 172.17.17.1 ist. Wenn man nämlich entsprechende DNAT-Regeln definiert, um beispielsweise Port 53 (DNS) auf eine interne Maschine weiterzuleiten, werden auch mit Port-Reflection Zugriffe vom LAN oder von der OpnSense selbst nicht auf das interne Ziel umgeleitet. Ähnliches gilt beim Zugriff aus dem LAN auf API-Funktionen per HTTP(s) auf die offiziellen IPs.
Möglicherweise könnte man das mit geschickten Regeln umschiffen - zumindest für das LAN, allerdings ist das unintuitiv.
Was mir vorschwebt, ist eine Konfiguration, bei der vmbr0 keine IPv4, sondern nur die IPv6 2a01:4f9:9999:8888:7777::6666/128 erhält, um ggf, einen Notfall-Zugriff auf den PVE zu ermöglichen. vmbr1 soll als reine Bridge erlauben, dass die OpnSense die offizielle IP 65.99.98.1 übernimmt (plus eine IPv6). vmbr2 kann so bleiben, wie es ist.
Ich kenne die entsprechenden Anleitungen für gerouteten und gebridgten Aufbau. Mein Problem liegt darin, dass ich nun eigentlich vmbr1 mit eth0 als Bridge-Interface konfigurieren müsste, damit die OpnSense selbst aktiv werden kann (mal ganz abgesehen davon, dass ich deren MAC bei Hetzner nicht aktivieren kann, weil für das erste Interface nur die Hardware-MAC genommen und nicht geändert werden kann).
Andererseits weiß ich nicht, wie ich die Notfall-IPv6 dann konfigurieren müsste.
Hat jemand so etwas am Laufen?