关于 N5105/N6005+i225/i226 系列软路由搭配 OpenWrt 在高连接数条件下崩溃/软重启的问题和解决思路汇总

2022-09-12 02:30:31 +08:00
 wangyuyang3

一、本人设备:

  某品牌 N6005+四网口 i226-v ( 2.5Gbps )软路由(第四版),作主路由。
  家宽速率:下行 1000M ,上行 230M ;内网速率:软路由网卡接口均自动协商至 1Gbps ,因为交换机和主要客户端设备均未升级 2.5G 网卡)

二、实际可能的问题设备和环境:

  N5095/N5105/N6005 可能都有问题,i225 或 i226 各版本也可能都有问题,产品版本可能横跨厂商定义的第 1 版-第 4 版。
  软路由系统不一定限于 OpenWrt ,爱快可能也有问题。pfsense 等 FreeBSD 版本系统是否有问题也不清楚。
主路由必然有问题,旁路由和单臂路由是否有问题不清楚。
  但本文讨论对象以笔者以及大部分网上相关帖子贴主使用的OpenWrt 主路由使用环境为主。

三、问题描述 /触发条件:

  在** [物理机直装 /ESXi/PVE ] 条件下使用 [不同内核 /不同版本的定制 /自编译固件] 时,使用其他设备连接至 op 网关,挂 qbittorrent 跑 PT (包括任何跑满带宽的多线程下载 /上传行为),①高负载状态下,OpenWrt 主路由系统必定在15 分钟-48 小时内,发生②“软重启”或③“使用特定固件在 PVE 环境中报错崩溃”。** 触发错误所需要的时间,实测 PVE 条件下最快只需 15 分钟,ESXi 通常发生在 24 小时-48 小时。

  (①所谓高负载,是指:下载速度通常跑在 60MB/s 以上,极限在 110MB/s 左右,上传速度可以跑至 28MB/s 左右,上下行可以同时跑满带宽,活动连接数从 4000-17000 不等;实际触发问题所需要的速率和连接数可能不需要如此极限,但如果使用者操作强度太低,有很大概率没有能力触发 bug 。很多人可能误以为“没有能力触发问题=没问题”,导致网上出现大量无效的解决方案,使得深陷泥潭的求助者误入歧途,浪费很多时间精力。)

  (②所谓“软重启”,是指:在物理机直装或 PVE/ESXi 虚拟化环境下,即便实现在 op 开启系统日志自动转储,崩溃发生时也不会有任何异常日志记录,而是直接显示自动重新执行系统引导的过程日志; 而在 ESXi 或 pve 虚拟化环境中,软路由自动重启的同时,ESXi/pve 宿主机控制面板本身不会检测到 op 虚拟机发生的任何错误或重新引导状态,虚拟化宿主机操作系统安然无恙,且控制面板内记载的 op 虚拟机运行时间压根不会归零重新计算,日志亦无明显异常。)

  (③所谓“在 PVE 环境中报错崩溃”,是指:使用特定固件时,重复上述触发条件,op 虚拟机控制面板直接失灵,pve 系统日志报 KVM internal error ,此时只能通过 shell 命令行 kill 虚拟机子进程或重启 pve 才能重新控制 op 虚拟机。)

四、描述了类似问题的相关帖子,供参考:

1 、《 N5105 软路由环境下,电脑使用 IDM 同时下载超过 100 个文件,会随机触发软路由重启》
https://tanronggui.xyz/t/860850

2 、《 N6005 主机反复不定时自动重启》
https://github.com/coolsnowwolf/lede/issues/8781

3 、《[openwrt(x86)] [已解决] 虚拟机软路由,迅雷下载流量一大 OpenWRT 就自动重启》
https://www.right.com.cn/forum/thread-8236555-1-1.html
(这个贴主的 OpenWrt 并非主路由,而是旁路由,他的解决方案颇有些掩耳盗铃:将负责多线程下载的群晖操作系统直连主路由,避免流量经过会出问题的 op 旁路由设备。这个案例没有借鉴价值。)

4 、《[虚拟机相关] 发现 5.15 的 Openwrt 内核在 PVE 上必然软重启》
https://www.right.com.cn/forum/thread-8240769-1-1.html

5 、《[虚拟机相关] N5105 第四版 PVE+爱快 不定时重启问题》
https://www.right.com.cn/forum/thread-8250514-1-1.html

