Single NIC Proxmox mit PFSENSE und VLANs nutzen

shanoviachan

Member
Oct 6, 2021
11
1
8
36
Hallo zusammen,
ich weiß das es zu meiner Frage schon unzählige Videos und Tutorials und Foreneinträge gibt. Da ich aber mit jeder Lösung scheitere, habe ich irgendwie Sorge das ich die Englischen Erklärungen einfach nicht verstehe, daher hoffe ich ihr seid so nett mir auf Deutsch weiterzuhelfen :-)

Mein Setup:
  • Proxmox installiert auf einem Intel NUC (ein physikalischer Netzwerkport)
  • In Proxmox habe ich bei Netzwerken:
    • Eno1 (Netzwerkkarte)
    • vmbr0 (auf eno1)
    • vmbr1 (mein VLAN network)
1659182732095.png
  • PFsense als virtuelle Maschine mit zwei Netzwerkports
    • vmbr0 (WAN)
    • vmbr1(LAN)
1659182701788.png
  • PFsense mit n VLANS auf dem LAN Port, jeweils mit eigenem DHCP
  • Ein Switch (Zyxel) mit 8 Ports
    • VLAN 10 (bspw.) an Port 4 untagged und Port 8 tagged
    • An Port 2und 3 hängen APs von Zyxcel der unterschiedle WLANs mit unterschiedlichen VLANs ausstrahlt
    • Proxmox ist an Port 8 (tagged für alle VLANs)

1659182892905.png

Die PFSENSE soll den gesamten Netzwerkverkehr aufnehmen und über verschiede VLANS von einander trennen

Das funktioniert in diesem Setup tatsächlich auch wenn ich einen neuen Container startet und bspw. dem VLAN 10 zuordne. Was aber nicht funktioniert ist, das ich von Endgeräten die über den Switch kommen entsprechend von der PFsense bedient werde,


Ich vermute ich habe einen ganz einfachen Denkfehler hier, aber ich komme leider selber nicht auf die Lösung?

Danke für eure Hilfe.
 
Wie soll VLAN am Switch ankommen, wenn das einzige mit Anbindung an eine physische NIC the vmbr0 ist, welche nur am WAN hängt und kein VLAN nutzt?
Deine vmbr1 hat keine NIC zugewiesen, also auch einen Kontakt zu indwas außerhalb des PVE Hosts.

Wenn du nur eine physische NIC hast müsstest du schon WAN+LAN über tagged VLAN über die eno1 mit Switch verbinden.
 
Last edited:
Das würde nicht viel Sinn machen.
Was ich machen wurde wäre Modem/ISP-Router mit dem Managed Switch verbinden und den Port der dann für WAN genutzt wird auf untagged VLAN stellen. Also z.B. Port 1 am Switch auf untagged VLANID 100 stellen. Alles was dann vom Modem in den Switch an Port 1 reinkommt wird mit einem VLANID100 tag versehen.
Dann Port 3, 4, 5, 6,... am Switch auf untagged VLANID 200 stellen. VLAN 200 wäre dann für LAN und alles was an Port 2,3,4,... am Switch reinkommt wird mit VLANID200 getaggt.
Der PVE Host kommt dann an Port 2 an den Switch und port 2 sollte tagged VLANIDs 100+200 bekommen. Damit erreichen dann den PVE Host alle Pakete die entweder mit VLANID 100 oder 200 getaggt wurden. Der PVE Host hängt also über die gleiche eine NIC sowohl im WAN als auch im LAN VLAN.

Am PVE Host hast du dann zwei Optionen:
Option 1.) Zwei VLAN Interfaces und zwei Bridges erstellen. Also je eine Bridge für WAN und eine für LAN. Der pfsense VM dann eine virtio NIC an der WAN bridge zuteilen und eine virtio NIC an der LAN Bridge. Allen anderen Gästen nur eine virtio NIC an die LAN Bridge. In dem Fall müssen sich die Gäste um keinerlei VLANs mehr kümmern da sie nur ungetaggte Packete erreichen. Konfig kann dann z.B. so aussehen:
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

iface eno1.100 inet manual
# WAN VLAN Interface

