将IPV6分配给外部vps /客户端

我有大约40亿IPV6 ips,我想分配一些外部vpses不在同一个DC,ipv6 ips在VPS上运行Ubuntu 10.04

我怎样才能做到这一点? EG在我的VPS上分配10个ipv6 ips到另一个外部VPS,这样外部VPS可以使用它们?

除非对地址空间的路由具有一定的控制权,否则所有IPv6通信都必须通过Ubuntu机器传输。

一个简单的方法是GRE隧道(如果你所有的客户端都有可公开地址)或openvpn。 由于您的机器不在同一个数据中心,因此openvpn最好在tun模式下使用。

首先,您需要为每个站点select一个IPv6子网和前缀。 你说你有大约40亿个地址,这将是一个/ 96的前缀。 假设您的网关服务器具有地址2001:xx..xx::1/96 。 决定分配给其他服务器的前缀。 例如,使用/ 112会让你有65k vpses每个65k地址。 假设您的第一个客户端将拥有2001:xx..xx:1::/112 。 在这个块内, 2001:xx..xx:1::1/112将被网关使用,其余的可用于客户端。 (从技术上讲,可以避免这种情况,但这通常是这样做的)

这里有两个针对Ubuntu的教程,分别是6to4和GRE隧道。 你想要的是中间的东西。

在客户端上,使用类似的东西

 auto tun0 iface tun0 inet6 static address 2001:xx..xx:1::2 netmask 112 pre-up iptunnel add tun0 mode gre local <client IPv4> remote <gateway IPv4> pointopoint 2001:xx..xx:1::1 post-down iptunnel del tun1 up ip route add 2000::/3 dev tun1 

在网关上,为每个客户:

 auto tun-server1 iface tun-server1 inet6 static address 2001:xx..xx:1::1 netmask 112 pre-up iptunnel add tun-server1 mode gre local <gateway IPv4> remote <client IPv4> pointopoint 2001:xx..xx:1::2 post-down iptunnel del tun1 

另外,你也可以在tun6模式下使用openvpn。 每个隧道需要一个单独的openvpn实例。 在网关和每个客户端(使用静态密钥)上,最小configuration应该是这样的:

 secret "/etc/openvpn/server1.key" dev-type tun tun-ipv6 dev tun-server1 local <Gateway IPv4> proto tcp-server 

而在客户端,一个实例:

 secret "/etc/openvpn/server1.key" dev-type tun tun-ipv6 dev tun0 remote <Gateway IPv4> proto tcp-client 

如果你的客户拥有公共的,可重复使用的地址,你可以删除proto指令来使用UDP(效率更高),只要你在两边加上丢失的remotelocal指令。

文件server1.key必须包含一个共享密钥,理想情况下每个客户端都不相同。 你可以用openvpn --genkey --secret server1.key生成它们

之后,您需要像以前一样设置合适的路线。 在这里有关于这样做的文档(第一部分是关于使用证书设置openvpn;您可以首先使用静态键,因为它是更快的设置):

http://www.zagbot.com/openvpn_ipv6_tunnel.html