在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
3opkg 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
9config 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