Vps

將 IPV6 分配給外部 vps/客戶端

  • September 29, 2010

我有大約 40 億個 IPV6 ips,我想將一些分配給我不在同一個 DC 中的外部 vpses,ipv6 ips 也在執行 ubuntu 10.04 的 VPS 上

我怎樣才能做到這一點?EG 將我的 VPS 上的 10 個 ipv6 ips 分配給另一個外部 VPS,以便外部 VPS 可以使用它們??

除非您對地址空間的路由有一定的控制權,否則所有 IPv6 流量都必須通過您的 Ubuntu 機器。

一個簡單的方法是 GRE 隧道(如果您的所有客戶端都有公共可達地址)或 openvpn。由於您的機器不在同一個數據中心,因此最好在 tun 模式下使用 openvpn。

首先,您需要為每個站點選擇一個 IPv6 子網和前綴。你說你有大約 40 億個地址,那就是 /96 前綴。假設您的網關伺服器有 address 2001:xx..xx::1/96。確定要分配給其他伺服器的前綴。例如,使用 /112 將使您擁有 65k 個 vpses,每個 vpses 有 65k 個地址。假設您的第一個客戶將擁有2001:xx..xx:1::/112. 在此塊內,2001:xx..xx:1::1/112將由網關使用,其餘的可供客戶端使用。(技術上可以避免這種情況,但通常是這樣做的)

這裡有兩個針對 Ubuntu 的教程,分別針對6to4GRE隧道。你想要的是介於兩者之間的東西。

在客戶端上,使用類似的東西

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 實例。在網關和每個客戶端(使用靜態密鑰)上,最小配置如下所示:

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 的指令(更有效),只要您在兩邊都添加回缺失的remote和指令。local

該文件server1.key必須包含一個共享密鑰,理想情況下每個客戶端都不同。您可以使用生成它們openvpn --genkey --secret server1.key

之後,您需要像以前一樣設置正確的路線。這裡有關於這樣做的文件(第一部分是關於使用證書設置 openvpn;您可以先使用靜態密鑰,因為它設置起來更快):

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

引用自:https://serverfault.com/questions/163339