在许多教程中,我看到了在 Linux 上添加 IPv6 地址的示例,例如
ip -6 地址添加 2001:0db8:0:f101::1/64 dev eth0
由于 IPv6 地址有 128 位,并且这只应该添加一个 IP,为什么是 /64 而不是 /128?
答案1
IPv6 寻址架构(RFC4291) 要求所有单播地址的前缀长度始终为 64 位。使用 /64 以外的其他地址将破坏许多 IPv6 功能,例如邻居发现、安全邻居发现 (SEND)、隐私扩展、移动 IPv6、嵌入式 RP(多播)等。
当前的 IPv6 地址分配指南要求仅在已知只需要一个子网时才分配 /64,否则应将 /56 分配给“预计在未来 5 年内只需要几个子网”的小型站点,或将 /48 分配给较大的站点。(ARIN 政策 6.5.4.1)
目前有许多免费隧道代理提供 /48。如果您愿意,您现在就可以轻松在家中设置 65,536 个全球路由 /64。(例如飓风电气会给任何人一个/48)
如果这看起来太浪费,请考虑一下,/48 的数量可能是 IPv4 /24 数量的 1600 多万倍。/48 的数量是地球上陆地面积的两倍(2.8✕10 14平方厘米对 1.4✕10 14平方厘米)。
答案2
答案3
大多数隧道代理(或本地 IPv6 委托)会为您提供 /64,然后将整个 /64 路由到您的端点。由于两个端点(代理/ISP 端的端点和您端的端点)都是此 /64 的一部分,因此您需要配置 /64 前缀。
这与从 ISP 获取 ipv4 范围基本相同。如果您获得 /24,则将网络掩码 255.255.255.0(或 /24)添加到您的 IP 地址。否则,您的主机不知道子网有多大。