在 OpenWrt 中设置获取公网 IPv6

中国电信不给分配公网 IPv4 地址了,为了让在外网的时候访问家里的群晖,我想要试试看 IPv6 的方式效果怎样。网上已经有很多教程,但是这些教程互相有矛盾的地方,我折腾了一段时间才总算成功。其实我也没有非常理解这样设置的原理,未免以后忘记怎么配置,在此记录一下,以免将来需要。

IPv6 要求服务器端和客户端都支持 IPv6 环境,否则无法访问。目前手机的移动网络默认都支持 IPv6 了,所以直接可以打开 IPv6 的网站,但是家庭网络和公司的网络就很可能不支持。

下面这些网站可以用来测试设备是否处于配置好 IPv6 的网络:

例如,访问 ipw.cn 如果出现下面这个结果就表示没有配置 IPv6:

/zh-cn/setup-ipv6-in-openwrt/ipw_v4.png

如果成功的话,应该显示如下图:

/zh-cn/setup-ipv6-in-openwrt/ipv6_first.webp

按照我的理解,要拿到公网 IPv6 地址,有下面两种选择:

  • 光猫拨号,路由器设置桥接模式,所有设备ip均由光猫分配
  • 光猫桥接,路由器拨号,如果运营商能正常下发PD,路由器通常也能分配公网 IPv6 地址。

我选择了把电信光猫改成了桥接,使用刷了 OpenWrt 的小米路由器来拨号。

基本上配置重点是除了 WAN6 需要打开 “使用内置的 IPv6 管理” 这个功能之外,其它接口都要关闭。WAN6 为了方便可以直接删除重新添加也没关系,注意接口使用自定义名称 @wan 即可。

据说如果能拿到 IPv6-PD 是比较理想的情况。

对于 IPv6 来说,似乎 F 开头的都不是公网地址。

FE80 开头的地址应该属于链路本地地址Link Local Address)。

按照网上的说法,公网地址应该是这样的:

  • 电信为 240e 开头的 (240e::/20)
  • 移动为 2409 开头的 (2409:8000::/20)
  • 联通为 2408 开头的 (2408:8000::/20)

先上最终配置成功后的接口总览:

/zh-cn/setup-ipv6-in-openwrt/result_cover.png
最终结果

找到 网络/接口/LAN,点修改

进入 基本设置IPv6 分配长度 确定为 64

/zh-cn/setup-ipv6-in-openwrt/lan_basic.png
LAN 基本设置

进入高级设置,进行这些改动:

  • 取消勾选 使用内置的 IPv6 管理
  • 勾选 强制链路
/zh-cn/setup-ipv6-in-openwrt/lan_advanced.png
LAN 高级设置

进行如下设置

/zh-cn/setup-ipv6-in-openwrt/lan_ipv6.png
LAN IPv6 设置

找到 网络/接口/WAN,点修改

这里并没有特别需要改的,因为光猫桥接了,这里设置成 PPPoE 拨号。

/zh-cn/setup-ipv6-in-openwrt/wan_basic.png
WAN 基本设置

进入高级设置,进行和 LAN 高级设置类似的改动:

  • 取消勾选 使用内置的 IPv6 管理
  • 勾选 强制链路
/zh-cn/setup-ipv6-in-openwrt/wan_advanced.png
WAN 高级设置

WAN6 接口可以删除重新添加也无所谓。

协议设置为 DHCPv6 客户端

/zh-cn/setup-ipv6-in-openwrt/wan6_basic.png
WAN6 基本设置

这里的重点就是终于要打开 使用内置的 IPv6 管理 了。

/zh-cn/setup-ipv6-in-openwrt/wan6_advanced.png
WAN6 高级设置

把接口设置为 @wan

/zh-cn/setup-ipv6-in-openwrt/wan6_physics.png
WAN6 物理设置

注意是和 wan 一起的就可以了

/zh-cn/setup-ipv6-in-openwrt/wan6_firewall.png
WAN6 防火墙设置

到 网络下的 DHCP/DNS 下找到服务器设置/高级设置,把 禁止解析 IPv6 DNS 记录 取消勾选。

/zh-cn/setup-ipv6-in-openwrt/dhcp.png
DHCP 设置

相关内容