原文: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

    1. #!/bin/sh
    2. iface=wan6
    3. interface=eth0
    4. [ -z "$iface" -o "$INTERFACE" = "$iface" ] || exit 0
    5. case "${ACTION}" in
    6. ifup)
    7. ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i $interface
    8. brctl addif br-lan $interface
    9. logger -t IPv6 "add IPv6 bridge."
    10. ;;
    11. ifdown)
    12. brctl delif br-lan $interface
    13. ebtables -t broute -F
    14. logger -t IPv6 "delete IPv6 bridge."
    15. ;;
    16. esac

    1. odhcpd 中继模式原理、局限以及解决方案 ↩︎
    2. K2 OpenWrt配置Ipv6之穿透模式 ↩︎