OPNsense Netzwerkkarten-Treiber

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

OPNsense enthält Treiber für zahlreiche Netzwerkkarten. Diese Wiki Artikel zeigt, welche Treiber für welche Netzwerkkarten zum Einsatz kommen. Manche Treiber müssen manuell aktiviert werden, Informationen dazu liefert der Artikel OPNsense Chelsio Mellanox Broadcom Netzwerkkarten-Treiber aktivieren.

Treiber Versionen

Treiber Unterstützte Netzwerk-Chips/Karten Treiberversion

in OPNsense 24.1

(FreeBSD 13.2-RELEASE)

Treiberversion

in OPNsense 23.7

(FreeBSD 13.2-RELEASE)

Treiberversion

in OPNsense 23.1

(FreeBSD 13.1-RELEASE)

Treiberversion

in OPNsense 22.7

(FreeBSD 13.1-RELEASE)

Treiberversion

in OPNsense 22.1

(FreeBSD 13.0-STABLE)

Treiberversion

in OPNsense 21.7

(FreeBSD 12.1)

Treiberversion

in OPNsense 21.1

(FreeBSD 12.1)

Treiberversion

in OPNsense 20.7

(FreeBSD 12.1)

Treiberversion

in OPNsense 20.1

(FreeBSD 11.2)

bge
  • Broadcom 1Gbit, z.B.
    • H12SSL-i - BCM5720
    • H12SSW-iN - BCM5720
bnxt
  • Broadcom 10GBit, z.B.
    • H12SSL-NT/CT - BCM57416
    • H12SSW-NT - BCM57416
    • P210TP - BCM57416
  • Broadcom 25GBit, z.B.
    • X12SPZ-SPLN6F - BCM57414
    • P225p - BCM57414
2.20.0.1 (via iflib)[1] 1.0.0.2 (via iflib)[2] 1.0.0.2 (via iflib) [2] 1.0.0.2 (via iflib) [2]
cxgbe
  • Chelsio T4/T5/T6
em
  • Intel I219
7.6.1-k (via iflib)[3] 7.6.1-k
igb
  • Intel I210
  • Intel I211
  • Intel I350
2.5.19-fbsd (via iflib)[4] 2.5.19-fbsd (via iflib)[4] 7.6.1-k (via iflib)[3] 7.6.1-k (via iflib)[3] 7.6.1-k (via iflib)[3] 2.5.3-k
igc
  • Intel I225-V
  • Intel I225-LM
1 (via iflib)[5] 1 (via iflib)[5] 1 (via iflib)[5] 1 (via iflib)[5] 1 (via iflib)[5] (nicht unterstützt)
ix
  • Intel X550
4.0.1-k (via iflib)[6] 4.0.1-k (via iflib)[7] 3.2.12-k ? (war bei OPNsense 18.7)
ixl
  • Intel X700 Series
2.3.3-k (via iflib)[8] 2.3.1-k (via iflib) 2.1.0-k (via iflib)[9] 1.9.9-k ?
ice
  • Intel E800 Series
1.37.11-k (via iflib)[10] 1.34.2-k (via iflib)[11] (nicht unterstützt)
mlx4en
  • Mellanox ConnectX-4
mlx5en
  • Mellanox ConnectX-5
re
  • Realtek
Siehe Realtek NICs in OPNsense

iflib

Iflib ist ein Framework für Netzwerkschnittstellentreiber für FreeBSD. Es wurde entwickelt, um Standard-Codeblöcke (Boilerplates) zu entfernen, die oft für moderne Netzwerkschnittstellengeräte erforderlich sind. Treiberautoren sollen sich damit auf den spezifischen Code konzentrieren können, der für ihre Hardware benötigt wird.[12]

Iflib wurde im Herbst 2017 eingeführt und bietet einen standardisierten Satz von Funktionen für die Implementierung von Netzwerktreibern. iflib unterstützt derzeit die meisten Intel-Treiber und Karten der Broadcom NetExtreme-Familie.[13]

