/ 64路由到我分配的IPv6地址?

所以我有一个Linux服务器的VPS提供商,它在他们的网站上的我的networking仪表板中说明:

2607:f840:0044:0022:0000:0000:0000:0000/64被路由到该服务器(2607:f840:0:3f:0:0:0:eaa)

2607:f840:0:3f:0:0:0:eaa / 64是分配给eth0接口的地址,并在其旁边显示GLOBAL。

我只对IPv6有所了解。 每个地址长度为128位,以hexforms写入,缩短省略前导零或使用::一次。 我不明白的是2607:f840:44:22 :: / 64'路由到我的IPv6分配地址2607:f840:0:3f:0:0:0:eaa / 64是什么意思。

所以我不能在2607:f840:0:3f:0:0:0:eaa中更改一个位,但是我可以select从2607:f840:44:22:0000:0000:0000:0000到2607:f840 :44:22:FFFF:FFFF:FFFF:FFFF? 那会给我2 ^ 64个可能的地址,但为了什么目的呢?

希望这个问题不是太模糊或者脱离主题,多谢见谅。

欢迎来到拥有更多IP地址的奇妙世界,而不是你知道该怎么做。 (对你的VPS提供商来说,这样做是正确的,并为你分配一个/ 64而不是更小的东西,这是很多被误导的提供商似乎正在做的事情)

正如你可能猜到的那样,一个目的就是永远不会有人用完IP地址 。 或者至less不是很久以前

所以这就是它如何为你工作:

  1. 分配给eth0接口的IP地址是2607:f840:0:3f::eaa 。 这是上游提供商的/64 。 当数据包进入子网2607:f840:44:22::/64 ,上游提供商将它们路由到eth0接口。

  2. 数据包到达时的处理完全取决于您。 既然你在VPS上,你可能不需要大量的地址,所以你可以开始把它们从...::1分配给你现有的eth0接口。

    例如:

     ip addr add 2607:f840:44:22::1/64 dev eth0 ip addr add 2607:f840:44:22::2/64 dev eth0 ip addr add 2607:f840:44:22::3/64 dev eth0 ip addr add 2607:f840:44:22::deca:fbad/64 dev eth0 ip addr add 2607:f840:44:22:feed:face:dead:beef/64 dev eth0 

    如果您将VPS进一步分为容器(例如OpenVZ或LXC),则可以将/64路由到将为容器提供服务的网桥,并为容器分配地址。

另请参阅密切相关的问题, IPv6子网划分如何工作以及它与IPv4子网划分有何区别?

让我通过引用RFC 5375来回答:IPv6单播地址分配注意事项

邻居发现(ND),安全邻居发现(SEND)[RFC3971],隐私扩展[RFC4941],移动IPv6的部分[RFC4866],带有embedded式RP [RFC3956]的PIM-SM和SHIM6 [SHIM6]。 目前正在开发或正在提出的一些其他function也依赖于/ 64子网前缀。

您的提供商只是坚持安全的标准。 你得到一个巨大的地址空间来处理,但这是一件好事。 它使事情未来的certificate。

我不明白的是2607:f840:44:22 :: / 64'路由到我的IPv6分配地址2607:f840:0:3f:0:0:0:eaa / 64是什么意思。

这意味着他们像对待路由器一样对待你的服务器。

当一个设备想要发送一个数据包时,它将在其路由表中查找目的地。

路线只能指向一个界面。 一个例子是由子网掩码创build的隐式路由,但是至less在linux上这样的路由也可以被明确地添加。 在这种情况下,目标IP地址被作为下一跳IP地址。

或者,路由可以指向接口和下一跳IP地址的组合。 在这种情况下使用指定的下一跳IP地址

对于IPv6 6,使用邻居发现(IPV4使用ARP)将下一跳IP地址parsing为MAC地址。

那么,当提供商的路由器在2607:f840:44:22 :: / 64中查找任何地址时,它将执行2607:f840:0:3f:0:0:0:eaa的邻居发现,并发送数据包到它find的MAC地址。