OpenWRT 路由器疑似干扰了 IPv6 的 TCP 连接,应该如何排查?有偿。

2022-12-29 17:11:04 +08:00
 villivateur

环境:Nano Pi R2S / OpenWrt 21.02.1

现象:经过路由器的 IPv6 TCP 连接,不管流量大小,随机时间后会被掐断,具体表现是触发重传,然后 Client 会向 Server 发送一个 RST 包导致连接断开。

这个 TCP 连接可以不经过公网,例如我的 LAN 网络和 Wireguard 虚拟网络中的设备通讯,也会出现上述问题,故排除了宽带运营商的锅(我的 Wireguard 接入点是 IPv4 的)。

这种情况应该怎么排查?附图是我 Wireguard 网络中的设备连接 LAN 中的设备,SSH 协议,client 和 server 的抓包情况。

其他说明:

  1. 这个问题是两个月前才出现的,此前 IPv6 使用良好,两个月间搬过家、更新过某些 opkg 包
  2. ICMPv6 确定不受影响,UDP 理论上也不受影响(未测试)

如果能帮忙解决,发 50RMB 以上支付宝红包。

2379 次点击
所在节点    OpenWrt
13 条回复
delete26
2022-12-29 17:13:01 +08:00
openclash 告诉我推荐关闭 ipv6,因为大部分 bug 都是因为 v6 导致的,所以我关闭了 openwrt 上 v6 的所有功能
villivateur
2022-12-29 17:13:48 +08:00
@delete26 但我 IPv6 是刚需,没法关
Atomo
2022-12-29 21:02:10 +08:00
逃避不是解决问题的最佳选项,期待楼下的答案
lostberryzz
2022-12-29 21:18:08 +08:00
建议不要用 OpenWrt 作为主路由,开源可玩性和基础功能稳定性是硬币的两面
systemcall
2022-12-29 21:40:22 +08:00
老问题了,mtu 的问题
开启 mss 钳制、把 mtu 调小,1400 多一点基本上就好了
villivateur
2022-12-29 22:50:14 +08:00
@systemcall 请问是修改 br-lan 的 MAC 层 MTU 么?现在是默认值 1500 ,调到 1400 多一点吗?
jim9606
2022-12-30 01:48:19 +08:00
先排查一下是不是 pmtu 问题 /t/800024

我曾经用过所谓的 passthrough 配置,就是 WAN 侧只有 /64 SLAAC RA 然后 LAN 侧用 odhcpd RA relay 模式,会有长时间无 IPv6 流量会导致默认路由丢失和同 /64 子网不互通的问题,不知道怎么修。我看你的抓包记录 ICMPv6 只有 NS 没有 RS 和 RA ,不知道会不会是类似问题。
systemcall
2022-12-30 07:01:39 +08:00
@villivateur #6
都调成 1400 多一点的话反正也没什么副作用,试一下能解决就行了
防火墙那里还要配置 mss 钳制,把 mss 钳制打开
villivateur
2022-12-30 11:09:39 +08:00
@jim9606
@systemcall

如果只开启 mss 钳制的话,现象没有改善。我改了 MTU 的值,结果路由器死机了。死机的问题我还在排查,但我的理解是,如果是 MTU 的问题,那么应该会有很多 IPv6 数据包出现异常,而不是现在这种情况,大部分流量可以通过,偶尔出现重传
zbinlin
2023-01-02 13:52:22 +08:00
你的 ssh 是 over IPv6 的?路由器的 dev 的 MTU 值不需要改,看下 ssh 的 tcp 的 MSS 值是多少?
strp
2023-01-08 16:19:56 +08:00
@villivateur LAN 不要开 IP 动态伪装跟 MSS 钳制,没有意义,WAN 也是因为中国用的 PPPoE 才需要修改 MTU ,不然根本不需要修改。
journalist
2023-01-15 08:02:07 +08:00
你是否开启了 flow offload ,如果你开了,那这就是原因,这个 bug 在 21.02.4 版本被修复。https://github.com/openwrt/openwrt/issues/8239
villivateur
2023-01-15 21:54:14 +08:00
@journalist 我试过开关这个选项,但是没有解决

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

https://www.v2ex.com/t/905409

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

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

© 2021 V2EX