参考来源: Openwrt配置NAT6
假如你家的路由器是Pandorabox(或者其他openwrt,lede)的路由器,并且你家的网络支持ipv6, 那怎样设置路由器来实现网络提速呢?
先来看一下我家网络的提速效果:
之前家里的网络速度一直徘徊在100M以下,设置了ipv6之后,一直保持在100M左右。
ipv6比ipv4更快吗?
说 IPv6 能提高「网速」通常是指新建的 IPv6 网络通常具有更大的带宽(比如中国正在新建的 CERNET2 骨干网动辄 10Gbps、100Gbps 的连接带宽)、更好的流量控制、更少的 NAT 从而实现更高效的网络拓扑结构(IP 地址资源多从而不需要对数据包进行多次地址翻译和转发)。在这些方面 IPv6 确实是能提高「网速」的。
NAT的工作原理
当内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包的报头,获取该数据包的源IP信息,并从它的NAT映射表中找出与该IP匹配的转换条目,用所选用的内部全局地址(全球唯一的IP地址)来替换内部局部地址,并转发数据包。
当外部网络对内部主机进行应答时,数据包被送到NAT路由器上,路由器接收到目的地址为内部全局地址的数据包后,它将用内部全局地址通过NAT映射表查找出内部局部地址,然后将数据包的目的地址替换成内部局部地址,并将数据包转发到内部主机。
设置步骤
查看/设置ipv6前缀
在管理界面的网络>接口画面可以看到
设置DHCPv6
在网络>接口-LAN>DHCP服务器中进行如下设置,使连接到网络的设备能自动获取ipv6地址:
- 路由器通告服务: 服务器模式
- DHCPv6服务: 服务器模式
- DHCPv6模式: 无状态的+有状态的
配置防火墙
ssh进你的路由器,执行下列命令
1 | ip6tables -t nat -A POSTROUTING -o eth0.2 -j MASQUERADE |
等同于在路由器管理界面的防火墙中添加下列NAT规则
配置网关
同样利用ssh,查看自己路由器的默认ipv6网关
1 | ip -6 route | grep default |
得到的结果类似于
1 | default from (your ipv6) via (gateway) dev eth0.2 proto static metric 512 |
(gateway)的部分就是你的默认ipv6网关
执行下列命令设置你的默认ipv6网关
1 | route -A inet6 add default gw <your default gw> dev eth0.2 |
执行下列命令重启防火墙和网络使设置生效
1 | /etc/init.d/firewall restart |
配置开机自动设置ipv6路由默认网关
上述配置在重启路由器后会失效,需要在开机的时候自动设置网关。
在/etc/hotplug.d/iface/目录下新建名字为 90-ipv6 的文件
修改内容为
1 |
|
给予可执行权限
1 | chmod +x 90-ipv6 |
配置DNS服务器
DNS有可能被污染 手动修改wan6的dns方法是:
- 修改wan6-高级设置
- 取消勾选对端通告的DNS服务器
- 自定义为谷歌的v6dns
测试IPv6是否正常
测试IPv6是否正常