在OpenWrt上配置原生IPv6 NAT

请访问http://tang.su/2017/03/openwrt-ipv6-nat/获取本文最新版本。

我的环境


  • 网络:教育网原生双栈,IPv4地址固定,IPv6地址自动获取
  • 固件版本:OpenWrt Chaos Calmer 15.05-rc2 r45918
  • 内核版本:3.18.14

准备工作


配置好路由使其能够连接网络,WAN口能够获取全球单播IPv6地址。

步骤


  1. 安装ip6tableskmod-ipt-nat6

    opkg update
    opkg install ip6tables
    opkg install kmod-ipt-nat6
  2. 更改/etc/config/network,在config interface 'lan'下添加一行:

    option ip6addr 'fc00:100:100:1::1/64'
  3. 更改/etc/config/dhcp,将config dhcp 'lan'那一栏改为以下内容:

    config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv6 'server'
        option ra 'server'
        option ra_management '1'
        option ra_default '1'
  4. 更改/etc/firewall.user,假设WAN对应的接口为eth0.2,则添加以下内容:

    ip6tables -t nat -A POSTROUTING -o eth0.2 -j MASQUERADE
  5. 重启路由,看看电脑是否能够ping通IPv6地址,如果不能,再进行以下补充步骤.

    1. 将网线直接连电脑上,待能够正常上网后,运行CMD,输入以下命令:

      tracert ipv6.google.com

      tracert结果的第一跳就是你目前的网关,记下后面的IPv6地址,假设是2001:1234:1234:1234::1.

    2. SSH连接路由器,输入以下命令:

      route -A inet6 add default gw 2001:1234:1234:1234::1

      这个时候应该立即可以打开支持IPv6访问的网站了.

    3. 要做到路由器开机自动添加该网关,可以在/etc/hotplug.d/iface/下新建一个文件90-ipv6,给予可执行权限,内容为

      
      #!/bin/sh
      
      [ "$ACTION" = ifup ] || exit 0
      route -A inet6 add default gw 2001:1234:1234:1234::1

没有更多推荐了,返回首页