Wie funktioniert dieses Routing?
In diesem Tutorial erfährst Du, wie man ganz einfach IPv4-Adressen aufteilen kann über z.B LXC Server oder KVM Server über ein privates erstelltes Subnetz. Dabei hat man hier den Vorteil, dass nur eine Haupt VPN Verbindung gebraucht wird, damit dies funktioniert. Zum Einsatz kommt hier Wireguard. Mit Wireguard ist es deutlich leichter und auch performanter mit dem ganzen Routing. Dabei nutzen wir hier das IPv4-Adressen Protokoll und hierbei kann ich auch schon erwähnen, dass noch weitere Routing Tutorials hier folgen werden. Auch für z.B IPv6-Adressen und eine eigene PVErouting API ist hier auch schon in Entwicklung, damit man alles per API, die Server und deren Aufträge für das Routing einstellen kann. Das wäre das Ultimative Routing um alles miteinander zu verbinden. Es bleibt also spannend 🙂
Was brauchen wir als Vorbereitung für das Tutorial?
Wichtig hier ist natürlich einen LXC oder KVM Server mit Zusätzlichen IPv4-Adressen also bei mindestens zwei IPv4-Adressen auf unserem VPN Gateway, können wir nur maximal dann eine IPv4-Adresse aktiv nutzen. Eine bleibt immer die Haupt IP-Adresse für den Zugang und generellen Erreichen des VPN Gateways. Ich habe hier in diesem Tutorial den Server Hoster ST-Hosting genutzt wo man auch zusätzliche IPv4-Adressen bestellen kann auf seinem eigenen vServer und genau damit basteln wir unseren eigenen VPN Gateway.
Hier sind die notwendigen Links für die Vorbereitung. Auch findet Ihr auf den anderen Tutorials auch nochmals beschreibungen und Videos die euch z.B die Installation von Wireguard vereinfachen sollen.
1. Forwarding auf Linux erlauben
# Aktiviert auf euren Rootserver das IPv4 Forwarding. Dieses wird Grundsätzlich benötigt.
echo 1 > /proc/sys/net/ipv4/ip_forward
sudo sysctl -p
2. IPtables Regeln zurücksetzen
# Setzt die aktuellen Regeln in der IPtables Firewall zurück. Damit wird sichergestellt, dass keine anderen Rules unser Routing stören oder beeinflussen.
sudo iptables -X
sudo iptables -F
sudo iptables -t nat -F
3. Linux VPN Gateway Routing vorbereiten
Die ovpn.sh dient dazu, die Eingaben der IPtables Regeln zu vereinfachen indem Parameter eingegeben werden und über Variablen direkt in mehreren Einträgen automatisch gespeichert werden. Dabei ist es wichtig, dass Skript einmalig zu editieren und die Haupt VPN Gateway IPv4-Adresse einzutragen.
# Beispiel: Ich möchte die Öffentliche IPv4 Adresse "1.2.2.2" zu der Lokalen Wireguard VPN IPv4-Adresse routen, also gebe ich folgendes ein.
# Gilt für das Skript: ovpn.sh
# Parameters: [Source IP] [Client VPN IP] [NIC] [VPN Server Port Muss 100% UDP sein] [Add/Del]
sudo bash ovpn.sh 1.2.2.2 10.7.0.3 eth0 13 Add
# Auf dem VPN Gateway Maskieren wir jetzt die Pakete und geben die IP-Adresse "10.7.0.2" für das Internet frei.
# Bitte nur die eine IPv4-Adresse freigeben auf dem VPN Gateway, die als einzigste die Verbindung hält. Alle anderen Adressen bitte beim Ziel-Proxmox Host Maskieren.
iptables -t nat -A POSTROUTING -s 10.7.0.2 -o eth0 -j MASQUERADE
# Jetzt ist die Öffentliche IPv4-Adresse "1.2.2.2" auf der Wireguard Adresse "10.7.0.3" geschaltet, heißt also jetzt erreiche ich logischerweise den Ziel PVE Host der mit der VPN verbunden ist.
# Um diese jetzt anschließend auf den Ziel Container zu routen, wird hier folgendes nun auf den Ziel PVE Host auch mit der ovpn.sh geroutet.
# Gilt für das Skript: ovpn.sh
# Parameters: [Source IP] [Client VPN IP] [NIC] [VPN Server Port Muss 100% UDP sein] [Add/Del]
sudo ip addr add 10.7.0.3 dev wg0
sudo bash ovpn.sh 10.7.0.3 10.10.10.5 wg0 13 Add
# Anschließend geben wir beim Ziel-Promxox Host die erste IPv4-Adresse aus unserem Subnet für das Internet frei. Zudem erlauben wir damit den Zugang zum Wireguard Netzwerk. Sollten mehrere Container genutzt werden, bitte immer die jeweilige IP-Adresse wieder Maskieren.
iptables -t nat -A POSTROUTING -s 10.10.10.5 -o wg0 -j MASQUERADE
Ganz wichtig: Wir benötigen bei dem Ziel Proxmox Server ein privates IPv4-Subnet im /24 Format. Ich gebe euch hier die Konfiguration von meiner Linux Brücke für das Routing.
nano /etc/network/interfaces
# Einfügen in der Datei: /etc/network/interfaces
auto vmbr1
#private sub network
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
5. IPtables Regeln dauerhaft speichern
# Hier installieren wir ein zusätzliches Paket für IPtables damit wir unsere Regeln dauerhaft speichern und diese beim Server neustart nicht verloren gehen.
apt-get install iptables-persistent -y
# Hiermit speichern wir alle Einträge von IPtables. Dabei wird die komplette Datei "rules.v4" überschrieben und mit den aktuellen Regeln gespeichert.
sudo iptables-save > /etc/iptables/rules.v4
Beitrag teilen:
Wie hilfreich war dieser Beitrag?
Klicke auf die Sterne um zu bewerten!
Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 1
Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.
Schreibe einen Kommentar