例如,我希望 OpenVPN 占用,将其子网2001:0DB8:5912:1200::/56
分配/64
给客户端(以便它们可以在需要时充当 SLAAC 路由器)。
我应该怎么办?单独的 OpenVPN 是否足以实现此目的,或者我需要在 OpenVPN 不知情的情况下提供 IPv6 支持(即通过 IPv4 建立隧道)?
答案1
正确的方法是拥有两个 IP 地址范围:
OpenVPN 服务器和 OpenVPN 客户端之间互连的一个 (/64) 范围(假设为 2001:DB8:0:1::/64);
您将把一个 (/56) 范围划分为 /64 前缀,并将其委托给客户端(假设为 2001:DB8:0:ff00::/56)。
对于给定的客户端,您可以使用此client-config-dir
文件:
# This client has IPv6 2001:DB8:0:1::1
# and delegated prefix 2001:DB8:0:ff01::/64
ifconfig-ipv6-push say 2001:DB8:0:1::1/64 2001:DB8:0:1::
iroute-ipv6 2001:DB8:0:ff01::/64
笔记:
您可能希望使用 /48 而不是 /56 来对委派前缀进行子网划分;
RFC3177推荐/48:
- 通过按需或始终在线连接进行连接的家庭网络订户应收到 /48。
- 小型和大型企业都应该收到 /48。
答案2
据我认为,你可以告诉 OpenVPN 分发 IPv6 地址,它应该会很高兴地做到这一点。然而,IPv6 数据包将无处可去,因为您不打算拥有真正的 IPv6 地址!