一:Relay(推荐)
1. 网页端登陆openwrt,网络-接口, 进入lan口设置,设置如下
2. 通过ssh连接路由器
编辑 dhcp 配置文件,
vi /etc/config/dhcp
增加有关wan6的配置
config dhcp 'wan6'
option interface 'wan'
option dhcpv6 'disabled'
option ra 'relay'
option ndp 'relay'
option master '1'
最后重启即可
二:Nat(不推荐)
这部分转自https://wp.gxnas.com/2620.html教程写的极好,非常简单就能nat,稳定性比relay强得多,(经过三个多月的实际使用,nat方法有时会影响ipv4连接,另外将路由器换个网络环境又需要重新配置,实际使用问题多多,其实还不如relay,当然最好还是ipv6穿透,前提是你能自己编译固件,将ebtables这个插件编译进去)。缺点就是和ipv4 nat一样,无法当作公网使用。
以下是步骤
1.安装IPK包
将设备接入有提供IPv6的接口,
在luci界面里-接口-一栏设置好IPv4联网(pppoe或者其他),联网成功后,然后使用ping ipv6.google.com查看是否可以ping通,ping通则继续以下操作。
安装本次nat的必要包
opkg install ip6tables
opkg install kmod-ipt-nat6
这两个包对内核要求还是蛮高的所以选择lede,oepnwrt
3.开始配置
使用终端nano、vi等命令修改也可以使用winscp工具打开
修改/etc/config/network文件,添加以下字段,若已存在字段仅地址不同,可以不用修改。或者改成你喜欢的前缀。
config globals 'globals'
option ula_prefix 'eeee:eeee:eeee::/48'
→等效于
在luci的web界面修改
接口-全局网络选项-IPv6 ULA 前缀,前缀可以不和lz一样可以自定义
4.配置DHCPv6
终端内使用nano、vi、winscp
修改/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'
等效于
luci界面里打开
接口-lan-下方 DHCP服务器-ipv6设置
DHCPv6 服务 (DHCPv6-Service) 服务器模式
路由通告服务 (Router Advertisement-Service) 服务器模式
NDP 代理 (NDP-Proxy) 禁用
DHCPv6 模式 (DHCPv6-Mode) 无状态的 + 有状态的
总是通告默认路由(Always announce default Router) 勾选
5.添加防火墙脚本
修改/etc/firewall.user在文末添加
假设WAN对应的接口为eth0.2,不是eth0.2的,自行修改成你的wan口设备名,添加以下内容:
ip6tables -t nat -A POSTROUTING -o eth0.2 -j MASQUERADE
等效于在luci界面
网络-防火墙-自定义规则 添加这一行 保存应用
6.配置网关(重要!)
在终端内使用
ip -6 route | grep default
查看当前IPv6默认路由
结果显示如下
default from (your ipv6) via (gateway) dev eth0.2 proto static metric 512
其中(gateway)括号里的 就是你网络状态下的网关
例如楼主这里显示
default from 2001:abcd:abcd::d:abcd via fe80::224e:71ff:bbbb:cccc dev eth0.2 proto static metric 512
那么其中的
fe80::224e:71ff:bbbb:cccc
fe80::fe7c:2ff:fe44:c2aa
就是当前网络的默认网关,这一步至关重要
我们需要将其添加到默认路由
终端里输入命令
route -A inet6 add default gw fe80::224e:71ff:bbbb:cccc dev eth0.2
至此配置方面就好了
接下来重启下服务使设置生效
/etc/init.d/firewall restart
/etc/init.d/network restart
注意:
如果是使用其他低内核的固件做如上的操作,
firewall那条命令的输出显示可能会提示什么ip6tables错误的 说明最开始安装的ip6tables不支持此固件的低内核 请换高版本内核使用此教程。network 重启会有短暂的断网 耐心等待网卡的DHCP。
两条命令结束后 电脑仍然无法打开ipv6的话 请重启电脑的网卡 具体操作网络和共享中心-更改适配器设置,右击禁用网卡,再启用网卡。
此时电脑就应该可以正常访问v6了。
7.添加开机自动加入IPv6路由
由于route -A inet6 add default gw 命令重启会失效所以我们需要建立一个脚本让路由器开机自动添加
具体操作
在/etc/hotplug.d/iface/目录下新建名字为 90-ipv6 的文件
vim /etc/hotplug.d/iface/90-ipv6
修改内容为
#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
route -A inet6 add default gw fe80::224e:71ff:bbbb:cccc dev eth0.2
注意:记得修改成自己的网关
然后给予可执行权限:
chmod +x /etc/hotplug.d/iface/90-ipv6
至此开机启动也完成了。
三、最后
通过http://test-ipv6.com/或者http://ipv6-test.com/测试IPv6是否正常
如果ipv6访问不正常 则可能是dns污染 手动修改wan6的dns方法是:
修改wan6-高级设置下的这里 取消勾选对端通告的DNS服务器 自己自定义为谷歌的v6dns
注意别填错了 取消勾选他会变到下一行
-----------------------------------------------------------------------------------------------
使用对端通告的 DNS 服务器
留空则忽略所通告的 DNS 服务器地址
使用自定义的 DNS 服务器
2001:4860:4860::8888
2001:4860:4860::8844
三:ipv6穿透(推荐)
参考:http://blog.kompaz.win/2017/02/22/OpenWRT%20IPv6%20%E9%85%8D%E7%BD%AE/
很好用,缺点是路由器本身没有了ipv6地址。不过需要自己设置开机脚本,可以参考上面的ipv6 nat部分设置脚本。