Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - MSchroeer

#1
Hi,

does anyone bring this to live in an active-passive Opnsense-HA combination (CARP) with active-active HAProxy? Everything works fine with this combination but when an connection comes over my backup-firewall to the client some of my services could not be reached. I could not exactly figure out why some services are reachable (portainer e.g. works over a connection from master and backup carp-device) and some other not (simple container with nginx and wordpress only works over the carp-master connection) Currently I created a carp-script which stops haproxy on backup-firewall but in some cases (reboot, cron-executed sync, ...) HAProxy will start on the backup firewall as well. When both HAProxys are active my loadbalancer will balance correct but about the half of my connections (or visitors in this case) could not establish a connection.

Thanks, Michael
#2
Moin zusammen,

Ich habe aktuell eine Problemstellung bei der ich seit Tagen nicht weiter komme. Ich hatte schon diverse Zustände in denen ich "sehr nah" am Ziel war, aber 100% hatte die Lösung noch nicht.

Folgendes Szenario:
Ich habe zwei Dedicated Server bei Hetzner gemietet und mit Proxmox-VE aufgesetzt. Beide befinden sich in einem Cluster-Verbund und als Quorum für HA habe ich eine kleine Hetzner-Cloud Maschine hinzugefügt. Das ganze läuft auch ganz prächtig.

Ich habe insgesamt 4 VXLANs angelegt in denen ich nachher meine Maschinen Hosten möchte. Auf beiden PVEs soll jeweils eine Opnsense Sticky laufen, welche sich ebenfalls über HA synchronisieren.

IPv4 Konnektivität bekomme ich über CARP und den beiden OpnSense super hin. Problem ist nun IPv6. Ich habe für beide Server ein zusätzliches /56er Netz auflegen lassen, aber ich bekomme das einfach nicht Sinnvoll in die VxLANS hinter die Opnsense geroutet. Ich war schon so weit, dass die OpnSense volle v6 Konnektivität bekommen hat und es wurden über DHCPv6 auch v6-Adressen (ULA) an die Clients verteilt. Leider haben diese aber kein vernünftiges Router-Advertisement bekommen und so kamen die Clients nicht von der Opnsense weiter zum Gateway. Auch habe ich schon mit IPv6 CARPS herum probiert und NPTv6 eingesetzt.

Ich habe auch schon probiert einfach von beiden v6 /56er Netzen IP-Adressen über Tracking-Interface direkt an die Clients zu verteilen, aber auch das hat leider nicht den gewünschten Erfolg gebracht.

Folgende Grundlagen:


  • Meine ULA-Adressen, welche ich nutze sind fda1:aeea:4a7e::/56
  • Die vmbr1 liegt direkt auf der vmbr0, welche wiederrum direkt auf die Netzwerkkarte mappt
  • 2a01:4fz:...... ist mein externer IPv6 Präfix /v56
  • TrackingInterface lässt sich im HA-Verbund schlecht realisieren, da die Verbindungen ja ggf. auch über meinen zweiten Proxmox mit einem anderem IPv6 Subnet reinkommen können.

In aktueller Konfiguration funktioniert folgendes Szenario:

  • IPv4 und IPv6 Konnektivität ist auf PVE und Opnsense gegeben. Sowohl eingehend, als auch ausgehend.
  • Sobald ich ein Client in eines der VxLANs lege bekommt dieser eine IPv4 adresse aus dem Netz und mehrere IPv6-Adressen. Unter anderem auch eine ULA-Adresse über DHCPv6.
  • Versuche ich über den Client im VxLAN einen ping6 zu machen wird die DNS-Anfrage korrekt verarbeitet. Ich bekomme also über IPv6-UDP die Adresse aufgelöst.
  • Ping-Pakete gehen auch auf die Firewall, dann ins WAN und es kommen Pakete zurück an die Firewall.
  • Leider ist hier aber dann schluss. Der Client im VxLAN bekommt die Pakete nicht mehr mit.
  • Pings von den beiden Opnsense laufen über IPv4 und IPv6 einwandfrei.

Hier mal die interface-datei PVE-1:

auto lo
iface lo inet loopback

iface lo inet6 loopback

auto enp6s0
iface enp6s0 inet manual

iface enp6s0 inet6 manual

auto vmbr0
iface vmbr0 inet static
        address 37.xxx.yyy.144/26
        gateway 37.xxx.yyy.129
        bridge-ports enp6s0
        bridge-stp off
        bridge-fd 0
        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m multiport ! --dport 22,8006 -j DNAT --to 192.168.99.254
        post-up   iptables -t nat -A PREROUTING -i vmbr0 -p udp -j DNAT --to 192.168.99.254
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp -m multiport ! --dport 22,8006 -j DNAT --to 192.168.99.254
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p udp -j DNAT --to 192.168.99.254
#dRei.WAN

iface vmbr0 inet6 static
        address 2a01:4fz:xxxx:yyyy::2/128
        gateway fe80::1
        post-up echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
        up      ip -6 route add 2a01:4fz:xxxx:zzzz::/56 via fda1:aeea:4a7e::2 dev vmbr1

auto vmbr1
iface vmbr1 inet static
        address 192.168.99.253/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up   iptables -t nat -A POSTROUTING -s '192.168.99.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.99.0/24' -o vmbr0 -j MASQUERADE
#dRei.NAT

iface vmbr1 inet6 static
        address fda1:aeea:4a7e::1/126
        post-up   ip6tables -t nat -A POSTROUTING -s '2a01:4fz:xxxx:fc00::/56' -o vmbr0 -j MASQUERADE
        post-up   ip6tables -t nat -A POSTROUTING -s 'fda1:aeea:4a7e::/56' -o vmbr0 -j MASQUERADE
        post-down ip6tables -t nat -D POSTROUTING -s '2a01:4fz:xxxx:yyyy::/56' -o vmbr0 -j MASQUERADE
        post-down ip6tables -t nat -D POSTROUTING -s 'fda1:aeea:4a7e::/56' -o vmbr0 -j MASQUERADE


Die Opnsense hat folgende Interfaces:


  • WAN: IPv4 static (/24er Subnet), IPv6 static (/126er Subnet) mit zugewiesenen Gateways auf die vmbr1 Adressen der PVE
  • LAN1-4: IPv4 static (/24er Subnet), IPv6 static (/64er Subnets) ULA-Adressen!

DHCPv6 ist Konfiguriert und klappt auch soweit.
Router-Advertisement ist auf den LAN-Interfaces auf Assistiert ohne Routen-Konfiguration angelegt.
NPTv6 ist für jedes ULA-Netzwerk doppelt angelegt (wegen der beiden unterschiedlichen /56er Netze der beiden Server).
CARP-Adressen sind für IPv4 und IPv6 angelegt.

Ich hoffe ich habe jetzt erstmal nichts vergessen. Ich bin mir sicher, dass es eigentlich nur noch eine kleinigkeit sein kann. Vielleicht habt ihr auch eine bessere/schönere Idee zur Umsetzung. Da ich halt über zwei unterschiedliche /56er Netze an die Container & Maschinen heran muss erschien mir diese Umsetzung erstmal als Sinnvollste Version.