linux-vlan-und-proxmox-tutorial

Willkommen zu diesem Tutorial! 🙂

Heute beschäftigen wir uns mit dem Thema was genau VLANs sind und wie man mit Proxmox zusammen ein Routing zu den VLANs herstellen und damit virtualisieren kann. Zudem gibt es noch Routing Tipps wie man z.B eigene Firmennetzwerke damit erstellen, isolieren und auf bestimmte weise nutzen kann.

Zum Einsatz kommt der TP-Link TL-SG108PE mit integrierter VLAN Unterstützung.


Was ist ein VLAN und wofür wird dies angewendet?

Mit einem VLAN (Virtual Local Area Networks) ist es möglich, mehrere Netzwerke zu isolieren, zu erstellen und bietet viele Vorteile. Für mich persönlich die Einsparung von Netzwerkkarten da ich mit VLANs bestimmte Netzwerke unterteilen bzw. Taggen kann. Im Endeffekt kann ich diese erweiterte Routing und Netzwerk Methode jedem ans Herz legen. Deswegen auch das vereinfachte Tutorial für das VLAN Setup für Proxmox und Linux 🙂

1. So erstellst Du ein VLAN im TP-Link Switch

In der TP-Link Oberfläche gehen wir zum Punkt VLAN
Und wählen im Dropdown den Bereich 802.1Q VLAN
Hier zu sehen sind meine erstellen VLANs und kann wiederum neue hinzufügen
Hier erstellen wir ein VLAN mit der ID 30

Den Proxmox Host habe ich hier auf Tagged gesetzt und genauso auch den Linux Gateway auf Tagged.

2. VLAN Netzwerkkonfiguration für Proxmox Bridge

Hier ist einmal meine Netzwerkkonfiguration für meine Proxmox Bridge. Mein Lan Port wurde in Linux als enp3s0 gekennzeichnet und dieser unterscheidet sich zu eurer also bitte vorher zu eurer Netzwerkkarte umbenennen. Darauf folgt .30 also mit . => Kennzeichnen wir unsere eindeutige VLAN ID die auch für den Server zugewiesen wurde. Solltet Ihr also eine andere VLAN ID genommen haben bei euren Switch, so bitte hinter dem Punkt entsprechend bearbeiten.

# nano /etc/network/interfaces

auto enp3s0.30
iface enp3s0.30 inet manual

#bridged VLAN interface
auto vmbr1
iface vmbr1 inet static
    address 10.10.5.10
    netmask 24
    bridge_ports enp3s0.30
    bridge_stp off
    bridge_fd 0
# Netzwerk Neustart um die neuen Konfigurationen zu übernehmen
service networking restart

3. Linux Gateway VLAN Konfiguration

Ich habe einen Debian 10 Server installiert und darauf ein komplettes Internes Routing erstellt.

Dabei habe ich vor, mit verschiedenen einfachen Tricks, Subnetze aufzuteilen, Ports zu öffnen oder an andere interne Subnetze weiterzuleiten.

Bitte zuvor auf einem reinen Debian Server das Paket bridge-utils installieren mit apt-get install bridge-utils -y

Netzwerkkonfiguration meines Linux Gateways
# Netzwerk Interface
auto enp0s25.30
iface enp0s25.30 inet manual

# Subnetz 10.10.6.0/24

auto vmbr1
iface vmbr1 inet static
address 10.10.6.1
netmask 24
bridge_ports enp0s25.30
bridge_stp off
bridge_waitport 0
bridge_fd 0
# Netzwerk Neustart um die neuen Konfigurationen zu übernehmen
service networking restart

Routing Tipp #1: So isolierst Du Subnetze von anderen Subnetzen

# Sperre Subnetz 10.10.5.0/24 von 10.10.6.0/24 aus und andersrum auch
iptables -A OUTPUT -s 10.10.5.0/24 -o vmbr1 -j DROP
iptables -A INPUT -s 10.10.6.0/24 -i vmbr0 -j DROP
iptables -A OUTPUT -s 10.10.6.0/24 -o vmbr0 -j DROP

# Allen Netzwerkschnittstellen Internet freigeben

