原文:https://note.cubercsl.site/notes/615f5972
给信息办投诉学校的无线用不了 IPv6 始终没有得到回复。只能自己在路由器上折腾实验室的网了。
网上很多 openwrt 用户都是用的 IPv6 中继[1],而我前前后后大概折腾了半个月始终搞不定,具体表现为:获取到了全球单播地址却无法访问任何 v6 网站。直到我发现学校的无线网也有这个毛病后给信息办投诉了一波。不过至今未解决,于是我只能用别的方法了……
感谢网友 @imlk_me 提供的思路。
这边直接插有线网(交换机)都能正确获得学校的 IPv4 和 IPv6 地址,但是 IPv4 通过路由器 NAT 后,使用中继获取的 IPv6 地址不能被正确路由,ping 外网主机没有响应。最终我使用 Passthrough 方式,缺点就是路由器自身会失去 IPv6 的访问。[2]
总的思路就是把 wan 口和 lan 口桥接到 br-lan 上,把上面不是 ipv6 的包给丢掉。
为了让设置能在 v6 网络起来的使用自动配置,添加脚本 /etc/hotplug.d/iface/99-ipv6
:
#!/bin/sh
iface=wan6
interface=eth0
[ -z "$iface" -o "$INTERFACE" = "$iface" ] || exit 0
case "${ACTION}" in
ifup)
ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i $interface
brctl addif br-lan $interface
logger -t IPv6 "add IPv6 bridge."
;;
ifdown)
brctl delif br-lan $interface
ebtables -t broute -F
logger -t IPv6 "delete IPv6 bridge."
;;
esac