Domainbasierte Weiterleitung durch VPN

Kriggx

New Member
Sep 19, 2024
2
0
1
Hallo zusammen,

ich habe folgenden Plan:
Mein Ziel ist bestimmten Internetverkehr durch die VPNs zu routen.
Beispielsweise möchte ich die Domain web.de durch de-vpn routen und example.ch durch den ch-vpn.

da ich mit unbound und pihole einen rekursiven DNS Server betreibe möchte ich die IPs auflösen lassen und dann durch die VPNs routen. wichtig ist mir, dass das Routing domainbasiert funktioniert und ich keine IP-tabellen manuell pflegen muss, daher dachte ich ich setze DNSmasq ein. Weiterhin möchte ich später auch ganze LXC durch den VPN jagen (ich dachte ich stelle den Gateway des LXC dann einfach auf die IP eines VPNs)

Voraussetzungen:​

  • Pi-hole und Unbound laufen im LXC Container 192.168.187.50.
  • DE-VPN-Container hat die IP 192.168.187.190 (interne VPN-Schnittstelle: tun0, Host sieht veth900i0)
  • CH-VPN-Container hat die IP 192.168.187.191 (interne VPN-Schnittstelle: tun0, Host sieht veth901i0)
  • Alle Container laufen auf einem Proxmox-Host (aktuelle Version), der das zentrale Routing übernimmt

ich habe versucht dies (vorerst nur mit einem VPN) umzusetzen, aber leider hat das nicht geklappt traceroute hat mir gezeigt, dass der verkehr nicht über den VPN geleitet wurde. Anbei habe ich noch ein Flussdiagramm angehängt die die Systematik (hoffentlich) genauer beschreibt/darstellt.

Meine vorgenommenen Einstellungen im Host:
#VPN-Routing-Tabellen im Host
Code:
echo "190 de-vpn" >> /etc/iproute2/rt_tables
echo "191 ch-vpn" >> /etc/iproute2/rt_tables

#Mangle-Regeln (Markierung des VPN-Verkehrs)
# Verkehr für de-vpn

iptables -t mangle -A PREROUTING -m set --match-set de-vpnset dst -j MARK --set-mark 0x1
[B]# Verkehr für ch-vpn[/B]
iptables -t mangle -A PREROUTING -m set --match-set ch-vpnset dst -j MARK --set-mark 0x2

#Setzen der DNSmasq-Regeln auf dem Host in /etc/dnsmasq.d/10-vpn-routing.conf
Code:
# Domains für DE-VPN
ipset=/web.de/de-vpnset
# Domains für CH-VPN
ipset=/example.ch/ch-vpnset

#Erstelle die benötigten ipset-Sets auf dem Host
ipset create de-vpnset hash:ip
ipset create ch-vpnset hash:ip

# DE-VPN Route (table 190)
ip rule add fwmark 0x1 table 190
ip route add default via 192.168.187.190 dev veth900i0 table 190

# CH-VPN Route (table 191)
ip rule add fwmark 0x2 table 191
ip route add default via 192.168.187.191 dev veth901i0 table 191

# NAT auf dem Host für DE-VPN
iptables -t nat -A POSTROUTING -o veth900i0 -j MASQUERADE

# NAT auf dem Host für CH-VPN
iptables -t nat -A POSTROUTING -o veth901i0 -j MASQUERADE

Ist mein Plan überhaupt umsetzbar? macht das so Sinn? Habe ich etwas falsch gemacht, oder vergessen?

Würde mich freuen wenn jemand mal drüberschauen könnte.

Danke und liebe Grüße
Kriggx
 

Attachments

  • Proxmox_VPN_Systematik.drawio.png
    Proxmox_VPN_Systematik.drawio.png
    117.4 KB · Views: 3
Last edited:

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!