GRE-Tunnel/Flex IPs mit Proxmox

Hi, ich möchte euch mal zeigen, wie ich es hinbekommen habe, meine gebuchten Flex IPs über Proxmox in einen LXC Container zu routen. Nicht wundern, ich habe auch noch ein NAT bei mir eingebaut, sodass ich bei jedem LXC entscheiden kann, ob ich das NAT von meinem Host verwenden möchte oder eine Flex IP.
Für IPv6 habe ich bei meinem Server ein /64 Subnetz bekommen. Ich habe es so eingestellt, dass ich jedem LXC eine beliebige IPv6 Adresse aus dem /64 Netz geben kann.

Als Erstes zeige ich euch meine /etc/network/interfaces

# Loopback-Interface
auto lo
iface lo inet loopback

# Netzwerkkarte (Ens18)
iface ens18 inet manual

# vmbr0 Bridge (mit NAT und GRE Tunnel)
auto vmbr0
iface vmbr0 inet static
        address <HOST-IPv4>/24
        gateway <HOST-GATEWAY IPv4>
        bridge-ports ens18
        bridge-stp off
        bridge-fd 0

# IPv6 für vmbr0 konfigurieren
iface vmbr0 inet6 static
	address <HOST IPv6>/64
        gateway <HOST-GATEWAY IPv6>
        post-up /sbin/ip -6 route add <HOST-GATEWAY IPv6> dev ens18
        post-up /sbin/ip -6 route add default via <HOST-GATEWAY IPv6> dev ens18
        pre-down /sbin/ip -6 route del default via <HOST-GATEWAY IPv6> dev ens18
        pre-down /sbin/ip -6 route del <HOST-GATEWAY IPv6> dev ens18

# NAT-Konfiguration
post-up ip addr add 10.0.0.1/24 dev vmbr0
post-down ip addr del 10.0.0.1/24 dev vmbr0
post-up iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADE

# Quelle für andere Interface-Dateien
source /etc/network/interfaces.d/*

auto vmbr1
iface vmbr1 inet static
        address 192.168.178.1/32
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up /root/gre.sh

Dann hier meine /root/gre.sh

#!/bin/bash

# GRE Tunnel erstellen verbinden
ip tunnel add gre1 mode gre local <HOST IP> remote <NOEZ REMOTE IP> ttl 255
ip addr add <Interne Client-IP>30 dev gre1
ip link set gre1 up

ip rule add from <FLEX IP 1> table 20
ip rule add from <FLEX IP 2> table 20
ip rule add from <FLEX IP 3> table 20

ip route add default via <Internes Gateway> dev gre1 table 20


ip route add <FLEX IP 1> dev vmbr1
ip route add <FLEX IP 2> dev vmbr1
ip route add <FLEX IP 3> dev vmbr1

ip link set gre1 mtu 1456
ip link set vmbr1 mtu 1456

Jetzt zeige ich euch, wie ich das Netzwerk einer VM einstelle bei meinen Anwendungsszenarien wie oben erklärt.


Hier die config, damit der LXC über eine Flex IP Zugriff auf das IPv4 Internet hat

Um dem gleichen LXC auch zugriff auf eine IPv6 Adresse aus dem /64 Netz des Hosts zu geben, einfach eine Zweite Netzwerkkarte dem LXC hinzufügen wie hier zu sehen

und um das NAT des Hosts zu verwenden (keine Flex IP) verwende ich die folgenden Einstellungen