DragonCave

一个没有黄段子的无聊小站

OpenWRT/PandoraBox 校园网IPv6-NAT实战

为什么需要 NAT66

校园网的一大优势就是无限制的 IPv6 网络,然而不少学校采取了 dhcpv6 的分派方式,只为每个终端设备分配一条/128的地址。这意味这如果接了路由器的话。路由器下的设备都无法访问 IPv6 网络。本教程将介绍如何通过 IPv6-NAT 的方式让内网设备也能访问教育网 IPv6 网络。

固件版本:PandoraBox 19.01 2018-12-31-git-4b6a3d5ca / LuCI Master (git-18.364.80006-87f648f)

内核版本:3.14.79

理论上适用于所有 OpenWRT 衍生系统,敬请测试。

安装必要的软件包

配置nat66需要安装以下两个软件包 ip6tableskmod-ipt-nat6 。注意,在 WEB 端安装软件包总会有不确定性,所以建议通过 SSH 连接路由器后执行以下命令:

opkg update
opkg install ip6tables
opkg install kmod-ipt-nat6

 

配置前缀

IPv6单播地址由一个前缀、子网ID 和接口ID 组成。此步骤将设置子网设备分配的 IPv6 地址的前缀。

登录路由器WEB管理页面,在网络 -> 接口 -> 全局网络选项 -> IPv6 ULA 前缀中修改 IPv6 前缀,格式为 xxxx:xxxx:xxxx::/48 。
xxxx为十六进制,可随意设置,例如 eeee:6666:ffff::/48。建设使用保留地址以免影响正常IPv6路由。

配置 DHCPv6

此步骤为了正确配置路由器 DHCPv6 服务器,让其做好分发IPv6地址的准备。

登录路由器WEB管理页面,进入网络 -> 接口 -> LAN -> DHCP 服务器 -> IPv6设置,进行如下配置:

路由通告服务 服务器模式
DHCPv6 服务 服务器模式
NDP 代理 禁用
DHCPv6模式 无状态的+有状态的
总是通告默认路由 是

 

配置防火墙

此步骤是为了让 iptables 放行IPv6-NAT的数据包。

登录路由器WEB管理页面,进入网络 -> 防火墙 -> 自定义规则,添加以下命令:

ip6tables -t nat -A POSTROUTING -o eth0.2 -j MASQUERADE

 

配置开机运行脚本

本步骤是为了在开机时自动添加IPv6网关路由,这样才能让NAT的内网设备访问外网。

通过SSH连接路由器,执行以下命令:

cd /etc/hotplug.d/iface/
vim 90-ipv6

 

i 进入插入模式,粘贴以下脚本内容:

#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
tmp=`ip -6 route | grep default | grep proto`
tmp=${tmp##*via}
tmp=${tmp%%dev*}
route -A inet6 add default gw $tmp dev eth0.2

 

注意 eth0.2 是你的获得IPv6地址的接口(一般即WAN6所用的接口),请根据具体情况修改。

确认无误后按 Esc 退出插入模式,键入 :wq 保存退出。

修改文件权限为0755:

chmod 755 /etc/hotplug.d/iface/90-ipv6

 

重启路由器

至此 IPv6-NAT 的配置都已完成,重启路由器后每个内网设备都能获取到以步骤二中设置的地址为前缀的IPv6地址,并能够正常访问外网,可以在 http://test-ipv6.com/ 中测试IPv6是否正常。

参考教程

在OpenWrt上配置原生IPv6 NAT

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据