Die Idee hinter iflib war, redundanten Code in den verschiedenen NIC-Treibern zu reduzieren, um bestimmte Kernel-Schnittstellenfunktionen zu standardisieren. Die meisten, aber nicht alle, NIC-Treiber wurden von den Herstellern umgeschrieben, um die iflib-API zu unterstützen. Die neue Bibliothek kümmert sich um Dinge wie z.B. die Anbindung von Netmap-Geräten, um den Treiberentwicklern der Hersteller diese Last abzunehmen.

Die Verwendung von iflib in FreeBSD bedeutet also, dass sich die Treiberversionen geändert haben. Die Version, die Sie in aktuellen FreeBSD-Kerneln sehen, ist also die iflib-Version des Treibers, und diese Versionsnummer stimmt meist nicht mit der neuesten Version des Treibers überein, die auf der Website des Herstellers angezeigt wird. Einige Hersteller haben eine iflib-Version ihres FreeBSD-Treibers für neuere Kernel-Versionen und eine ältere nicht-iflib-Version für ältere Kernel. Und der eigentliche Knackpunkt ist, dass bei einigen NIC-Treibern die scheinbar neuere und höhere Nummer in Wirklichkeit älterer Code ist als der, der in einer nicht-iflib-Version enthalten sein könnte.[14]

IPS Unterstützung

Eine Übersicht, welche Treiber IPS Unterstützung bieten, zeigt das folgende Spreadsheet:

