这是一个创建于 172 天前的主题,其中的信息可能已经有所发展或是发生改变。
系统 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
7 条回复 2025-04-22 09:58:50 +08:00  | | 1 wolonggl 172 天前 如果将 eth0+tun1 组建一个 br0 ,相当于跳过 openwrt 内部路由转发,这种情况 LAN 口设备的获取 ipv6 可正常访问 ipv6 网站,但是这个有个缺点,没办法让 lan 口设备可以通过 openwrt 系统科学上网 |
 | | 2 v2er119 172 天前 双网关,需要科学的设备才走 op.不需要科学的走另一个网关。op 负责 dhcp ,通过 dhcp 选项功能给设备动态分配网关 |
 | | 3 sujin190 172 天前 似乎如果想要实现你要的这个效果,可行的方式是创建两个 Network Namespace ,一个配置禁用 ipv6 协议栈,一个配置禁用 ipv4 协议栈,然后再创建两对 veth-pair ,分别放入到这两个 Namespace 中去,接着把 tun1 也放到只处理 ipv6Network Namespace 中,最后这所有网卡都绑定到同一个 br0 上,估计就可以实现在网络二层分别处理 ipv4 和 ipv6 流量了 |
 | | 4 sujin190 172 天前 注意此时 openwrt 本机的 ipv6 和 ipv4 地址都是设置到这两对 veth-pair 上且 Network Namespace 里,eth0 上不要设置 ip 地址了 |
 | | 5 sujin190 172 天前 或者简单点,干脆默认网络栈直接禁用 ipv6 ,然后创建一个单独 Network Namespace 处理 ipv6 ,那这样估计只需要一对 veth-pair 就行 |
 | | 7 wolonggl 171 天前 更新 openwrt 到最新的 04.12.2025 到后,二级路由的 lan 口设备 ipv6 访问恢复正常, 我采用的是 openwrt.ai 系统 |