LAN 驱动程序导致第 4 层损坏

LAN 驱动程序导致第 4 层损坏

我相对确定我的驱动程序在我的系统上造成了某些 4 级数据包损坏。我想知道如何解决这个问题..

诊断:

  • 任何形式的git clone大型回购都会总是给我一个RPC failed; curl 56 GnuTLS recv error (-24): Decryption has failed错误。
  • 对大包进行操作apt-get upgrade会导致bad mac失败。
  • 网站有时不会随机加载资源。这包括从 CSS 到图像的任何内容。
  • 尝试curl大于几 MB 的文件将导致OpenSSL SSL_read: error:0A000119:SSL routines::decryption failed or bad record mac, errno 0.
  • ping 或traceroute 不会发生上述情况,它们都可以在默认设置下正常工作,使用第3 层作为传输。
  • 当我启动 Windows 或在 PC 上使用 USB WiFi 适配器时,不会发生上述情况。

所以我现在确信我的系统上的某个地方要么存在驱动程序错误,要么存在损坏。我完全不确定如何自己调试它。我可以做什么来进一步诊断并可能解决这个问题?

我在这里包括配置:

内核版本:

$ uname -r 
5.15.0-78-generic

PCI ID:

$ lspci -nn 
05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)

接口驱动程序和固件:

$ sudo ethtool -i eno1
driver: r8125
version: 9.011.01-NAPI
firmware-version: 
expansion-rom-version: 
bus-info: 0000:05:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

接口配置:

$ ethtool -k eno1
Features for eno1:
rx-checksumming: on
tx-checksumming: on
    tx-checksum-ipv4: on
    tx-checksum-ip-generic: off [fixed]
    tx-checksum-ipv6: on
    tx-checksum-fcoe-crc: off [fixed]
    tx-checksum-sctp: off [fixed]
scatter-gather: off
    tx-scatter-gather: off
    tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
    tx-tcp-segmentation: off
    tx-tcp-ecn-segmentation: off [fixed]
    tx-tcp-mangleid-segmentation: off
    tx-tcp6-segmentation: off
generic-segmentation-offload: off [requested on]
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
tx-gso-list: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
rx-udp-gro-forwarding: off
hsr-tag-ins-offload: off [fixed]
hsr-tag-rm-offload: off [fixed]
hsr-fwd-offload: off [fixed]
hsr-dup-offload: off [fixed]

编辑:

在查看建议的步骤并关闭通用分段/接收卸载后,我在wget处理大文件时仍然收到以下错误

Read error at byte 128106483/6140975104 (error:0A000119:SSL routines::decryption failed or bad record mac). Retrying.

答案1

所以,Realtek RTL8125,它是一个内核外驱动程序。您是自己下载的,还是您的发行版自动为您加载的?

驱动程序版本 9.011.01-NAPI 表明可能是Realtek发布的最新版本驱动程序。显然,根据所选的构建时选项,版本号可以有各种后缀(-NAPI-REALWOW、以及或)。-PTP-RSS-PRINTER-DASH

似乎还有Realtek 在 Github 上发布的驱动程序有许多分支。

输出中的这一行ethtool -k看起来有点可疑:

generic-segmentation-offload: off [requested on]

所以你的网络驱动程序声称实施通用分段卸载功能,但显然无法兑现承诺,并且未能在要求时启用它。这肯定让我认为网络接口的硬件或尝试使用它的驱动程序可能有问题。

您可以尝试禁用它和通用接收卸载功能,因为它是通用分段卸载的接收端补充:

sudo ethtool -K eno1 generic-segmentation-offload off generic-receive-offload off

我还发现该驱动程序的 OpenWrt 项目版本正如他们在文件中指出的那样,该网络接口芯片的接收端缩放(RSS)功能也可能遇到一些问题README.md

最新版本的驱动默认禁用RSS功能,即使启用编译选项也不会生效。

由于您的驱动程序版本不显示后缀-RSS,因此它可能尚未内置,因此可能与您的情况无关。

不幸的是,我没有使用该网卡或 Realtek 提供的驱动程序的经验。但现在至少您的问题有大量有用的信息,因此具有正确知识的其他人可能更容易找到问题并回答它。

相关内容