Hintergrundinformation zum ixl Treiber netmap Support:

  • ixl: not working in netmap mode (Kommentar #30) (bugs.freebsd.org) I'm not surprised this works, because ixl in FreeBSD 12.x is implemented through iflib, and netmap in this case uses iflib to access the hw (and iflib must work, otherwise you would not be able to use an ixl NIC using the traditional networking tools and applications).

Weitere Informationen:

Einzelnachweise

  1. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem System mit Supermicro H13SSL-NT Mainboard:
    dev.bnxt.0.iflib.driver_version: 2.20.0.1
    dev.bnxt.0.%domain: 0
    dev.bnxt.0.%parent: pci1
    dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d8 subvendor=0x15d9 subdevice=0x16d8 class=0x020000
    dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:195:0:0
    dev.bnxt.0.%driver: bnxt
    
  2. 2,0 2,1 2,2 Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5
    dev.bnxt.0.iflib.driver_version: 1.0.0.2
    dev.bnxt.0.%parent: pci2
    dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d7 subvendor=0x14e4 subdevice=0x1402 class=0x020000
    dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:194:0:0
    dev.bnxt.0.%driver: bnxt
    dev.bnxt.0.%desc: Broadcom BCM57414 NetXtreme-E 10Gb/25Gb Ethernet
    
  3. 3,0 3,1 3,2 3,3 Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem LES compact 4L mit I210:
    dev.igb.0.iflib.driver_version: 7.6.1-k
    dev.igb.0.%parent: pci1
    dev.igb.0.%pnpinfo: vendor=0x8086 device=0x157b subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igb.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP01.PXSX
    dev.igb.0.%driver: igb
    dev.igb.0.%desc: Intel(R) PRO/1000 PCI-Express Network Driver
    
  4. 4,0 4,1 Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem Edge 4L:
    dev.igb.0.iflib.driver_version: 2.5.19-fbsd
    dev.igb.0.%parent: pci1
    dev.igb.0.%pnpinfo: vendor=0x8086 device=0x1533 subvendor=0xffff subdevice=0x0000 class=0x020000
    dev.igb.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP03.PXSX
    dev.igb.0.%driver: igb
    dev.igb.0.%desc: Intel(R) I210 (Copper)
    
  5. 5,0 5,1 5,2 5,3 5,4 Ausgelesen via sysctl -a | grep -E 'dev.igc.0.iflib.driver_version' -A 6 auf einem LES network 6L:
    dev.igc.0.iflib.driver_version: 1
    dev.igc.0.%parent: pci1
    dev.igc.0.%pnpinfo: vendor=0x8086 device=0x15f3 subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igc.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP05.PXSX
    dev.igc.0.%driver: igc
    dev.igc.0.%desc: Intel(R) Ethernet Controller I225-V
    dev.igc.%parent:
    
  6. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 6 auf einem System mit Supermicro X12SPi-TF Mainboard:
    dev.ix.0.iflib.driver_version: 4.0.1-k
    dev.ix.0.%domain: 0
    dev.ix.0.%parent: pci1
    dev.ix.0.%pnpinfo: vendor=0x8086 device=0x1563 subvendor=0x15d9 subdevice=0x1563 class=0x020000
    dev.ix.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PC00.RP01.D033
    dev.ix.0.%driver: ix
    
  7. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 6 auf einem System mit Supermicro X10SDV-TP8F Mainboard:
    dev.ix.0.iflib.driver_version: 4.0.1-k
    dev.ix.0.%parent: pci5
    dev.ix.0.%pnpinfo: vendor=0x8086 device=0x15ac subvendor=0x15d9 subdevice=0x15ac class=0x020000
    dev.ix.0.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.BR2C.H000
    dev.ix.0.%driver: ix
    dev.ix.0.%desc: Intel(R) X552 (SFP+)
    
  8. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einem System mit Asus P12R-M/10G-2T Mainboard:
    dev.ixl.0.iflib.driver_version: 2.3.3-k
    dev.ixl.0.%parent: pci3
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x15ff subvendor=0x1043 subdevice=0x0000 class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PC00.RP09.D073
    dev.ixl.0.%driver: ixl
    dev.ixl.0.%desc: Intel(R) Ethernet Controller X710 for 10GBASE-T - 2.3.3-k
    
  9. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einer Supermicro AOC-STG-i4S:
    dev.ixl.0.iflib.driver_version: 2.1.0-k
    dev.ixl.0.%parent: pci20
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x1572 subvendor=0x15d9 subdevice=0x087e class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:65:0:0
    dev.ixl.0.%driver: ixl
    dev.ixl.0.%desc: Intel(R) Ethernet Controller X710 for 10GbE SFP+ - 2.1.0-k
    
  10. Ausgelesen via root@OPNsense:~ # sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem System mit Supermicro X12SDV-4C-SP6F Mainboard:
    dev.ice.0.iflib.driver_version: 1.37.11-k
    dev.ice.0.%domain: 0
    dev.ice.0.%parent: pci8
    dev.ice.0.%pnpinfo: vendor=0x8086 device=0x124d subvendor=0x15d9 subdevice=0x124d class=0x020000
    dev.ice.0.%location: slot=0 function=0 dbsf=pci0:244:0:0 handle=\_SB_.PC02.VP2A.CPM0
    dev.ice.0.%driver: ice
    
  11. Ausgelesen via root@OPNsense:~ # sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem System mit Supermicro X12SDV-4C-SP6F Mainboard:
    dev.ice.1.iflib.driver_version: 1.34.2-k
    dev.ice.1.%domain: 0
    dev.ice.1.%parent: pci8
    dev.ice.1.%pnpinfo: vendor=0x8086 device=0x124d subvendor=0x15d9 subdevice=0x124d class=0x020000
    dev.ice.1.%location: slot=0 function=2 dbsf=pci0:244:0:2 handle=\_SB_.PC02.VP2A.D077
    dev.ice.1.%driver: ice
    
  12. iflib Manpage (www.freebsd.org)
  13. Sam Gwydir: Improving netdump hardware support and performance with iflib - BSDCan 2018 (youtube.com)
  14. Any one know which Intel ix driver for x520 card is in the actual kernel? (forum.netgate.com)


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.


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Icon-Twitter.png 

Das könnte Sie auch interessieren

OPNsense HA Cluster einrichten
OPNsense Interface hinzufügen
OPNsense Plugins