, , , , , , , , , , , , , , ,

VXLAN + WireGuard und SDN Proxmox – Tutorial

Posted by

0
(0)

Vorwort

Mit VXLAN sind interne Aufteilungen von verschiedenen Netzwerken innerhalb oder außerhalb möglich.

Das besondere:

VXLAN bietet im Gegensatz zu normalen VLAN’s, eine deutlich größere Menge erstellbaren VLAN’s an.

Und nicht nur das, VXLAN macht Clustering mit perfekter Aufteilung möglich.

Um nicht DDoS Firewalls von Providern zu stören, werden wir WireGuard als Verbindungsaufbau mit einsetzen.

Dennoch macht dies kein großer Unterschied, außer dass der Peer über WireGuard fungiert.

Das Problem ist, dass man gerne es ohne WireGuard versuchen kann, aber nicht garantiert wird, dass ein Verbindungsaufbau zustande kommt, sondern dass eben starke DDoS Schutz Lösungen dies bereits Filtern aus Schutz vor z. B. Attacken auf das interne Netzwerk mit Protokollausnutzung.

1. Verschiedene Anwendungsbereiche

Möchte man zum Beispiel eine oder mehrere Webseiten hosten, gibt es folgende Lösung:

  • Mittels VXLAN alle Verbindungen intern aufbauen zu verschiedenen Datacenters und somit alles in einem Reverse Proxy zu Routen.
  • Dabei werden alle z. B. alle Lokalen Webserver in einem VXLAN gespannt und dann als Endpunkt beim Reverse Proxy angegeben.
  • Zudem spart sich hierfür eine ordentliche Menge an IPv4 oder IPv6 Adressen, da nur der Reverse Proxy öffentlich erreichbar ist.
  • Man könnte entscheiden, ob man aber wiederum nicht nur einen reverse Proxy betreibt, sondern mehrere. Jeder neue öffentliche Reverse Proxy wäre somit mit einer neuen statischen IP-Adresse ausgestattet, der wiederum andere SDN’s (Lokale VXLANs über Proxmox – SDN) kontaktiert.

Möchte man vServer betreiben und dezentrale IP-Adressen von verschiedenen Proxmox Hostsysteme nutzen, gibt es folgende Lösungen:

  • Ihr routet die jeweilige statische IP-Adresse zum VXLAN Peer.
  • Dabei beachten wir das jeweilige VXLAN und deren Netzwerkschnittstelle.
  • Mit IP Rule (IP Regel für Umleitungen zu anderen internen Gateways) verweisen wir die Statische zum richtigen tatsächlichen Gateway.
  • Dann nehmen wir noch kleinere Anpassungen vor wie Proxy_Arp Aktivierung oder für IPv6 z. B. Proxy_NDP und aktivieren das IP_Forwarding.
  • Im Oberen Bild am Anfang des Tutorials einsehbar wie es aussehen könnte mit allen Tracerouten Beispiele.

Das sind Anwendungsbereiche, die die Vorstellungen etwas besser verständlich herüberbringen sollen.

2. Sich mit einem WireGuard Server verbinden für VXLAN

Tipp: Einen WireGuard Installer nutzen

Um erstmal in die Thematik hineinzukommen, verwende ich den Flexiblen WireGuard Installer und Manager deren erstellen Konfigurationen.

Dabei kann man folgendes Ausführen:

				
					wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
				
			
Screenshot 22 10 2024 00.06.12
				
					# Um es im nachhinein nochmals auszuführen
bash wireguard-install.sh
				
			
Screenshot 22 10 2024 00.08.53
Eine Beispielkonfiguration, wie es aussehen könnte
 

Richtig

Nutzt die Standardwerte von MTU und setzt auch eine eigene Routing Tabelle.

MTU = 1420

Table = 20

 
 

Falsch

Was nicht richtig wäre, wäre eine MTU von z. B. 1500 beizubehalten, da WireGuard eine eigene MTU besitzt (siehe oben).

Unterkategorisierte Tabellen sind der Schlüssel, um verschiedene Gateways gleichzeitig zu kontaktieren.

Würden wir alles ohne mit einer eigenen Tabelle aktivieren, so wäre unser kompletter Rootserver in VPN Modus per Default.

				
					# Wir erstellen auf der Client Stelle eine neue Konfiguration
# Diese nennen wir wg0 und so wird auch die schnittstelle heißen
nano /etc/wireguard/wg0.conf
				
			
				
					# Das ist ein Beispiel wie so eine Konfiguration aussehen könnte.
