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 | 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 |
|
|||||||||
bnxt |
|
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 |
|
|||||||||
em |
|
7.6.1-k (via iflib)[3] | 7.6.1-k | |||||||
igb |
|
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 |
|
1 (via iflib)[5] | 1 (via iflib)[5] | 1 (via iflib)[5] | 1 (via iflib)[5] | 1 (via iflib)[5] | (nicht unterstützt) | |||
ix |
|
4.0.1-k (via iflib)[6] | 4.0.1-k (via iflib)[7] | 3.2.12-k ? (war bei OPNsense 18.7) | ||||||
ixl |
|
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 |
|
1.37.11-k (via iflib)[10] | 1.34.2-k (via iflib)[11] | (nicht unterstützt) | ||||||
mlx4en |
|
|||||||||
mlx5en |
|
|||||||||
re |
|
Siehe Realtek NICs in OPNsense |
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]
Eine Übersicht, welche Treiber IPS Unterstützung bieten, zeigt das folgende Spreadsheet:
Hintergrundinformation zum ixl Treiber netmap Support:
Weitere Informationen:
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
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
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
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)
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:
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
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+)
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
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
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
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
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.
|
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. |