VLAN 1 und Bridge pfSense

crmspezi

Renowned Member
Sep 5, 2019
397
29
68
44
Germany/Thueringen
Hallo,
da ich mit VLAN und Bond Probleme hatte habe ich dies umgangen mit einer extra NIC für die pfSense. Nun möchte ich aber gern alles über den Bond laufen lassen, es funktioniert allerdings dann kein Ping.

Die virtuelle VM pfSense hat nur eine NIC auf der es nur VLAN's gibt, auch das VLAN 1 ist dort getagt! Den unteren Abschnitt hätte ich gern, also pfSense mit bond0 statt normaler Schnittstellen. Stelle ich das ein ist keien Kommunikation mehr möglich (siehe letzter Abschnitt). Was mache ich falsch?

VG crmspezi


# Bestehende Konfig des PVE
auto lo
iface lo inet loopback

iface enp4s0f0 inet manual
iface enp4s0f1 inet manual
iface enp4s0f2 inet manual
iface enp4s0f3 inet manual
iface ens7 inet manual

auto bond0
iface bond0 inet manual
bond-slaves enp4s0f0 ens7
bond-miimon 100
bond-mode active-backup
bond-primary ens7

# hier wird das VLAN 1 getagt gemacht für die pfSense aus dem bond0
iface bond0.1 inet manual
vlan-raw-device bond0

# das ist notwendig für die VM's die in verschiedenen VLANS hängen
auto vmbr0
iface vmbr0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
# bridge-vlan-aware yes
bridge-vids 1-4094

# das ist notwendig für den PVE
auto vmbr0v1
iface vmbr0v1 inet static
address 192.168.190.44
netmask 255.255.255.0
gateway 192.168.190.10
bridge_ports bond0.1
bridge_stp off
pre-down ethtool -s $IFACE wol g
# vlan-raw-device bond0

# das ist notwendig für die pfSense # bisher
auto vmbr1
iface vmbr1 inet manual
bridge-ports enp4s0f3
bridge-stp off
bridge-fd 0

# bis hier her hat alles funktioniert


#NEU

# das funktioniert, aber nur ohne bond

auto vmbr2
iface vmbr2 inet manual
bridge-ports ens7 # geht
# das hätte ich gern bridge-ports bond0 # geht aber nicht
bridge-stp off
bridge-fd 0
# bridge-vlan-aware yes # Achtung Netzwerkverbindung ist tot danach
#
 
Was meinst du mit „geht aber nicht“?
Ist denn deine pfSense bereits konfiguriert? Idealerweise macht man das erst dann, wenn die Netzwerkkonfiguration final ist. Sonst bastelt man sich einen Wolf. Das Problem ist in den meisten Fällen ein Mismatch von getaggtem und ungetaggtem Traffic. Und warum muss VLAN 1 getaggt sein? Welches VLAN läuft denn nativ auf der Bridge?

Aber mal von vorn: du brauchst keine separate Bridge für PVE, wenn vmbr0 bereits vlan-aware ist. Einfach vmbr0.1 definieren und die Adresse dort eintragen.
 
Was meinst du mit „geht aber nicht“?
Ist denn deine pfSense bereits konfiguriert? Idealerweise macht man das erst dann, wenn die Netzwerkkonfiguration final ist. Sonst bastelt man sich einen Wolf. Das Problem ist in den meisten Fällen ein Mismatch von getaggtem und ungetaggtem Traffic. Und warum muss VLAN 1 getaggt sein? Welches VLAN läuft denn nativ auf der Bridge?

Aber mal von vorn: du brauchst keine separate Bridge für PVE, wenn vmbr0 bereits vlan-aware ist. Einfach vmbr0.1 definieren und die Adresse dort eintragen.
Vielen Dank für die Rückmeldung ph0x.

Geht nicht bedeutet, kein Netzwerk.

pfSense läuft seit 3 Jahren unter pve mit separater NIC ohne Probleme mit der Konfig von oben.

VLAN 1 ist getaggt aus historischen Hyper-V Gründen, dort laufen mehr als 100 Windows und Linux VM's. Welches VLAN läuft sieht man in der Konfig 1-4096, bei mir mehr als 10.

vlan-aware bei pfSense funktioniert nicht, sonst scheinbar überall. Da haben sich mehrere User (siehe Forum) die Zähne ausgebissen. Wo sollte ich denn vmbr0.1 definieren wenn nicht unter
# das ist notwendig für den PVE
auto vmbr0v1

Bitte mache mal ein Bsp. Ich verstehe Deinen Ansatz leider nicht. Habe ich da einen Syntaxfehler?
# das ist notwendig für den PVE
vlan-aware bringt bei mir das Netzwerk zum erliegen, siehe Konfig.
 
VLAN 1 ist getaggt aus historischen Hyper-V Gründen, dort laufen mehr als 100 Windows und Linux VM's. Welches VLAN läuft sieht man in der Konfig 1-4096, bei mir mehr als 10.
Meine Frage war, welches VLAN nativ auf dem Bond läuft, da dies oftmals VLAN 1 ist (auch wenn das aus Sicherheitsgründen vermieden werden sollte). Das native VLAN geht aus deiner Konfig nicht hervor, ist aber auch irrelevant.

vlan-aware bei pfSense funktioniert nicht, sonst scheinbar überall. Da haben sich mehrere User (siehe Forum) die Zähne ausgebissen. Wo sollte ich denn vmbr0.1 definieren wenn nicht unter
# das ist notwendig für den PVE
auto vmbr0v1
Du hast mich offenbar missverstanden. Mit der Definition erzeugst du eine zweite Bridge auf dem getaggten Interface. Das ist völlig unnötig, da deine erste Bridge ja bereits VLAN-aware ist* und du deshalb einfach den Tag in die Bridge ziehen kannst. Also nicht bond0.1 -> vmbr0v1 sondern bond0 -> vmbr0.1
* Aber da ich jetzt am großen Bildschirm sitze und nicht auf die Briefmarke des Handys schaue, sehe ich, dass du vlan-aware ja auskommentiert hast. Nun gut, es wird wohl auch mit einer zweiten Bridge gehen.

# das ist notwendig für den PVE
vlan-aware bringt bei mir das Netzwerk zum erliegen, siehe Konfig.
Das erschließt sich mir noch nicht. Die Netzwerkverbindung des gesamten Hosts oder nur die der VM?

Zu der Sache mit dem Bond: Da es ein active-backup Bond ist, sehe ich nicht, weshalb eine Bridge auf den Bond nicht genauso funktionieren sollte wie auf das Interface. Versuchst du eventuell beide Bridges gleichzeitig auf dem Bond laufen zu lassen? Da wäre ich mir jetzt unsicher, ob das so ohne weiteres möglich ist.
 
Last edited:
vlan-aware bei pfSense funktioniert nicht, sonst scheinbar überall. Da haben sich mehrere User (siehe Forum) die Zähne ausgebissen.
Ich habe jetzt extra um das zu testen eine pfSense-VM mit nur einer NIC (meine vlan-aware vmbr0) hochgezogen. Wenn sich Leute daran die Zähne ausbeißen, dann wahrscheinlich, weil sie entweder VLANs nicht verstanden haben oder pfSense nicht konfigurieren können oder eine Linearkombination daraus.

Hier läuft das jedenfalls out of the box. Bei der Installation müssen eben direkt zwei VLANs angelegt werden, die dann auf WAN und LAN gemappt werden. Und dann sollte man in der Lage sein, mit einem Rechner auch Zugriff auf LAN zu nehmen, da sich pfSense ungern über WAN konfigurieren lässt.

EDIT: 1000. Post! *hup hup* :)
 
Last edited:
Meine Frage war, welches VLAN nativ auf dem Bond läuft, da dies oftmals VLAN 1 ist (auch wenn das aus Sicherheitsgründen vermieden werden sollte). Das native VLAN geht aus deiner Konfig nicht hervor, ist aber auch irrelevant.


Du hast mich offenbar missverstanden. Mit der Definition erzeugst du eine zweite Bridge auf dem getaggten Interface. Das ist völlig unnötig, da deine erste Bridge ja bereits VLAN-aware ist* und du deshalb einfach den Tag in die Bridge ziehen kannst. Also nicht bond0.1 -> vmbr0v1 sondern bond0 -> vmbr0.1
* Aber da ich jetzt am großen Bildschirm sitze und nicht auf die Briefmarke des Handys schaue, sehe ich, dass du vlan-aware ja auskommentiert hast. Nun gut, es wird wohl auch mit einer zweiten Bridge gehen.


Das erschließt sich mir noch nicht. Die Netzwerkverbindung des gesamten Hosts oder nur die der VM?

Zu der Sache mit dem Bond: Da es ein active-backup Bond ist, sehe ich nicht, weshalb eine Bridge auf den Bond nicht genauso funktionieren sollte wie auf das Interface. Versuchst du eventuell beide Bridges gleichzeitig auf dem Bond laufen zu lassen? Da wäre ich mir jetzt unsicher, ob das so ohne weiteres möglich ist.

Meine Frage war, welches VLAN nativ auf dem Bond läuft, da dies oftmals VLAN 1 ist (auch wenn das aus Sicherheitsgründen vermieden werden sollte). Das native VLAN geht aus deiner Konfig nicht hervor, ist aber auch irrelevant.


Du hast mich offenbar missverstanden. Mit der Definition erzeugst du eine zweite Bridge auf dem getaggten Interface. Das ist völlig unnötig, da deine erste Bridge ja bereits VLAN-aware ist* und du deshalb einfach den Tag in die Bridge ziehen kannst. Also nicht bond0.1 -> vmbr0v1 sondern bond0 -> vmbr0.1
* Aber da ich jetzt am großen Bildschirm sitze und nicht auf die Briefmarke des Handys schaue, sehe ich, dass du vlan-aware ja auskommentiert hast. Nun gut, es wird wohl auch mit einer zweiten Bridge gehen.


Das erschließt sich mir noch nicht. Die Netzwerkverbindung des gesamten Hosts oder nur die der VM?

Zu der Sache mit dem Bond: Da es ein active-backup Bond ist, sehe ich nicht, weshalb eine Bridge auf den Bond nicht genauso funktionieren sollte wie auf das Interface. Versuchst du eventuell beide Bridges gleichzeitig auf dem Bond laufen zu lassen? Da wäre ich mir jetzt unsicher, ob das so ohne weiteres möglich ist.
Ja. Active Backup, 10G oder 1G. Ich verstehe es auch nicht. Ja, ich versuche gleichzeitig beide Brigde auf dem Bond laufen zu lassen. Beide Bridge aber auf dem gleichen Interfaces ens7 geht aber. Bringe ich VLAN-aware ist als Option rein ist der Host auch nur per IPMI/iLO erreichbar. NIC`s haben keine Netzwerkverbindung mehr. Zum Glück habe ich ifupdown2 installiert um ohne Neustart nut mit /etc/init.d/networking restart testen zu können.

Wie gesagt pfsense hat nur getaggte VLAN's, wie vtnet0.1, vtnet0.100, etc. (die vtnet0.1 ist das LAN wie beim PVE)
 
Last edited:
Ja. Active Backup, 10G oder 1G. Ich verstehe es auch nicht. Ja, ich versuche gleichzeitig beide Brigde auf dem Bond laufen zu lassen. Beide Bridge aber auf dem gleichen Interfaces ens7 geht aber. Bringe ich VLAN-aware ist als Option rein ist der Host auch nur per IPMI/iLO erreichbar. NIC`s haben keine Netzwerkverbindung mehr. Zum Glück habe ich ifupdown2 installiert um ohne Neustart nut mit /etc/init.d/networking restart testen zu können.
Ich habe bei mir mal beobachtet, dass eine Verbindung über die Bridge nicht mehr ging, als die entsprechende VLAN-Adresse des hosts direkt auf dem Interface definiert hab statt auf einem getaggten Bridge-Interface. Wahrscheinlich spielt bei dir ähnliches rein.

Wenn du VLAN 1 tatsächlich getaggt an den Host gibst und hierüber das WebGUI läuft, würde ich es mal so probieren:
Code:
auto lo
iface lo inet loopback

iface enp4s0f0 inet manual
iface enp4s0f1 inet manual
iface enp4s0f2 inet manual
iface enp4s0f3 inet manual
iface ens7 inet manual

auto bond0
iface bond0 inet manual
   bond-slaves enp4s0f0 ens7
   bond-miimon 100
   bond-mode active-backup
   bond-primary ens7

auto vmbr0
iface vmbr0 inet manual
   bridge-ports bond0
   bridge-stp off
   bridge-fd 0
   bridge-vlan-aware yes
   bridge-vids 1-4094

auto vmbr0.1
iface vmbr0.1 inet static
   address 192.168.190.44/24
   gateway 192.168.190.10

Damit hat dein Host eine Adresse im getaggten VLAN 1 und über vmbr0 kannst du deine VMs anbinden (auch pfSense! :)), indem du entweder einen Tag in der NIC-Definition der jeweiligen VM vergibst oder (wie im Fall der pfSense) den Trunk komplett übergibst.
 
Last edited:
  • Like