iface eno1.200 inet manual
# LAN VLAN Interface

auto vmbr200
iface vmbr200 inet static
        address  192.168.0.2/24
        gateway  192.168.0.1
        bridge-ports eno1.200
        bridge-stp off
        bridge-fd 0
#LAN Bridge

auto vmbr100
iface vmbr100 inet manual
        bridge-ports eno1.100
        bridge-stp off
        bridge-fd 0
#WAN Bridge
PVE Host wäre dann nur vom LAN VLAN aus erreichbar mit statischer IP 192.168.0.2 und die pfsense sollte dann als LAN IP die 192.168.0.1 haben, damit der PVE Host über die pfsense VM online kommt.

Option 2.) Nur eine Bridge nutzen die vlan aware ist. In dem Fall müssten alle Gäste die gleiche Bridge benutzen und den virtuellen NICs jedes Gastes müsste immer ein VLAN Tag gesetzt werden. Sagen wir du hast nur eine vmbr0. Dann müsste die pfsense zwei virtio NICs bekommen die an vmbr0 hängen. Eine davon mit VLANID 100 die andere mit 200, über das webUI unter DeineVM -> Hardware -> DeineNIC -> Edit -> VLAN Tag, gesetzt.
Allen anderen Gäste dann nur eine virtio NIC mit VLAN Tag 200 verpassen.
Konfig könnte dann z.B. so aussehen:
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0.200
iface vmbr0.200 inet static
        address  192.168.0.2/24
        gateway  192.168.0.1

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
 
Hallo Dunuin,
danke für deine detaillierte Beschreibung. Das ist im Grunde nachvollziehbar. Danke das du dir so viel Mühe gegeben hast.

Ich habe den ersten Teil auch genau so auch schon ungesetzt:
  • In meinem Fall ist das Modem auf Port 1 und der PVE Host auf Port 8. Sprich ich habe VLAN 100 (WAN) untagged auf Port 1 und tagged auf Port 8
  • Port 2, 3 und 4 sind bei mir benutzte Ports für den LAN Bereich (hier hängt ein AP mit unterschiedlichen WLAN SSIDs dran)
    • VLAN 10, 50, 60, 70 sind untagged auf den Ports 2, 3, 4
    • VLAN 10, 50, 60, 70 sind tagged auf den Ports 8 (PVE Host)
Beim zweiten Teil, tendiere ich zur Option #2 (ich vermute damit verlagere ich ja den Aufgaben im Wesentlichen in die PFSENSE oder?). Im Grunde ist das auch schon vom Konzept nahe an meinem IST-Zustand

Deine Beschreibung macht dann für Sinn mit genau einem LAN VLAN. In meinem Fall mit mehreren habe ich aber Fragezeichen
  • Kann ich bei der PFSENSE im NIC mehrere VLAN tags reinschreiben, sprich 10, 50, 60, 70?
  • Muss ich dann in der Konfiguration des PVE Hosts ebenfalls mehrere Blöcke anlegen, sprich
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0.10
iface vmbr0.10 inet static
        address  192.168.10.2/24
        gateway  192.168.0.1

auto vmbr0.50
iface vmbr0.50 inet static
        address  192.168.50.2/24
        gateway  192.168.0.1

auto vmbr0.60
iface vmbr0.60 inet static
        address  192.168.60.2/24
        gateway  192.168.0.1

auto vmbr0.70
iface vmbr0.70 inet static
        address  192.168.70.2/24
        gateway  192.168.0.1

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
[CODE]

Damit wäre mein PVE Host aus allen Netzwerken unter unterschiedlichen IPs erreichbar, oder? Brauche ich eigentlich nicht, reichen würde das VLAN 10 (mein SUPERADMIN Netzwerk auf das genau ein Computer zugreifen soll)
 
Last edited:
  • Kann ich bei der PFSENSE im NIC mehrere VLAN tags reinschreiben, sprich 10, 50, 60, 70?
du hast da prinzipiell noch eine Option 3. Das gleiche wie Option 2 aber der pfsense VM nur eine virtio NIC verpassen und der virtio NIC kein VLAN tag verpassen. Dann wird die pfsense über diese eine virtio NIC alles Paketen erreichen, egal welchem VLAN die angehören. Dann würden da also VLAN 10, 50, 60, 70 und untagged Pakete die vmsense erreichen. Um VLANs müsste sich dann aber die pfsense selbst kümmern. Da würde man dann VLAN interfaces wie vtnet0.10, vtnet0.50, ... in der pfsense anlegen.
Aber ja, wenn man sich in der pfsense nicht mit VLAN herumschlagen will. dann kann man einfach Option 2 folgen und pfsense 4 virtio NICs verpassen. eine für jedes VLAN und dann jeder ihr eigenes VLAN tag über das PVE webUI verpassen.
  • Muss ich dann in der Konfiguration des PVE Hosts ebenfalls mehrere Blöcke anlegen, sprich
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0.10
iface vmbr0.10 inet static
        address  192.168.10.2/24
        gateway  192.168.0.1

auto vmbr0.50
iface vmbr0.50 inet static
        address  192.168.50.2/24
        gateway  192.168.0.1

auto vmbr0.60
iface vmbr0.60 inet static
        address  192.168.60.2/24
        gateway  192.168.0.1

auto vmbr0.70
iface vmbr0.70 inet static
        address  192.168.70.2/24
        gateway  192.168.0.1

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
[CODE]

Damit wäre mein PVE Host aus allen Netzwerken unter unterschiedlichen IPs erreichbar, oder? Brauche ich eigentlich nicht, reichen würde das VLAN 10 (mein SUPERADMIN Netzwerk auf das genau ein Computer zugreifen soll)
Wenn du nur aus dem VLAN 10 den PVE administrieren möchtest, dann würde ich PVE auch nur für das VLAN 10 eine IP verpassen. Außerdem nicht vergessen, dass du nur 1 Gateway haben kannst. Und das gateway sollte im selben Subnetz liegen wie die IP von Proxmox, dass das auch erreichbar ist.
Also dann eher:

Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0.10
iface vmbr0.10 inet static
        address  192.168.10.2/24
        gateway  192.168.10.1

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
 
Vielen Dank.
Ich habe jetzt Option 3 erstmal einfach zum Laufen gebracht. Allerdings habe ich dafür in der VM der PFSENSE nur den LAN Nic auf die vmbr0 Bridge ändern müssen. Die Konfiguration des PVE Hosts habe ich nicht anpassen müssen. Damit ist dieser weiterhin auch aus dem WAN erreichbar. Das ändere ich dann später einmal.

PS: im Managed Switch müssen die Ports 2, 3, 4 auf "Tagged" stehen, denn der AP verpasst dem untagged traffic einen tag und der Switch muss diese weiterreichen.
 
Hallo, ich möchte daa Thema nochmal hochholen, weil ich es noch nicht so ganz verstehe, was ich in Proxmox konfigurieren muss...

Ich hab aktuell einen ESXi-Server mit pfsense in einer VM.

Mein managed Switch hat die Ports 1-8.

Port 1-7 ist VLAN 1 (also ohne VLAN) untagged. Das ist mein internes LAN.
Port 7 ist zusätzlich VLAN 10 tagged - dort hängt mein ESXI-Server mit der pfsense
Port 8 ist mein Lan-Kabel vom Router (WAN-Zugang), dort ist VLAN 10 untagged gesetzt

In ESXI sind 2 Netzwerke (Bridges?) eingerichtet
Pfsense hat dann 2 NICs eingestellt. Einmal ohne VLAN (LAN) und einmal mit VLAN 10 (WAN).

-----

Ich möchte nun den ESXi-Server gegen Proxmox ersetzen und darauf opnsense virtualisieren.

Was muss ich in proxmox einstellen, dass ich meine Switch-Konfig 1zu1 weiternutzen kann? Also alles im LAN ohne VLAN und nur das WAN mit VLAN 10 versehen, so dass ich das an meinem Server mit 1 physischen NIC nutzen kann.

Benötige ich hier nur:
auto vmbr0.10
und
auto vmbr0

Oder benötige ich hier vmbr0 und vmbr1 ???



