我相对确定我的驱动程序在我的系统上造成了某些 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.
所以,Realtek RTL8125,它是一个内核外驱动程序。您是自己下载的,还是您的发行版自动为您加载的?
驱动程序版本9.011.01-NAPI表明它可能是Realtek发布的驱动程序的最新版本。显然,根据所选的构建时选项,版本号可以有各种后缀(
-NAPI
、-REALWOW
、-PTP
以及-RSS
或-PRINTER
) 。-DASH
Github 上似乎也有许多 Realtek 发布的驱动程序的分支。
输出中的这一行
ethtool -k
看起来有点可疑:因此,您的网络驱动程序声称实现了通用分段卸载功能,但显然无法兑现承诺,并且未能在请求时启用它。这肯定让我认为网络接口的硬件或尝试使用它的驱动程序可能有问题。
您可以尝试禁用它和通用接收卸载功能,因为它是通用分段卸载的接收端补充:
我还发现该驱动程序的 OpenWrt 项目版本也可能在该网络接口芯片的接收端缩放 (RSS) 功能方面遇到一些问题,正如他们在文件中指出的那样
README.md
:由于您的驱动程序版本不显示后缀
-RSS
,因此它可能尚未内置,因此可能与您的情况无关。不幸的是,我没有使用该网卡或 Realtek 提供的驱动程序的经验。但现在至少你的问题有大量有用的信息,因此拥有正确知识的其他人可能会更容易找到问题并回答它。