# Bitte hierzu eure PublicKey/PrivateKey und PresharedKey hinzufügen.
# Zudem auch nicht vergessen die Endung zu ergänzen für die jeweilige Peer VPN IP-Adresse.
[Interface]
Address = 10.7.0.X/24
PrivateKey = -
MTU = 1420 # Die MTU beträgt 1420
Table = 20 # Wireguard GW ist auf Tabelle ID: 20 platziert (v4)
[Peer]
PublicKey = -
PresharedKey = -
AllowedIPs = 0.0.0.0/0
Endpoint = [Master-VPN-Server-IP]:51820
PersistentKeepalive = 25
				
			
				
					# Jetzt aktivieren wir die Schnittstelle wg0
systemctl enable wg-quick@wg0 --now
				
			
				
					# Mit dem Befehl wg show sehen wir den aktuellen Status der Verbindung (Auf der Client Seite)
root@vxlan:~# wg show
interface: wg0
  public key: (hidden)
  private key: (hidden)
  listening port: 49331

peer: (hidden)
  preshared key: (hidden)
  endpoint: 2.56.247.50:51820
  allowed ips: 0.0.0.0/0, ::/0
  latest handshake: 2 seconds ago
  transfer: 92 B received, 180 B sent
  persistent keepalive: every 25 seconds
root@vxlan:~#
				
			

3. VXLAN erstellen

Screenshot 22 10 2024 00.38.05
Mittels SDN ab Proxmox 8, können wir VXLANs in der GUI erstellen
Screenshot 22 10 2024 00.40.09
Dieser Peer, ist einer von meinen Homeservern.

Das interne Netzwerk besteht aus verschiedenen Peers innerhalb der WireGuard Verbindung.

Ich kann ich mich innerhalb des 10.7.0.0/24 Netzes direkt mit anderen Verbunden Peers austauschen.

Und darüber können wir auch VXLAN erstellen und aufteilen.

Screenshot 22 10 2024 00.47.03
Jetzt erstellen wir ein Virtuelles Netzwerk
Screenshot 22 10 2024 00.48.23
Ein /24 Internes Netzwerk mit SNAT aktiviert wird nun erstellt
Screenshot 22 10 2024 00.48.31
Auch DHCP ist Möglich – Hierfür Start-Range bis End-Range eingeben fertig

EDIT: Die DHCP Funktion, muss noch weiter erforscht werden, sodass es auf beide Layer-2 Bridge es gleichzeitig funktioniert.

				
					# Für aktives DHCP, muss dnsmasq installiert sein auf dem Server.
apt install dnsmasq -y
				
			
				
					# Tipp: In /etc/network/interfaces müsst Ihr unbedingt den weiteren source eintragen.
# Somit kann SDN seine Netze erst anlegen.

source /etc/network/interfaces.d/*
				
			
Screenshot 22 10 2024 00.55.18
Jetzt auf “Anwenden” klicken und das SDN auf A Seite erstellen

Jetzt muss die gleiche Prozedur auch auf Host B erstellt werden.

Wir haben auf Host A z. B. 10.19.0.1/24 die IP-Adresse angelegt, also muss auf Host B die Adresse 10.19.0.2/24 und das Gateway 10.19.0.1 angelegt werden.

Screenshot 22 10 2024 00.59.56
Jetzt bei meinen Homelab setze ich eine Zahl höher im Subnetz
				
					# Auf A Seite
ip addr add 172.19.0.1/24 dev HOMELAB
				
			
				
					# B Seite
ip addr add 172.19.0.2/24 dev DASHSERV
				
			
				
					# Super! Verbindung innerhalb des vxlan besteht nun.
root@vxlan:~# ping 172.19.0.2
PING 172.19.0.2 (172.19.0.2) 56(84) bytes of data.
64 bytes from 172.19.0.2: icmp_seq=1 ttl=64 time=41.6 ms
64 bytes from 172.19.0.2: icmp_seq=2 ttl=64 time=42.3 ms
64 bytes from 172.19.0.2: icmp_seq=3 ttl=64 time=42.3 ms
64 bytes from 172.19.0.2: icmp_seq=4 ttl=64 time=41.8 ms
^C
--- 172.19.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 41.561/41.993/42.339/0.318 ms
				
			

Damit wäre erstmal die Grundfunktion gegeben. Ich werde in den nächsten Tagen den Beitrag nochmal updaten, wenn ich neue Beispiele erstellt habe.

Übrigens:

Nach WireGuard zu VXLAN beträgt die Finale MTU 1384.

Bitte bei jeden KVM / LXC Container immer angeben, sonst kommt es zu Fragmentierungen.

Dieser Beitrag wurde zuletzt aktualisiert: 03.11.2024 – 5:56 Uhr

Weitere Aktualisierung geplant: in Kürze

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert