Broadcom VLAN Verbindungsproblem unter FreeBSD mit bnxt Treiber

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

Beim Einsatz von 10/25 GBit/s Broadcom Netzwerkkarten kommt es unter FreeBSD 11.x/12.x sowie OPNsense 21.7 (OPNsense 22.1 ist aktuell in Abklärung) bei aktivierten VLANs zu Übertragungsproblemen. Laut unserem aktuellen Analysestand liegt das Problem beim verwendeten bnxt Treiber. Bis der am 21.4.2022 veröffentlichte Bugfix (siehe #Lösung) in FreeBSD/OPNsense integriert ist, schafft die Aktivierung des Promiscuous Mode temporär Abhilfe.

Wichtiger Hinweis

Dieser Artikel beschreibt ein Problem mit Broadcom Netzwerkkarten bei älteren OPNsense Versionen bis einschließlich OPNsense 22.1. Dieses Problem wurde bereits wie oben beschrieben im April 2022 gelöst. Das aktuelle Problem bei OPNsense 23.7, dass Broadcom Netzwerkkarten mit dem BCM574xx oder BCM574xx Chip nach dem Update auf ebensolche Version nicht mehr funktionieren wird im Wikiartikel Broadcom BCM574xx VLAN Treiberproblem unter FreeBSD 13.2 mit bnxt Treiber beschrieben.

Problem

Bei Verwendung von 10/25 GBit/s Broadcom Netzwerkkarten mit bnxt Treiber können unter FreeBSD/OPNsense bei konfigurierten VLANs keine Daten übertragen werden.[1][2]

Workaround für OPNsense 22.1

Für dieses Problem gibt es aktuell folgenden Workaround bei OPNsense 22.1:

Temporäre Aktivierung

Eine Aktivierung des Promiscuous Mode behebt das Problem. Zum Testen können Sie diesen temporär aktivieren. Verbinden Sie sich dazu per SSH zur OPNsense Firewall und wechseln Sie mit Eingabe der 8 zur Shell. Danach können Sie folgenden Befehl absetzen:[1][3]

ifconfig bnxt0 promisc

Dauerhafte Aktivierung

Eine Dauerhafte Aktivierung des Promiscuous Modes erreichen Sie bei OPNsense 22.1 über das Webinterface. In dieser Anleitung wird dies beispielhaft an einer Intel i210 Netzwerkschnittstelle (Device igb1) gezeigt.

Dadurch wird in der OPNsense Konfigurationsdatei eine Zeile <promisc>1</promisc> bei dem entsprechenden Interface ergänzt und somit sichergestellt, dass bei einem Neustart die Einstellung wieder geladen wird.


Auszug aus der Konfigurationsdatei

<?xml version="1.0"?>
<opnsense>
  <theme>opnsense</theme>
  <sysctl>
[...]
    <lan>
      <if>bnxt0</if>
      <descr>LAN</descr>
      <enable>1</enable>
      <spoofmac/>
      <promisc>1</promisc>
      <ipaddr>192.168.1.1</ipaddr>
      <subnet>24</subnet>
    </lan>
[...]
</opnsense>

Workaround bei OPNsense 21.7 und 21.10

Bei OPNsense 21.7 und der zugehörigen Business Edition Version 21.10 ist es nicht möglich im Webinterface von OPNsense im Bereich Interfaces den Promiscuous Mode für die Broadcom Netzwerkkarte zu aktivieren.

Es kann aber folgender Workaround angewendet werden:

  1. Wechseln Sie im Bereich Services des Webinterfaces zum Unterpunkt Intrusion Detection
  2. Setzen Sie den Haken bei Enabled
  3. Wählen Sie bei Interfaces das entsprechende Interface aus das einer Broadcom Netzwerkkarte zugewiesen ist.
  4. Regeln und weitere Einstellungen sind nicht erforderlich.

Dies sorgt dafür, dass auf dem Interface ebenso der Promiscuous Mode persistent aktiviert wird.

Prüfung der Einstellungen

Sie können per SSH auf der Shell der OPNsense per

# ifconfig bnxt0
bnxt0: flags=28963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
	description: LAN
	[...]

Lösung

Als dauerhafte Lösung sollte ein Patch des Treibers Abhilfe schaffen.[4]

Wir haben dazu eine Anfrage an Broadcom geschickt, damit dieser Patch idealerweise direkt in FreeBSD und OPNsense integriert werden kann. Wir aktualisieren diesen Artikel, sobald wir dazu neue Informationen haben.

Update: Ein Patch wurde nun von den FreeBSD Entwicklern veröffentlicht.[5] Bei OPNsense wurde dieser Patch ebenso integriert und wird mit einem der nächsten Updates verteilt.[6]

Einzelnachweise


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

FreeBSD
FreeBSD Broadcom Netzwerkkarten-Treiber aktivieren
FreeBSD Timecounters