TLDR:使用无线路由器做 AP ,记得关闭路由器本身的 ipv6 功能
北京移动,光猫改桥接,网络拓扑是 光猫 – 软路由( openwrt ) – 无线 AP ( TP 的路由器),TP 路由器接 lan 口只用于无线接入。openwrt 能正常拿到拿到 ipv6-pd ,lan 口也有 ipv6 地址,但设备只能获取到 fd 开头的内网 ip 。
tcpdump 抓了半天包,发现设备拿到的 RA 包和 openwrt 下发的 RA 包完全不同,同时 gpt 也给出了提示:
A. 你电脑连的不是主路由器的 WiFi ?
你可能连接的是光猫/另一个设备/AP (它只发 ULA 前缀 RA ,且不做 IPv6 出口),而不是你主 OpenWrt 路由的 WiFi 。
B. 有别的 IPv6 RA 源在同一个网段?
局域网里有别的设备(比如虚拟机、旁路由、Docker 、软路由)在发 RA 包,且优先级更高。
这类 RA 会让你的客户端获得错误的前缀/网关,甚至根本不分配公网 IPv6 。
后知后觉,意识到 ap 的 ipv6 功能忘了关,关掉之后果然好了,又是被低级问题折磨的一天 :)也想吐槽一下 TPLink 固件的思路,你都不会拨号,只承担 ap 的职责,此时固件的 ipv6 开关,正常理解不就是 ap 也能分配到 ipv6 地址么,为什么还会向局域网广播你的 RA 包啊 = =
另外 gpt4.1 在排查这次 bug 起了很大作用,同时也用了 claude 4 ,但是给出的排查方向完全不对,gpt 4.1 的思路一直都是对的。
Leave a Reply Cancel reply