问题
在我的笔记本电脑上安装 Fedora 30 (KDE) 后,我的路由器在连接后不久就会崩溃。当我通过有线以太网和 Wi-Fi 连接时都会发生这种情况。幸运的是,路由器日志提供了有关发生这种情况的原因的线索。我会收到这样的警告:
kern.err kernel: [ 116.293427] ipq806x-gmac-dwmac 37200000.ethernet eth0: len 1675 larger than size (1536)
其次是:
daemon.warn dnsmasq[2721]: reducing DNS packet size for nameserver 92.220.228.70 to 1280
对于第一条消息,我发现了在 OpenWrt 论坛上发帖与遇到同样问题的其他人。事实证明,每当内核收到大于默认 MTU (1500)(也称为“巨型帧”)的数据包时,交换机驱动程序中的错误就会导致内核出现恐慌。
该线程中的其他人没有收到第二次警告,但我认为这与我的情况相关。
当我使用 Fedora 29 时,我从未遇到过这种情况,并且网络上的所有其他设备都可以正常连接。所以 Fedora 30 中肯定引入了一些 bug。
我观察到的
我尝试了一些方法来查看是否可以连接到路由器而不会导致警告和崩溃。我将在下面列出它们。
Wi-Fi,启用 NetworkManager
能够连接,但会导致警告和崩溃。ifconfig
输出 MTU 为 1500。
Wi-Fi,启用 NetworkManager 并将 MTU 在 KDE 系统设置中设置为 1500
能够连接,但会导致警告和崩溃。ifconfig
输出 MTU 为 1500。
Wi-Fi,禁用 NetworkManager 并手动连接
$ sudo wpa_supplicant -B -iwlp18s0 -cwpa.conf -Dnl80211
$ sudo dhclient wlp18s0
工作正常!结果没有警告,也没有崩溃。ifconfig
输出 MTU 为 1500。
有线以太网,启用 NetworkManager
能够连接,但会导致警告和崩溃。ifconfig
输出 MTU 为 1500。
有线以太网,启用 NetworkManager 并将 MTU 在 KDE 系统设置中设置为 1500
能够连接,但会导致警告和崩溃。ifconfig
输出 MTU 为 1500。
有线以太网,禁用 NetworkManager 并手动连接
我只需将电缆插入端口并运行以下命令:
$ sudo dhclient enp19s0
工作正常!结果没有警告,也没有崩溃。ifconfig
输出 MTU 为 1500。
寻找原因
我想找到这个错误的原因,以便我可以向上游报告它,如果有调试经验丰富的人可以帮助我,我将非常感激。
答案1
我建议 Dolan 在笔记本电脑上运行 Wireshark,以查找大数据包。 Wireshark 显示了笔记本电脑已收到分段的 IP 数据包。 (它没有显示笔记本电脑传输任何巨型帧)。如果重新组装碎片数据包,它们将大于 1500 字节。也许碎片数据包触发了路由器网络驱动程序的不良行为。
有问题的 IP 数据包是 DNS 结果。 DNS 结果类型与 DNSSec 相关:DNSKEY 和 RRSIG。与 DNSSec 相关的请求和响应是在 NetworkManager 的强制门户测试(HTTP 请求 http://fedoraproject.org/static/hotspot.txt
)之前立即发送的。 DNSSec 响应预计大于 1500 字节。
因此,我对 Fedora 29 和 Fedora 30 安装之间差异的最佳猜测是来自 NetworkManager 的 DNS 请求。
编辑:Dolan 表示他们没有在 Fedora 30 安装上专门启用 DNSSec。从那时起,我将自己的笔记本电脑升级到了 Fedora 30。我尝试运行相同的测试,但我没有看到任何这些类型的 DNS 请求或响应 - 只有 IPv4 / IPv6 地址的 A / AAAA 类型。这是我最初的预期,因为 Fedora 30 宣布的更改列表不包括任何有关 DNSSec 的内容。
我知道如果您专门启用systemd-resolved
,那么它会尝试使用 DNSSec。但 Fedora 30 的默认安装并未启用systemd-resolved
.
Dolan 随后表示,他们一直在为 Fedora 30 笔记本电脑寻找一种简单的解决方法,但认为他们已经在这个问题上花费了足够的时间,并且可能会尝试在他们的笔记本电脑上使用不同的发行版(可能是较旧的稳定版本):-)。
答案2
我有完全相同的症状,经过几天的调查,结果证明这是一种已知的 DoSS 病毒,如下所述:
我已按照顶帖中的说明删除了它,现在一切都很好。这是我原来的帖子:Fedora 30 工作站破坏 wifi 路由器