在OpenWrt上配置原生IPv6 NAT
以前这篇文章是发在CSDN上面的,访问量已经9000多了,应该还是帮过不少人吧。。这次重新更新整理到hexo上面。
我的网络环境
- 网络:教育网原生双栈,IPv4固定地址,IPv6地址自动获取
- 固件版本:OpenWrt Chaos Calmer 15.05-rc2 r45918
- 内核版本:3.18.14
准备工作
配置好路由使其能够连接网络,WAN口能够获取全球单播IPv6地址,在我的环境下WAN口是可以自动获取到IPv6地址的,因此如果你的环境不能自动获取到IPv6地址,请谷歌一下解决办法。
详细步骤
- 安装 - ip6tables和- kmod-ipt-nat6。- 1 
 2
 3- opkg update 
 opkg install ip6tables
 opkg install kmod-ipt-nat6
- 使用WinSCP更改 - /etc/config/network文件内容,在- config interface 'lan'下添加一行:- 1 - option ip6addr 'fc00:100:100:1::1/64' 
- 更改 - /etc/config/dhcp文件,将- config dhcp 'lan'那一栏改为以下内容:- 1 
 2
 3
 4
 5
 6
 7
 8
 9- 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'
- 更改 - /etc/firewall.user,假设WAN对应的接口为eth0.2,则添加以下内容:- 1 - ip6tables -t nat -A POSTROUTING -o eth0.2 -j MASQUERADE 
- 使用 - tracepath6 -b tv.byr.cn命令,获取目前网络的IPv6网关地址(找最上面的IPv6地址),假定是- 2001:1234:1234:1234::1。
- 使用 - route -A inet6 add default gw 2001:1234:1234:1234::1命令,为路由器添加默认网关。这一步非常重要,不进行的话是上不了IPv6的。。。完成之后,连接到路由器的计算机应该可以访问IPv6网站了。
重启之后,需要重新添加网关,如果要做到路由器开机自动添加该网关,可以在/etc/hotplug.d/iface/下新建一个文件90-ipv6,给予可执行权限,内容为(注意替换为自己的网关地址)
1
2
3#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
route -A inet6 add default gw 2001:1234:1234:1234::1