iptables -t nat -A POSTROUTING -j MASQUERADE

Der erste Routing Tipp #1 ist eine sehr einfache Methode um innerhalb des Firmennetzwerkes die Kommunikation für bestimmte Subnetze nicht zu gestatten.

Routing Tipp #2: So gibst Du nur bestimmte Subnetze / IPs in ein anderes Subnetz frei

Natürlich sollte jeder Teilnehmer seines Internen Subnetzes nur in seinem bleiben. Wenn jedoch kurzfristig jemand mit der anderen Gegenstelle doch kommunizieren muss, kann der Administrator entsprechend freigaben setzen.

IPtables ParameterUnd deren Funktion
OUTPUTAlles was ausgehend gesendet wird
INPUTAlles was zum Server ankommt wird hiermit definiert sein
-ISetzt mit z.B INPUT 1 | Die Regel in Chain INPUT auf Priorität 1
-iIncoming Device
-oOutput Device
-dDestination
-sSource
-j ACCEPT / DROPErlauben / Sperren
iptables -I INPUT 1 -s 10.10.6.1/32 -i vmbr1 -d 10.10.5.5 -j ACCEPT
iptables -I OUTPUT 1 -s 10.10.6.1/32 -o vmbr1 -d 10.10.5.5 -j ACCEPT

iptables -I INPUT 2 -s 10.10.6.1/32 -i vmbr0 -d 10.10.5.5 -j ACCEPT
iptables -I OUTPUT 2 -s 10.10.6.1/32 -o vmbr0 -d 10.10.5.5 -j ACCEPT

Nun, ich habe somit die IP-Adresse 10.10.5.5 auf die Ziel IP-Adresse 10.10.6.1 freigeben.

Nur diese zwei IPs dürfen nun sich gegenseitig untereinander austauschen von jeweils zwei verschiedenen Subnetzen.

Routing Tipp #3: Wie lösche ich gesetzte Regeln wieder?

Das ist in der Regel sehr einfach. Mit dem Befehl iptables -D INPUT 2 Lösche ich die aktuelle Regel im INPUT Bereich in der Priorität 2.

Gut zu wissen: Die gesamten IPtables Regeln können mit iptables -L --line-numbers ausgelesen werden mit Priorität.

Routing Tipp #4: Portweiterleitung einfach erklärt und angewendet

Ich möchte nun meinen RDP Port von meinem Computer 10.10.5.5 öffnen und brauche dazu auf dem Linux Gateway eine entsprechende Weiterleitung des Ports.

Aktuell ist der Port noch geschlossen, das ändern wir nun.
iptables -t nat -A PREROUTING -d {Öffentliche-IP} -p tcp -m tcp --dport {PORT} -j DNAT --to-destination {Ziel-Subnetz-IP}
iptables -t nat -A POSTROUTING -d {Öffentliche-IP} -p tcp -m tcp --dport {PORT} -j SNAT --to-source {Ziel-Subnetz-IP}
Jetzt ist der Port geöffnet und von außen erreichbar

PVID und Tagging

So wie man in Linux Subnetze Taggen kann, kann man auch ein beliebiges Gerät Taggen über den Switch.

Dazu setzen wir das Gerät was per LAN Verbunden ist mit den Switch auf untagged und setzen danach im Switch eine PVID für das jeweilige Gerät.

Für meinen Windows Computer möchte ich nun eine andere IP-Adresse aus einem anderen VLAN. Dazu tagge ich einfach hier über meinen TP-Link Switch die entsprechende ID um.

Im VLAN 30 setze ich meinen Port 8 / Mein Computer auf untagged
In den PVID Settings schreibe ich nun Port 8 / Home PC zu VLAN 30 um
Hier habe ich nun die neuen Subnetz Daten eingetragen

Ich habe von meiner alten Subnetz IP-Adresse 10.10.5.5 zu 10.10.6.5 gewechselt.


Fazit

Die VLAN Funktion hilft gerade bei der Netzwerkaufteilung und Zuweisung enorm.

Ich bin weiter interessiert, zu forschen und im Anschluss neue Tutorials zu veröffentlichen 🙂

Schreibe einen Kommentar

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