openwrt 24.10 二级路由获取 ipv6 /62 地址段, LAN 口设备无法上网 ipv6

154 天前
 wolonggl
系统 openwrt 24.10 ,做二级路由,有公网 ip 地址,通过 wireguard+gretap 隧道从另外一个 openwrt 获取 /62 ipv6 地址段

上级 openwrt tun1 《-- gretap over wireguard -》 tun1 二级 openwrt --》 LAN 口

现在问题是:openwrt 系统自身可正常访问 ipv6 网站,lan 口可以通过 ip 委派方式获取 /64 ipv6 地址,
但是 LAN 局域网的设备也可正常获取 ipv6 地址,但是无法访问 ipv6 网站, 下面信息为二级路由器的路由表,
从 tun1 口无法抓取到 LAN 口设备的访问请求,说明二级路由器内部 ipv6 转发阻塞

tun1 为隧道
eth0 为 LAN 口 240e:352:193e:e004::/64 为 LAN 口分片的 ipv6 地址段
240e:352:193e:e004::/62 为 dhvp6 over tun1 获取的 IPV6-PD 前缀
240e:352:193e:e000::/56 为上级路由器获取的 IPV6-PD 前缀

# ip -6 r
240e:352:193e:e000::44a dev eth0 metric 127 pref medium
240e:352:193e:e000::/64 dev tun1 proto static metric 256 pref medium
unreachable 240e:352:193e:e000::/64 dev lo proto static metric 2147483647 pref medium
240e:352:193e:e004::/64 dev eth0 proto static metric 1024 pref medium
unreachable 240e:352:193e:e004::/62 dev lo proto static metric 2147483647 pref medium
240e:352:193e:e000::/56 via fe80::7c27:4cff:fed2:ab38 dev tun1 proto static metric 512 pref medium
fd00:1223::/64 dev docker0 proto kernel metric 256 pref medium
fd00:1223::/64 dev docker0 metric 1024 pref medium
fe80::/64 dev tun1 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev docker0 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev vethb207467 proto kernel metric 256 pref medium
fe80::/64 dev veth9b26b77 proto kernel metric 256 pref medium
fe80::/64 dev vethd70fd31 proto kernel metric 256 pref medium
fe80::/64 dev vethdeb0fc2 proto kernel metric 256 pref medium
default via fe80::7c27:4cff:fed2:ab38 dev tun1 proto static metric 512 pref medium
1247 次点击
所在节点    OpenWrt
7 条回复
wolonggl
154 天前
如果将 eth0+tun1 组建一个 br0 ,相当于跳过 openwrt 内部路由转发,这种情况 LAN 口设备的获取 ipv6 可正常访问 ipv6 网站,但是这个有个缺点,没办法让 lan 口设备可以通过 openwrt 系统科学上网
v2er119
154 天前
双网关,需要科学的设备才走 op.不需要科学的走另一个网关。op 负责 dhcp ,通过 dhcp 选项功能给设备动态分配网关
sujin190
154 天前
似乎如果想要实现你要的这个效果,可行的方式是创建两个 Network Namespace ,一个配置禁用 ipv6 协议栈,一个配置禁用 ipv4 协议栈,然后再创建两对 veth-pair ,分别放入到这两个 Namespace 中去,接着把 tun1 也放到只处理 ipv6Network Namespace 中,最后这所有网卡都绑定到同一个 br0 上,估计就可以实现在网络二层分别处理 ipv4 和 ipv6 流量了
sujin190
154 天前
注意此时 openwrt 本机的 ipv6 和 ipv4 地址都是设置到这两对 veth-pair 上且 Network Namespace 里,eth0 上不要设置 ip 地址了
sujin190
154 天前
或者简单点,干脆默认网络栈直接禁用 ipv6 ,然后创建一个单独 Network Namespace 处理 ipv6 ,那这样估计只需要一对 veth-pair 就行
wolonggl
154 天前
@sujin190 这个没问题,就是设备不能利用二级路由的科学上网功能了
wolonggl
153 天前
更新 openwrt 到最新的 04.12.2025 到后,二级路由的 lan 口设备 ipv6 访问恢复正常, 我采用的是 openwrt.ai 系统

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

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

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

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

© 2021 V2EX