EDIT:
Ich sehe gerade, ich habe bisher in der pfsense das VLAN 10 zwar angelegt, aber überhaupt nicht genutzt, also macht aktuell mein ESXi-Server bereits die VLAN-Verarbeitung und gibt an die pfsense das WAN-Netz ohne VLAN weiter.
 
Last edited:
Hast du zwei Optionen.

A.) Entweder eine einzelne VLAN-aware bridge an die du dann die zwei vNICs der VM hängst, wobei du einer der beiden vNICs "10" als VLAN Tag mitgibst.
B.) Oder du machst zwei Bridges, wobei die eine dann nicht an der physischen NIC sondern an einem VLAN interface für VLANID 10 hängen sollte. Da müsste du der vNIC dann auch kein VLAN Tag mitgeben.
 
Also A) wäre dann vmbr0 und vmbr0.10
und B) wäre vmbr0 und vmbr1

Richtig so?

---

Vom sicherheitsaspekt gesehen ist es egal, welche der beiden Lösjungen genutzt werden, nehme ich an?

-----

Ich hab noch einen Unifi-Controller virtualisiert laufen und möchte evtl. zukünftig ein weiteres VLAN für ein Gast-WLAN machen.
Welche der beiden Lösungen wäre hier die bessere?
 
Welche der beiden Lösungen wäre hier die bessere?
Gehen beide für beides. Option A hast du halt den Vorteil, dass du nicht endlos viele Interfaces verwalten musst, wenn sich die VLANs anhäufen und dass du auch die Gäste VLANs verwalten lassen kannst. Bei Option B kommen bei Gästen nämlich keine Tagged VLAN Pakete an, also wäre etwas wie mit VLAN in der pfsense Arbeiten nicht möglich.
 
vmbr0.10 wäre ein VLAN interface und das bräuchtest du bei Option A nicht außer du willst deinem PVE Host eine IP im 10er VLAN vergeben, was ja bei WAN eher unschön wäre.
Siehe: https://pve.proxmox.com/wiki/Network_Configuration#sysadmin_network_vlan
WAN bedeutet in meinem Fall aber LAN von einer Fritz Box, wobei die pfsense/opnsense als Expost host definiert wird.

Die Fritz Box, also mein "WAN" ;-) hat die IP 192.168.2.1, die pfsense auf dem WAN Interface (VLAN 10) die 192.168.2.2, auf dem LAN Interface die 192.18.102.1 und mein lokales LAN hinter meiner Firewall bekommt dann logischerweise 192.168.102.xxx

Benötige ich dann in dem Fall, wenn mein "WAN" eigentlich eine Fritz Box als Router ist die vmbr0. 10 oder geht das wirklich nur mit vmbr0 alleine?

Eher nicht? Vmbr0 leitet alle vlans zur pfsense durch oder?
Mein Proxmox host bekommt nur eine lokale IP aus dem Bereich .102.
Aus dem Bereich .2. bekommt nur die pfsense eine IP.
 
Ist das sicherheitstechnisch ein Problem, wenn ich alles mit vmbr0 alleine mache? Proxmox bekommt dann ja eigentlich den gesamten Datenverkehr mit? Aber reagiert nur auf die Datenpakete ohne VLAN, weil kein vmbr0.10 hinterlegt ist, richtig?

Die VLAN 10 Pakete würden ohne installierte pfsense einfach verworfen werden?

Und das Webinterface von Proxmox ist aus dem WAN bzw. dem vorgeschalteten Fritzbox-Netzwerk auch nicht erreichbar, solange ich in der pfsense keine extra Firewall-Regel eintrage?

---

Und was ich noch ganz vergessen habe... Wenn ich meine Konfig in Proxmox nur mit vmbr0 mache, muss ich dann den Haken bei "VLAN aware" setzen oder nicht?
 
Last edited:
Und was ich noch ganz vergessen habe... Wenn ich meine Konfig in Proxmox nur mit vmbr0 mache, muss ich dann den Haken bei "VLAN aware" setzen oder nicht?
Ja, setzen.