Reactions: NospamNo
Ich habe bei mir mal beobachtet, dass eine Verbindung über die Bridge nicht mehr ging, als die entsprechende VLAN-Adresse des hosts direkt auf dem Interface definiert hab statt auf einem getaggten Bridge-Interface. Wahrscheinlich spielt bei dir ähnliches rein.

Wenn du VLAN 1 tatsächlich getaggt an den Host gibst und hierüber das WebGUI läuft, würde ich es mal so probieren:
Code:
auto lo
iface lo inet loopback

iface enp4s0f0 inet manual
iface enp4s0f1 inet manual
iface enp4s0f2 inet manual
iface enp4s0f3 inet manual
iface ens7 inet manual

auto bond0
iface bond0 inet manual
   bond-slaves enp4s0f0 ens7
   bond-miimon 100
   bond-mode active-backup
   bond-primary ens7

auto vmbr0
iface vmbr0 inet manual
   bridge-ports bond0
   bridge-stp off
   bridge-fd 0
   bridge-vlan-aware yes
   bridge-vids 1-4094

auto vmbr0.1
iface vmbr0.1 inet static
   address 192.168.190.44/24
   gateway 192.168.190.10

Damit hat dein Host eine Adresse im getaggten VLAN 1 und über vmbr0 kannst du deine VMs anbinden (auch pfSense! :)), indem du entweder einen Tag in der NIC-Definition der jeweiligen VM vergibst oder (wie im Fall der pfSense) den Trunk komplett übergibst.
Ja, bei mir ist das Webinterface des pve wirklch getaggt 1 . Danke sehr, ich probiere das heute mal aus. Wenn das geht würde dies vieles vereinfachen. Warum mein Ansatz, wenn auch viel komplizierter, nicht geht verstehe ich aber nicht.

Danke sehr für Deine Hilfe in der Nacht! :)
 
Eben getestet,
ich erreiche damit nicht die pfSense. Nach dem Neustart (vorsichtshalber) ist der Host auch nicht mehr erreichbar. Evtl. liegt an der Art der Aresse IP/Mask von Dir. Teste ich dann.

Verstehe ich nicht. Eben die andere interfaces rein und /etc/init.d/neworking restart und geht.

Mit der hier leider nicht. Auch der pve nicht

# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

iface enp4s0f0 inet manual

iface enp4s0f1 inet manual

iface enp4s0f2 inet manual

iface enp4s0f3 inet manual

iface ens7 inet manual

auto bond0
iface bond0 inet manual
bond-slaves enp4s0f0 ens7
bond-miimon 100
bond-mode active-backup
bond-primary ens7

### bis hierher alles wie gehabt


#####################################################################

# alte Weise
# iface bond0.1 inet manual
# vlan-raw-device bond0

# alte Weise
# auto vmbr0
# iface vmbr0 inet manual
# bridge-ports bond0
# bridge-stp off
# bridge-fd 0
### bridge-vlan-aware yes
# bridge-vids 1-4094

# alte Weise
# auto vmbr0v1
# iface vmbr0v1 inet static
# address 192.168.190.44
# netmask 255.255.255.0
# gateway 192.168.190.10
# bridge_ports bond0.1
# bridge_stp off
# pre-down ethtool -s $IFACE wol g
### vlan-raw-device bond0


#####################################################################


auto vmbr0
iface vmbr0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 1-4094


auto vmbr0.1
iface vmbr0.1 inet static
address 192.168.190.44/24
gateway 192.168.190.10


# Reserve wie früher
auto vmbr1
iface vmbr1 inet manual
bridge-ports enp4s0f3
bridge-stp off
bridge-fd 0


# Test
# auto vmbr2
# iface vmbr2 inet manual
# bridge-ports ens7
# bridge-stp off
# bridge-fd 0
## bridge-vlan-aware yes # Achtung Netzwerkverbindug ist tot danach
#
 
Ganz eventuell liegt es daran, dass vlan 1 getaggt ankommt. Das ist höchst unüblich und könnte das Problem mit der vlan-aware Bridge sein, da dort gern mal vlan 1 als natives vlan ungetaggt draufgelegt wird.
Dazu müsste man aber wahrscheinlich in den Code gucken.
Ich kann nur sagen, dass die Konfig in der Art bei mir einwandfrei funktioniert.
 
Ganz eventuell liegt es daran, dass vlan 1 getaggt ankommt. Das ist höchst unüblich und könnte das Problem mit der vlan-aware Bridge sein, da dort gern mal vlan 1 als natives vlan ungetaggt draufgelegt wird.
Dazu müsste man aber wahrscheinlich in den Code gucken.
Ich kann nur sagen, dass die Konfig in der Art bei mir einwandfrei funktioniert.
Du hast wahrscheinlich Recht. Das Problem hatte ich ja schon vor Jahren. Ich überlege, ob ich hier umbaue. Zur Zeit probiere ich noch mit zusätzlichem bond.
 
Ich würde es empfehlen, auf VLAN 1 komplett zu verzichten. Dadurch ist man eine der zwei Sicherheitssorgen, die durch die Nutzung von VLANs entstehen können, schon mal los.
 
Danke für den Hinweis, kann dies aber nicht so schnell umsetzen (zu viele Hosts und VM's).

Ich habe nun alles probiert, es liegt definitiv am bond, Die pfSense mit VLAN Trunk läuft auf jeder Bridge mit echtem Interface. Siehe Dir das fett gesetzte an.



Siehe hier:
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback
iface enp4s0f0 inet manual
iface enp4s0f1 inet manual
iface enp4s0f2 inet manual
iface enp4s0f3 inet manual
iface ens7 inet manual

auto bond0
iface bond0 inet manual
bond-slaves enp4s0f0 ens7
bond-miimon 100
bond-mode active-backup
bond-primary ens7

# fuer Host selbst
iface bond0.1 inet manual
vlan-raw-device bond0

auto vmbr0v1
iface vmbr0v1 inet static
address 192.168.190.44
netmask 255.255.255.0
gateway 192.168.190.10
bridge_ports bond0.1
bridge_stp off
pre-down ethtool -s $IFACE wol g
# vlan-raw-device bond0

# fuer VMs
auto vmbr0
iface vmbr0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
# bridge-vlan-aware yes
bridge-vids 1-4094

# Sonderfall pfSense - neue Bridge
auto bond1
iface bond1 inet manual
# ACHTUNG enp4s0f0 kann aus unbekannten Gruenden nicht doppelt verwendet werden dann ist der Host auch tot, ens 7 geht jedoch
bond-slaves enp4s0f1 ens7
bond-miimon 100
bond-mode active-backup
bond-primary ens7

# nur fuer pfSense
auto vmbr3
iface vmbr3 inet manual
bridge-ports bond1 # geht nicht # nur mit ens7
bridge-stp off
bridge-fd 0
# bridge-vlan-aware yes
# bridge-vids 1-4094


############## Reserven

auto vmbr1
iface vmbr1 inet manual
bridge-ports enp4s0f3
bridge-stp off
bridge-fd 0

auto vmbr2
iface vmbr2 inet manual
bridge-ports ens7
bridge-stp off
bridge-fd 0
# bridge-vlan-aware yes # Achtung Netzwerkverbindug ist tot danach
#
 
ifenslave kenne ich nicht. Aktiv habe ich dies nicht installiert. Das Problem mit dem bond, evtl ja auch nur mit getaggt vlan1 und pfsense oder opnsense scheinen mehrere in der Vergangenheit hier gehabt zu haben.
Allerdings wäre dies ein großer Bug.

Kannst Du mir sagen an welcher Stelle und für was vlan-raw-device wirklich gebraucht wird?
 
Falls du einen anderen Namen für dein VLAN wählst, als das übliche interface.X, gibst du damit an, auf welchem Interface das VLAN aufsetzen soll.

Falls du weder ifupdown2 noch ifenslave installiert hast, kann das mit dem Bond nicht funktionieren. Eines der beiden Pakete wird benötigt.
 
Last edited:
Falls du einen anderen Namen für dein VLAN wählst, als das übliche interface.X, gibst du damit an, auf welchem Interface das VLAN aufsetzen soll.

Falls du weder ifupdown2 noch ifenslave installiert hast, kann das mit dem Bond nicht funktionieren. Eines der beiden Pakete wird benötigt.
ifupdown2 habe ich ja installiert (siehe oben). Wie gesagt, mein Post die lauffähige Config, alles andere geht nicht. Ich verzichte nun auf den Bond bei der pfSense. Verstehen tue ich es nicht warum nur echte Interfaces funktionieren.
 
Viel gebracht hat's ja nicht. :)
Da auf lange Post selten noch neue Antworten kommen, würde ich fast empfehlen, einen Bug im Tracker zu melden. Da schauen dann auch die Leute drauf, die den Code kennen.
 

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!