我对 IPv6 完全不了解,但对 IPv4 有一些实际经验(只是因为我必须处理它)。
我家用的路由器位于 CGNAT 后面,因此他们不提供公共 IPv4 地址,但我询问了如何获取 IPv6 地址,我的 ISP 也好心地为我提供了一个。他们在回复中说我的地址是2a01:XXXX:XXXX:4000::/56
。阅读相关内容后,我意识到我可以并且应该为我的网络设备提供 GUA,这对我来说很有吸引力。
在我的 ISP 路由器后面,我有一个用于教育目的的 OpenWRT。我所有的其他设备都在后者后面。为了正确运行 DHCP,我的 OpenWRT 需要从我的 ISP 路由器(也启用了 DHCPv6)获取前缀。
我的困惑来自/56
地址末尾的。我猜网络掩码对 GUA 来说没有意义,那么这是我可以用于我的私有网络的委托前缀吗?如果是这样,在将前缀分配给我的 OpenWRT 路由器时,如果我决定将来在 ISP 的路由器后面安装更多设备,我是否应该缩小它的范围?
我如何验证整个过程是否按预期运行?我的 ISP 路由器的 UI 很差,没有控制台,我可以看到 GUA 已被分配,但没有/56
(我不会给它起名字,因为我还不确定它叫什么)。我的 OpenWRT 根据其全局 ULA 设置向主机分配地址,这意味着它不考虑其他路由器可能发布的任何前缀(如果它正常工作的话)。
ISP 路由器有一个复选框,用于根据 WAN 设置启用前缀委派(已选中),另一个部分用于静态前缀,目前为空。
答案1
我的困惑来自于地址末尾的 /56
它是“前缀长度”(从左边开始计算的相关位数)。也称为以前表示为网络掩码的“CIDR 表示法”。例如,在 IPv4 中,“/24”等于网络掩码 255.255.255.0,“/17”对应于 255.255.128.0,依此类推。尽管网络掩码形式是非常稀有在 IPv6 中使用时,/56 的等效项是“ffff:ffff:ffff:ff00::”。
整体2a01:XXXX:XXXX:4000::/56
是字首或者只是 ISP 路由到您的网络。(这不是单个设备的地址!)
我猜网络掩码对于 GUA 来说没有意义
确实如此。但是,在 IPv4 和 IPv6 中,它们可以描述两个略有不同的事物:路由到其他地方的网络(中间“网关”路由)和设备直接所在的子网(最终的“在线”路由,无法进一步延伸或划分)。
IPv6 前缀委派始终是路由的 – ISP 的路由器有路由2a01:XXXX:XXXX:4000::/56 via <your_router's_wan_IP>
。您的路由器应该会按照您的意愿进行划分。您可以直接将 /64 分配为 LAN 子网,也可以进一步将更大的块(例如 /60 甚至整个 /56)委派给网络中的其他路由器。(您可以通过添加静态路由或像 ISP 自己一样设置 DHCPv6-PD 来执行此委派。)从技术上讲,您可以使用一个庞大的 /56 子网,但这不是推荐;坚持使用/64。
...OpenWRT 进入其 wan6(如果我没记错的话它是 /128,这意味着没有发生委派)。
不,不是这个意思。
在设备上配置 IP 地址时,无论是 IPv4 还是 IPv6,网络掩码或前缀长度始终反映后者:最终子网大小。因此,即使 /56 被路由到您的路由器,在接口配置上只显示/64 或/128 是完全有效的。
路由器通过 DHCPv6-PD 自动获取的任何前缀都会显示在单独的区域中。
为了正确运行 DHCP,我的 OpenWRT 需要从我的 ISP 路由器获取前缀
如果 ISP 的路由器支持,则自动方法将是 DHCPv6-PD提供它(而不是仅仅请求)。
手动方法是在 ISP 路由器中添加静态路由,然后使用所需的子网配置 OpenWRT LAN 接口。这可能更可靠,我实际上会将整个 /56 路由到 OpenWRT 设备。(如果路由与 ISP 路由器的 LAN 使用的 /64 重叠,则完全没问题。)