Die VLAN 10 Pakete würden ohne installierte pfsense einfach verworfen werden?
Und das Webinterface von Proxmox ist aus dem WAN bzw. dem vorgeschalteten Fritzbox-Netzwerk auch nicht erreichbar, solange ich in der pfsense keine extra Firewall-Regel eintrage?
Genau. Hat PVE keine IP im VLAN 10 dann ist es dort auch nicht erreichbar und leitet die Pakete nur an die Gäste weiter.

Aber reagiert nur auf die Datenpakete ohne VLAN, weil kein vmbr0.10 hinterlegt ist, richtig?
Genau.

Ist das sicherheitstechnisch ein Problem, wenn ich alles mit vmbr0 alleine mache? Proxmox bekommt dann ja eigentlich den gesamten Datenverkehr mit?
Da würden dann aber auch 2 Bridges nichts bringen. Für ein Extra an Sicherheit müsstest du für WAN schon eine eigene NIC haben und die per PCI Passthrough in die VM durchreichen.
Nur dann würden deine WAN Pakete garnicht erst über PVE laufen, da die physische NIC dann direkt vom GastOS benutzt werden würde.
 
Irgendwas passt bei mir noch nicht...

Ich hab die opnsense in einer vm installiert, aber ich komm nicht aufs webinterface...

Hier meine Einstellungen des Netzwerks in proxmox:
auto lo iface lo inet loopback iface enp1s0 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.102.30/24 gateway 192.168.102.4 bridge-ports enp1s0 bridge-stp off bridge-fd 0 bridge-vlan-aware yes bridge-vids 2-4094

Mehr steht da nicht drin.

In opnsense hab ich per DHCP die IP 192.168.102.146 erhalten, aber damit komme ich nicht drauf...
Webinterface von proxmox funktioniert problemlos mit der 192.168.102.30:8006

LAN der opnsense ist mit vmbr0 direkt verbunden.

Wenn ich in proxmox ping 192.168.102.146 eingebe, dann kommt:
root@pve:~# ping 192.168.102.146 PING 192.168.102.146 (192.168.102.146) 56(84) bytes of data. From 192.168.102.30 icmp_seq=1 Destination Host Unreachable

Wo soll ich weitersuchen? In proxmox oder in opnsense?
 
Irgendwas passt bei mir noch nicht...

Ich hab die opnsense in einer vm installiert, aber ich komm nicht aufs webinterface...

Hier meine Einstellungen des Netzwerks in proxmox:
auto lo iface lo inet loopback iface enp1s0 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.102.30/24 gateway 192.168.102.4 bridge-ports enp1s0 bridge-stp off bridge-fd 0 bridge-vlan-aware yes bridge-vids 2-4094

Mehr steht da nicht drin.

In opnsense hab ich per DHCP die IP 192.168.102.146 erhalten, aber damit komme ich nicht drauf...
Webinterface von proxmox funktioniert problemlos mit der 192.168.102.30:8006

LAN der opnsense ist mit vmbr0 direkt verbunden.

Wenn ich in proxmox ping 192.168.102.146 eingebe, dann kommt:
root@pve:~# ping 192.168.102.146 PING 192.168.102.146 (192.168.102.146) 56(84) bytes of data. From 192.168.102.30 icmp_seq=1 Destination Host Unreachable

Wo soll ich weitersuchen? In proxmox oder in opnsense?
Sieht für mich alles ok aus. Wenn du aber 192.168.102.4 als Gateway hast, dann wäre doch das pfsense WebUI auch auf 192.168.102.4 oder nicht?

Ich versteh nicht ganz wo da dein DHCP herkommt. Meinst du ein anderer Rechner mit dem du aufs WebUI willst hat per DHCP die 192.168.102.146 zugeteilt bekommen?
 
Last edited:
Ich setze meine opnsense ja gerade erst neu auf.

Ich hab meine alte pfsense (incl DHCP-Server) noch am laufen und das ist die .4.

Hab jetzt einen Factory Reset in opnsense gemacht und jetzt plötzlich gehts, nach umstellung auf IP per DHCP beziehen (hatte ich aber vorher genauso...).

Sobald die opnsnese dann konfiguriert ist, wird die pfsense abgeschaltet und ersetzt.
 

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!