我已经使用 IPv6 很多年了,但直到最近我更换了 ISP(从 6to4 换成了 6rd)才发现无状态自动配置仅适用于 /64 子网。我一直以为它可以适用于任意前缀长度的子网。
这让我很吃惊,我必须承认我不太明白这其中的深层含义。特别是,我产生了以下疑问:
- 无状态自动配置是否应该是接口初始化的默认方法,或者 DHCPv6 是否应该在大多数地方使用?
- 如果是后者,那么无状态自动配置应该用于什么?
- 如果是前者,是否意味着“所有”子网都应该是 /64?为什么要将所有地址空间浪费在“终端”子网上?网络管理员难道不应该能够进一步细分他的网络吗?
在我的特定情况下,我的路由器之外还有几个不同的物理子网,因此当我拥有 /48 6to4 前缀时,我将其划分为几个 /64 子网,这就是自动配置始终对我有效的原因。现在,有了 6rd,我得到的只是 /64 前缀,然后我必须将其划分为小于 /64 的前缀,这显然是可行的(我实际上使用的是 /48)。我是否“不应该”能够进一步细分 6rd 前缀,或者这里出了什么问题?
如果这个问题看起来具有对抗性,请放心,这不是我的本意。我只是有点困惑,我想了解一下我的本意。
答案1
我也遇到过这种情况,并添加了 6in4 隧道来绕过我的 ISP,该 ISP“仅”通过 6rd 为我的家庭网络实验提供 /64。
这只是一个非常严格的惯例,即 /64 是自动配置子网的最小单位。它很容易被记住为地址的一半。一些协议和实现内置了这一假设,打破这一假设是愚蠢的。
/64 可让您轻松实现某些功能,例如将整个 IPv4 或 MAC 地址空间放入任意子网中。如果将 MAC 地址嵌入 IP 似乎不是一个好主意,那么作为替代方案,生成的地址不太可能发生冲突。
RFC 6177放弃向所有站点推行慷慨的 /48,并承认其他分配方案。由于它明确强调了多个子网的使用情况,因此提到了 /56 等折衷方案。
即使如此,也不会出现短缺。提供商可以向大多数或所有用户提供 /48,而不会用完。