使用 IPv6 地址范围的正确方法

网络工程 IPv6
2022-02-08 17:57:43

我有以下 IPv6 地址范围,网络掩码为 64 :

A:B:C:D:E:0000:0000:0000->A:B:C:D:E:0000:0000:FFFF

我必须将其中一些分配给虚拟机。

我应该使用A:B:C:D:E:0000:0000:0000还是应该从 开始::1

1个回答

虽然可以从将物理机连接到路由器的链接前缀为虚拟机分配地址,但这不是我推荐的方法。

相反,我建议您让托管服务提供商将较短的前缀路由到您的物理机。您需要的前缀长度取决于 VM 的数量:

  • 对于 1 个 VM,您需要 /64
  • 对于 2 - 14 个 VM,您需要 /60
  • 对于 9 - 194 个 VM,您需要 /56
  • 对于 84 - 2702 VM,您需要 /52
  • 对于 776 - 37641 VM,您需要 /48

这些数字假设提供商仅在半字节边界上分发前缀,并且您希望每个 VM 有一个 /64。范围之间的重叠是因为我允许 HD 比率介于 80% 和 95% 之间。

我建议将前缀路由到物理机并将其细分为每个 VM 的链接前缀的原因是双重的。

  • 每个 VM 的链接前缀可让您更好地隔离 VM。
  • 路由器不再需要为每个虚拟机进行邻居发现,从而减少了路由器上的内存使用和物理链路上的流量。

如果托管服务提供商出于某种原因拒绝将前缀路由到您的物理机,那么您可以改为在虚拟接口和物理接口之间进行桥接。这有多个缺点:

  • 一些 VM 网络桥接实现在来宾和主机之间传输数据包时存在问题。这可能会导致您的客人可以与世界交流但不能与主人交流的情况。
  • 您分配给每个 VM 的 MAC 地址将对托管服务提供商的路由器直接可见。如果托管服务提供商根据 MA​​C 地址过滤流量,可能会导致来自您的虚拟机的合法流量被丢弃。这可能需要肮脏的解决方法。
  • 虚拟机可能会欺骗彼此的 IP 地址。
  • 邻居发现将需要更多流量和内存。
  • 由于每个 VM 需要处理每个 ND 数据包,因此需要更多的 CPU 周期。如果桥接实现了解 IPv6 任播并限制哪个 VM 将看到每个数据包,则可以缓解这种情况。