Realtek NICs in OPNsense

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

Beim Einsatz von Realtek NICs unter FreeBSD berichten manche Anwender von Stabilitätsproblemen. OPNsense bietet daher neben dem in FreeBSD enthaltenen re(4) Treiber zusätzlich einen weiteren Treiber von Realtek an (Vendor Driver[1]). In diesem Wiki Artikel zeigen wir, wie Sie den Vendor Driver durch die Installation des os-realtek-re Plugins einspielen. Informationen zu Treibern für andere Netzwerkkarten finden Sie im Artikel OPNsense Netzwerkkarten-Treiber.

Beispielsetup

In diesem Beispiel wird ein LESv3 (V2.0) verwendet. Dieser LES hat zwei Realtek RTL8119I 1Gbit/s Netzwerkports. Das Vorgängermodell LESv3 (V1.0) hatte Intel i211 Netzwerkports (der i211 ist jedoch seit 2022 EOL, daher enthalten neue Versionen des LESv3 die beiden Realtek RTL8119I Netzwerkports).

Realtek Vendor Driver in OPNsense

Der Realtek Vendor Driver wurde mit dem Release von OPNsense 17.1.2 im Februar 2017 in OPNsense integriert.[2]

Mit dem os-realtek-re Plugin kann ab OPNsense 22.1 der Realtek Vendor Driver[1] verwendet werden.

Mit OPNsense 22.1 ist in der Standardinstallation wieder der Treiber, welcher in FreeBSD direkt enthalten ist, installiert. Der Vendor Driver[1] kann über das Plugin os-realtek-re installiert werden.[3]

Installation

Bei der Plugin-Installation wird folgende Ausgabe angezeigt:

***GOT REQUEST TO INSTALL***
Currently running OPNsense 22.1.10 (amd64/OpenSSL) at Thu Jul  7 14:08:44 UTC 2022
Updating OPNsense repository catalogue...
OPNsense repository is up to date.
All repositories are up to date.
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	os-realtek-re: 1.0
	realtek-re-kmod: 196.04

Number of packages to be installed: 2

The process will require 1 MiB more space.
101 KiB to be downloaded.
[1/2] Fetching os-realtek-re-1.0.pkg: . done
[2/2] Fetching realtek-re-kmod-196.04.pkg: .......... done
Checking integrity... done (0 conflicting)
[1/2] Installing realtek-re-kmod-196.04...
[1/2] Extracting realtek-re-kmod-196.04: .... done
[2/2] Installing os-realtek-re-1.0...
[2/2] Extracting os-realtek-re-1.0: .. done
Reloading firmware configuration
Writing firmware setting...done.
Writing trust files...done.
Configuring login behaviour...done.
Configuring system logging...done.
=====
Message from realtek-re-kmod-196.04:

--
Add the following lines to your /boot/loader.conf
to override the built-in FreeBSD re(4) driver.

if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"

By default, the size of allocated mbufs is enough
to receive the largest Ethernet frame supported
by the card.  If your memory is highly fragmented,
trying to allocate contiguous pages (more than
4096 bytes) may result in driver hangs.
For this reason the value is tunable at boot time,
e.g. if you don't need Jumbo frames you can lower
the memory requirements and avoid this issue with:

hw.re.max_rx_mbuf_sz="2048"
Checking integrity... done (0 conflicting)
Nothing to do.
***DONE***

Die Einträge in /boot/loader.conf werden automatisch vorgenommen:

root@OPNsense:~ # grep if_re /boot/loader.conf
if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"
root@OPNsense:~ #

Anschließend muss das System neu gestartet werden.

Installation überprüfen

Vor der Installation des Vendor Drivers sind folgende Einträge in sysctl zu finden:

root@OPNsense:~ # sysctl -a | grep -E 'dev.(re)'
dev.re.1.wake: 0
dev.re.1.int_rx_mod: 65
dev.re.1.stats: -1
dev.re.1.%parent: pci3
dev.re.1.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000
dev.re.1.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.RP04.PXSX
dev.re.1.%driver: re
dev.re.1.%desc: RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet
dev.re.0.wake: 0
dev.re.0.int_rx_mod: 65
dev.re.0.stats: -1
dev.re.0.%parent: pci2
dev.re.0.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000
dev.re.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PCI0.RP03.PXSX
dev.re.0.%driver: re
dev.re.0.%desc: RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet

Nach der Installation des Vendor Drivers und einem anschlißendem Reboot steht in der %desc Variable von sysctl nun jeweils Realtek PCIe GbE Family Controller:

root@OPNsense:~ # sysctl -a | grep -E 'dev.(re)'
dev.re.1.wake: 0
dev.re.1.%parent: pci3
dev.re.1.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000
dev.re.1.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.RP04.PXSX
dev.re.1.%driver: re
dev.re.1.%desc: Realtek PCIe GbE Family Controller
dev.re.0.wake: 0
dev.re.0.%parent: pci2
dev.re.0.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000
dev.re.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PCI0.RP03.PXSX
dev.re.0.%driver: re
dev.re.0.%desc: Realtek PCIe GbE Family Controller
dev.re.%parent:

Weitere Informationen

Einzelnachweise

  1. 1,0 1,1 1,2 Realtek PCIe FE / GBE / 2.5G / Gaming Ethernet Family Controller Software (www.realtek.com)
  2. OPNsense 17.1.2 (github.com/opnsense/changelog) This update addresses a longstanding issue with the overall reliability of Realtek NICs by replacing the FreeBSD driver with its latest vendor driver equivalent. The results including inline intrusion prevention have been promising to say the least. We thank Realtek for its recent release of version 1.93 and our users for pursuing the unthinkable with us. :) [...] src: replace Realtek re(4) driver with vendor version 1.93
  3. OPNsense 22.1 released (forum.opnsense.org, 27.01.2022) On the flip side major operating system changes bear risk for regression and feature removal, e.g. no longer supporting insecure cryptography in the kernel for IPsec and switching the Realtek vendor driver back to its FreeBSD counterpart which does not yet support the newer 2.5G models. Circular logging support has also been removed. Make sure to read the known issues and limitations below before attempting to upgrade. [...] The Realtek vendor driver is no longer bundled with the updated FreeBSD kernel. If unsure whether FreeBSD 13 supports your Realtek NIC please install the os-realtek-re plugin prior to upgrading to retain operability of your NICs.


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

OPNsense Multi WAN
OPNsense Plugins
OPNsense ZFS Mirror Installation