6 、《[虚拟机相关] pve 安装的 openwrt,经常自己重启什么原因?》
https://www.right.com.cn/forum/thread-8236555-1-1.html

五、结合上述帖子进行的无效尝试:

1 、清热去火:放弃解锁功耗墙版 BIOS ,回滚至旧版 BIOS ,锁 CPU 频率维持在 0.8Ghz ,双暴力风扇散热。PVE 控制面板显示温度长期低于 55°C ,最低可低至三十多度;

2 、柳暗花明又一村:替换 /尝试不同 linux 内核及 op 版本的固件;

3 、奥卡姆剃刀:编译时去除 Turbo ACC 插件,调整任何与软件加速 /流量分载相关的功能,禁止启用除基本网络功能外的所有插件和可能引发稳定性问题的功能(包括 IPv6 );

4 、瞎猫撞死耗子:更换 PVE 内核 /ESXi 版本,调整各种与硬件相关的设置碰运气(可参考以上帖子提及的任何关于虚拟机配置的修改选项);
包括某博客文章《解决 PVE 下虚拟机自动重启 / Kernel Panic 》(链接: https://blog.mbrjun.cn/archives/412 )提及的 PVE 配置方案。

六、有趣的发现:

1 、多因一果:
  **在 PVE 环境下,即便不做高连接数,不开任何多线程下载,单纯压测 CPU ,人为提高 CPU 温度至 75°C-83°C 之间维持不变,大约经过 30 分钟仍然会出现软重启(此时虚拟化宿主机操作系统依旧不会崩溃)。
  大概可以断定:温控不到位可能会导致表面上一模一样的软重启问题,应该和网卡温度高于 70°C 操作温度有关。但高温触发条件和上述多线程下载的触发条件并无紧密关联(基于 CPU 降频条件下多线程下载的“极寒试验”),可能分别为独立的诱因。

2 、就“ESXi 可否解决问题”而提出的截然矛盾的答案:
  ESXi 比 PVE 有明显更为出色的稳定性,但绝对无法避免软重启问题;部分帖子中少数网友提到 ESXi 不再出现软重启问题,与本人实际情况截然不同,至少有以下 4 种可能:
( 1 )硬件设备压根不相关,误以为自己用的同系列 CPU 或网卡;
( 2 )由于 ESXi 软重启频率相比 PVE 显得过低,误以为情况改善=问题解决,放松警惕;
( 3 )根据不同使用条件,软重启可能引发的连锁反应严重程度大不相同。感知不到软重启余波的群体大概率没遇到以下情况:
  a. 在特定 bug 固件中,软重启有概率导致 Passwall 或 openclash 插件崩溃,导致断连外网访问,不会自动恢复;
  b. 对拨号获取的公网 IP 地址网段高度敏感:这就是为啥我一开始用 ESXi 就敏锐地发觉了问题,因为我 tm 开了电信精品网,好不容易播到的 58.32 网段,一软重启直接梦回 163 网段,就得不停人工或依赖 shell 脚本重播。播频繁了还会触发短期风控(禁止拨号,提示认证失败),气死。
( 4 )压根不搞高负载 /多线程下载的使用行为;或即便搞多线程,但由于购买的宽带套餐速率不高,或运营商有连接数限制,导致其能力范围内的极端“高负载”远不及千兆带宽用户以及 PT 玩家的极端使用习惯,因此没有能力触发上述问题。

3 、议题混淆
  本文及上述帖子提到的软重启或 PVE 虚拟机崩溃,与此前 i225 系列网卡出现的断流情况无关,后者可以在 op 系统日志中轻易探查到接口 down & up 的情况,而前者则显得尤其诡异,难以判断问题根源;很多讨论往往混淆了这两个相互独立的问题。

七、目前行之有效的妥协方案(已实测):

  改用 Windows Server 搭配 Hyper-v 网卡直通给 op ,直通前对网卡配置做调整(教程提供的调整方法意义不明,是否存在性能影响暂无感知)

  《[openwrt(x86)] 疑似可解决 N5105 、i225v 网关虚拟机软重启的问题》
  https://www.right.com.cn/forum/thread-8248900-1-1.html

  《 [ N5105 软路由(后传)] Hyper-V 网卡直通完整版 进阶教程新手小白勿入 i 》 8 分 35 秒起
  https://www.bilibili.com/video/BV1TS4y1873Q

  《[虚拟机相关] [ 7.30 更新] WinServer_2022@R86S&CW-N5105_Hyper-V 集成 i225 网卡驱动及网卡直通》
  https://www.right.com.cn/forum/thread-8223928-1-1.html

八、可能有效的备用方案(未实测)

  继续使用 PVE ,但换用 LXC 容器

  《[openwrt(x86)] PVE-LXC 搭建 Openwrt (同时解决 5105 重启)》
  https://www.right.com.cn/forum/thread-8252802-1-1.html

九、启示和疑问:

  软路由小厂商技术实力和产品可靠性实在堪忧,他们估计压根不知道自己卖的 N5105/N6005+i225/i226 产品出现的软重启问题,且很大可能具有普遍性、固有性,而和设备温度 /物理机直装或虚拟化方案的选择 /op 固件版本几乎没有紧密联系。
  或者换个角度说,目前搭载该系列赛扬 CPU 和同系列及衍生的 2.5Gbps 网卡产品的设备仍然需要谨慎入手,intel 自己产品存在问题,或目前虚拟化操作系统兼容性不足。特定群体,尤其是 PT 玩家和日常高负载玩家,并且极度厌恶上述提及的解决方案的(例如不喜欢 hyper-v 虚拟化方案或 pve-LXC 容器),请三思而后行。
  从原理并不明朗的解决方案看,怀疑软重启问题很可能和硬件、驱动或 BIOS 有关。
  发此贴,单纯是为了将该问题做一个阶段性归纳总结,以便为后续讨论和解决问题提供参考。

  关于 Windows 环境下网卡高级选项卡属性的配置(主要为禁用几种功能或技术特征?),想咨询各位大佬前述帖子修改的选项所对应的含义,解读为啥禁用这些选项能解决软重启问题,进而倒推分析出软重启的问题根源。同时兼分析禁用下述选项是否对性能或稳定性产生负面影响。
  禁用的功能包括:

  1 、IPv4 校验和卸载
  2 、TCP 校验和卸载( IPv4 )
  3 、TCP 校验和卸载( IPv6 )
  4 、UDP 校验和卸载( IPv4 )
  5 、UDP 校验和卸载( IPv6 )
  6 、大量发送卸载 V2 ( IPv4 )
  7 、大量发送卸载 V2 ( IPv6 )
  8 、流控制(笔者注:i226 网卡对应的时“流量控制)
  9 、中断裁决(笔者注:实测不禁用它也不妨碍问题解决)

19155 次点击
所在节点    OpenWrt
100 条回复
yxguy
2023-03-26 10:01:31 +08:00
@hxhajava 目前我做了两件事,1 、更新到最新内核 6.1.10 ,还有更新的内核,因为机器一直没有重启,一直生效的是 6.1.10 ; 2 、更新 0x24 的微码;
总的来说微码才是最终那个开关,目前已稳定运行了近 22 天,一直都没有问题,所以基本上可以确定问题是最终解决的了。剩下的就是希望主机厂家更新 BIOS ,把最新有效的微码更新进去,这样就可以不分平台,不分系统使用了,现在 PVE 是没有问题,EXSI 和 HYPER-V 还没有试过。
Litccc
2023-03-26 23:26:11 +08:00
mark 下,顺便分享一下更新微码的方法

https://forum.proxmox.com/threads/vm-freezes-irregularly.111494/post-538922
hxhajava
2023-03-27 18:20:49 +08:00
@yxguy 好的,谢谢大佬。我目前只更新了微码。没更新内核。我感觉很大的概率是微码的问题。我在 hyper-v 、esxi 都会有虚拟机重启的问题。每次抱的错也是因为 cpu 报错
x2009again
2023-04-13 10:16:12 +08:00
@Melodyer #32 我最近换了电信后也发现了这个问题,以前用的联通宽带好像没有遇到这个问题(不知道我是不是修改了什么不记得了),我看了下主要是 hookscript.pl 挂载的 /dev/ppp 丢失导致的,增加了 lxc.mount.entry: /dev/ppp dev/ppp none bind,create=file 这个后,重启 openwrt 又提示 operation not permitted ,现在还没有找到解决办法。
xlsepiphone
2023-04-18 11:57:38 +08:00
```bash

# 列出可安装内核
apt search pve-kernel|grep pve-kernel-

# 安装内核
apt install -y pve-kernel-6.2

# 升级
apt -y dsit-upgrade

# 安装微码
apt install -y intel-microcode

```
xlsepiphone
2023-04-18 11:58:02 +08:00
最后 reboot
misadonfdfl
2023-04-20 13:42:45 +08:00
已安装:intel-microcode 3.20230214.1 ,不知道是否能解决。
yxguy
2023-04-20 19:13:31 +08:00
https://www.changwang.com/已经发布最新更新微码的 BIOS ,还没有更新测试,需要的同学可以更新,已经确认是微码影响到稳定性,更新 0x24 微码后,目前已稳定运行超过 45 天了。
qiaamei
2023-04-22 10:49:55 +08:00
@x2009again
我也有这个问题,我是 N100 的机器,只要 reboot openwrt , wan 口就失联(可以在 openwrt 主界面看到 wan 口是空的),导致不能拨号,只能在 PVE 控制台重启或者关机 openwrt ,才能恢复这个 wan 口,openwrt 里面日志也是说 /dev/ppp 丢失,请问你解决了吗
x2009again
2023-04-22 11:09:56 +08:00
qiaamei
2023-04-22 22:42:13 +08:00
@x2009again 谢谢你的帮助我安装你的教程确认成功了现在 reboot ,wan 口能找到了,但是 还是有点问题,这个 wan 我是 pve 直通过来的 本身是 2.5G 的口,我的宽带目前是 1000M, 正常情况是 1000M 但是 reboot 后有一定的几率这个口会变成 100M,我试了 15~16 次有 3 次变成了 100M

对了 我只做到 dnsmasq 截止,vlan 部分我用不到所以没改,但是非常感谢你,这个教程确实解决了 reboot 找不到 wan 口的问题,在这以前我都是用 pve 的手机客户端来重启 openwrt 或者 手机 ssh 到 pve, pvesh create /nodes/pve/lxc/100/status/reboot 非常的麻烦
x2009again
2023-04-22 23:34:38 +08:00
@qiaamei #91 关于 reboot 后端口从 2.5G 变为 100M 的情况我没有留意过,我的也是 pve 直通千兆口给 openwrt 做 wan 口的,vlan 和这个无关
x2009again
2023-04-22 23:37:24 +08:00
@qiaamei #91 还有你怎么知道变成 100M 口的?我看了下 openwrt 没有显示网口的宽带,如果通过 openwrt 可以查到网口只有百兆的话,那可以增加一个 crontab ,判断只有百兆口就自动 reboot
qiaamei
2023-04-23 09:03:18 +08:00
状态-接口就有,接口信息插件 autocore 一般都自带的基础插件,你截图做 vlan 接口页面也有能看到啊
onion83
2023-05-07 02:03:56 +08:00
-- 2023/05/07 --

i225v3 目前联想已经有新固件,1.89 可以更新试试看

1 、官方驱动: https://pcsupport.lenovo.com/us/zc/downloads/ds562775-gbe-nvm-image-for-intel-i225-ethernet-for-windows-11-version-21h2-or-later-10-64-bit-version-1809-or-later-thinkpad-p15-gen-2-p17-gen-2-t15g-gen-2

2 、刷机教程: https://www.mobile01.com/topicdetail.php?f=504&t=6780582

pve 或者 linux DIY 的话如果可以更新 microcode 在内核层面进行软补丁

1 、添加软件源 intel-microcode 工具: https://wiki.debian.org/Microcode
2 、安装教程: https://zinglix.xyz/2023/03/22/pve-n5105-freeze/

- 固件更新前后



- Intel microcode 更新后


- 通过 10 分钟 iperf3 满载打流测试




主管感受:原本 aqc107 + i225v3 1 小时候内必断,目前情况大为改善,基本没断过了(还需继续观察。。)
flynaj
2023-05-09 03:05:59 +08:00
先用 memtest 测试一下内存,然后用 aida64 压测一下 CPU 。openwrt 用原版试试看。按照你说的感觉是用了开发版 CPU 。
flyPig21
295 天前
突发奇想,把风扇改成固定转速,再也没重启过,故判断是风扇高转速下,影响供电问题
galaxyskyknight2
247 天前
这问题可以结案了,就是英特尔 CPU 微码的问题,更新到 0x24000024 以上就好了,最新的是 0x24000026, ESXI 如果 ISO 没包含,可以自己手打 patch. 具体自己搜方法。
galaxyskyknight2
247 天前
@galaxyskyknight2 软路由需要同时更新包含相关微码的 BIOS.要厂家提供。
james19820515
1 天前
无效尝试里清热去火啥的名儿有点儿意思哈。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/879368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX