简介
目前你在搜索引擎能搜到有关 OpenWRT 的 NATv6 设置教程基本上都是让你用 iptables
和写个脚本来应对可能 变化的IPV6地址 ,其实大可不必,现如今 Openwrt新版本 的 UI 已经简化了许多操作,可以很方便的配置网络。
先前准备
-
请确保你的 路由器设备已经具有IPV6,并可以正常访问IPV6网站
-
请确保你的 OpenWRT 的具有以下功能
- 网络->防火墙->NAT规则
- 网络->接口->LAN->DHCP服务器->IPV6设置
- 网络->接口->WAN->DHCP服务器->IPV6设置
-
本文章默认读者打开了 dns的v6解析
-
本文章默认 广域网IPV4 的接口是
wan
默认 广域网IPV6 的接口是wan6
默认 局域网 的接口是LAN
注意事项
本教程默认读者的 路由器设备已经具有IPV6,并可以正常访问IPV6网站。
对于想要驳斥NATv6的读者,这篇文章不欢迎你们,技术本无罪,都是特殊环境或者特殊需求下的解决方案。
本教程所用的版本是 openwrt-24.10
NATv6设置
设置内网V6地址
内网的IPV6网段 为
fd00::/8
设置内网V6方式有两种,请自行选择
全局网络选项设置内网V6地址
- 进入 OpenWRT后台 ,进入 网络->接口->全局网络选项 ,在 IPv6 ULA 前缀 输入你的
内网V6
地址(如fdc0:168:191::/60
,在下面教程中默认为这个地址) - 进入 网络->接口->LAN->编辑->高级设置
- IPv6 分配长度 设置为
64
- IPv6 后缀 设置
::1
或者eui64
、random
都行
- 进入 网络->接口->LAN->编辑->DHCP服务器->IPV6设置
- RA 服务 设置为
服务器模式
- DHCPv6 服务 设置为
服务器模式
- NDP 代理 设置为
已禁用
- 网络->接口->LAN->编辑->DHCP服务器->IPV6 RA设置
- 默认路由器 设置为
强制的
- 启用 SLAAC 设置为
启用
在接口中设置内网V6地址
- 进入 网络->接口->LAN->编辑->高级设置
- 委托 IPv6 前缀 设置为
禁用
- IPv6 分配长度 设置为
已禁用
- 进入 网络->接口->LAN->编辑->常规设置
- IPv6 地址 设置为
内网V6地址
(如fdc0:168:191::1/64
,在下面教程中默认为这个地址)
- 进入 网络->接口->LAN->编辑->DHCP服务器->IPV6设置
- RA 服务 设置为
服务器模式
- DHCPv6 服务 设置为
服务器模式
- NDP 代理 设置为
已禁用
- 网络->接口->LAN->编辑->DHCP服务器->IPV6 RA设置
- 默认路由器 设置为
强制的
- 启用 SLAAC 设置为
启用
设置NAT规则
NAT规则设置 也有两种方法,请读者自行选择
简单方法
这种有个缺点,所有网段 都只能NATv6 上网,不能做到精细控制
- 进入 网络->防火墙->WAN->编辑->高级设置
- IPv6 伪装 设置为
启用
- 进入 网络->防火墙->WAN->编辑->常规设置
- MSS 钳制 设置为
启用
NAT规则设置
这种方法更加推荐,可以控制 部分前缀NATv6 ,甚至可以 指定设备NATv6
其次这种方法实际上就是 启用IPv6 伪装 , 只要不填写源地址
就可实现相同功能
- 进入 网络->防火墙->NAT 规则
点击左下角的添加
参考配置如下:
选项 | 参数 |
---|---|
名称 | LANNatv6 |
地址族限制 | 仅IPV6 |
协议 | 任何 |
出站区域 | WAN |
源地址 | fdc0:168:191::/64 或者 fdc0:168:191::/60 |
目标地址 | 任意 |
操作 | MASQUERADE - 自动重写源地址为出站接口IP |
- 在 高级设置 中 设置 出站设备 为
wan
接口 - 保存应用即可
测试IPV6
请确保手机电脑等设备已经获取到了 内网V6地址
打开 http://www.test-ipv6.com/
显示结果为绿色即可
中继IPV6
设置WAN中继
点击 网络->防火墙->WAN6->编辑->DHCP服务器->IPV6设置
参考设置如下:
选项 | 参数 |
---|---|
指定的主接口 | 勾选 |
RA 服务 | 中继模式 |
DHCPv6 服务 | 中继模式 |
NDP 代理 | 中继模式 |
学习路由 | 勾选 |
IPv6 前缀有效期 | 12h |
遵守 IPv4 有效期 | 不勾选 |
设置LAN中继
设置为
混合模式
可以自定义发送给客户端的 DNS地址
点击 网络->防火墙->LAN->编辑->DHCP服务器->IPV6设置
参考设置如下:
选项 | 参数 |
---|---|
指定的主接口 | 勾选 |
RA 服务 | 中继模式 或者 混合模式 |
DHCPv6 服务 | 中继模式 或者 混合模式 |
NDP 代理 | 中继模式 |
学习路由 | 勾选 |
IPv6 前缀有效期 | 12h |
遵守 IPv4 有效期 | 不勾选 |
测试IPV6
请确保手机电脑等设备已经获取到了 内网V6地址
打开 http://www.test-ipv6.com/
显示结果为绿色即可
问题
如果还是不行,可以尝试一下以下方法
在终端输入命令 logread | grep odhcpd
,如果看到了类似 没有网关 的话,那么极有可能路由器的默认网关掉了,在 网络->路由->静态IPV6路由 中设置一下默认网关即可。
- 点击 网络->路由->静态IPV6路由
- 点击添加
设置参考如下:
选项 | 参数 |
---|---|
接口 | WAN6 |
路由类型 | unicast |
目标 | ::/0 |
网关 | fe80::1 |
注意这里的 网关 应该为 光猫的本地链路地址 ,运营商的光猫的 本地链路地址 一般默认为 fe80::1