將 IPV6 分配給外部 vps/客戶端
我有大約 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 的教程,分別針對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 實例。在網關和每個客戶端(使用靜態密鑰)上,最小配置如下所示:
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;您可以先使用靜態密鑰,因為它設置起來更快):