/ OpenWrt

Openwrt 内网转发 IPv6

本文内容可能已经过期,最新:https://i-meto.com/lede-ipv6/

学校校园网是 IPv4+IPv6 双栈接入的,然而分配的 IPv6 地址只能由一台机器使用,接入路由器后下线的设备全部无法使用 IPv6,所以要对路由器进行设置内网 nat 转发。

测试路由:网件 4300 (刷入 Openwrt 15.05.1,测试在 cc 版本以上成功,其他版本自测)

  1. 进入软件(soft)配置界面安装 kmod-ipt-nat6 模块,如果下载失败可以修改软件源重试。
  2. 打开网络(Network)菜单下的接口(Interfaces),把最下面的 IPv6 ULA-Prefix 选项中把地址的第一个字符 f 改成 d.
  3. 点击 LAN 接口的 edit 按钮进入设置,在 IPv6 Settings 选项卡中把 Router Advertisement-Service 改成 server mode ,关掉 DHCPv6-ServiceNDP-Proxy,并勾上 Always announce default router.
  4. 进入启动项管理 ,把以下命令添加入启动配置(在 exit 0 前),实现开机启动,最后重启即可。
#/bin/ash
line=0
while [ $line -eq 0 ]
do
  sleep 10
  line=`route -A inet6 | grep ::/0 | awk 'END{print NR}'`
done
ip6tables -t nat -I POSTROUTING -s `uci get network.globals.ula_prefix` -j MASQUERADE
route -A inet6 add 2000::/3 `route -A inet6 | grep ::/0 | awk 'NR==1{print "gw "$2" dev "$7}'`
exit 0