NAT erfolgt vor dem Routing

NAT erfolgt vor dem Routing

Ich baue derzeit einen privaten Cloud-Cluster mit Proxmox auf. Mein Cluster enthält einen Head-Knoten und zwei Compute-Knoten.

Mein Hauptknoten hostet einen NAT-Server und einen OpenVPN-Server sowie drei Netzwerkkarten: eine für ausgehende Verbindungen und eine pro Rechenknoten. Das NAT ermöglicht mir die Verbindung mit beiden Rechenknoten. Auf beiden Rechenknoten hoste ich einen Router mit ~30 VLANs pro Router.

Mein Ziel ist es, die Adresse vom VPN-Client aus sehen zu können, wenn ich mich mit den Routern verbinde. Derzeit verbinde ich mich über das VPN mit dem Head, versuche dann, entweder per Ping oder SSH eine Verbindung zum Router herzustellen, und es wird angezeigt, dass die Verbindung von der IP-Adresse des Head-Knotens kommt. Jede Hilfe ist sehr willkommen!

Meine Routen sind wie folgt:

default via *.*.*.1 dev eno1 onlink 
10.10.1.0/24 via 10.10.1.2 dev tun0 
10.10.1.2 dev tun0 proto kernel scope link src 10.10.1.1 
*.*.*.0/25 dev eno1 proto kernel scope link src *.*.*.46 
192.168.0.0/19 via 192.168.77.1 dev vmbr0 
192.168.32.0/19 via 192.168.76.6 dev vmbr1 
192.168.76.0/24 dev vmbr1 proto kernel scope link src 10.10.1.1
192.168.77.0/24 dev vmbr0 proto kernel scope link src 192.168.77.1 

Und die NAT-Regel (ich verwende derzeit Firewalld):

-A POST_public_allow ! -o lo -j MASQUERADE

Antwort1

Die von Ihnen gezeigte NAT-Regel liefert fast keine Informationen, da sie eineBrauchKette, die angeblich von anderen (Standard-)Ketten in anderen Tabellen aufgerufen wird (angeblich POSTROUTINGder natTabelle; Sie können sie mit sehen iptables -t nat -L POSTROUTING).

Das Problem, das Sie haben, besteht darin, dass angeblich Masquerading auf die Schnittstelle angewendet wird, die den Hauptknoten mit den Rechenknoten verbindet.

Eine Möglichkeit, damit umzugehen besteht darin, SNAT nur auf der Schnittstelle zu haben, die der Hauptknoten für die Verbindung mit dem Internet verwendet.

Beachten Sie jedoch ein Problem. Die Tatsache, dass Sie VPN verwenden, um auf den Hauptknoten zuzugreifen (wenn ich die Frage richtig gelesen habe), bedeutet, dass Ihre Computerknoten die von Ihnen gesendeten Pakete sehen, wenn Sie übermäßiges Maskieren auf dem Hauptknoten deaktivierenüberVPN als aus dem Netzwerk kommend, in dem sich Ihr Sendeprogramm befindet. Da es sich vermutlich um ein privates Subnetz handelt, müssen Sie sicherstellen, dass - sowohl Ihr Quellnetzwerk als auch das Netzwerk, das den Hauptknoten und die Rechenknoten verbindet, unterschiedliche Adressen haben (und beide müssen von dem Subnetz getrennt sein, das der Tunnel verwendet) - die Rechenknoten eine Routing-Regel für Ihr Quellnetzwerk haben müssen (um die dort bestimmten Pakete an den Hauptknoten zu senden). - für den Hauptknoten muss die IP-Weiterleitung aktiviert sein.

verwandte Informationen