在OpenVZ虚拟机里配置tunnelbroker.net的IPv6

默认情况下,VPS商不会给你在OpenVZ启用sit设备(因为需要重新编译内核等等),不用说burst.net这种大公司。没有sit设备,openvz下除了teredo协议获得IPv6之外,还有一招。

使用tunnelbroker获得完整的/64甚至/48块的IPv6。

英文来自:http://code.google.com/p/tb-tun/wiki/HOWTO

我经过测试通过,可行的。

我把具体的过程写下,貌似还没有看到有人写过。是俺们国人写的。仰慕一下,顺便研究研究代码。以下步骤在Burst.NET的VPS跑着Debian5下测试通过,在VPSVilla.ca的CentOS系统的VPS上也测试通过。

1. 开启TUN设备。

这一步需要服务商来弄。在你发ticket给服务商之前,试试以下命令:
mkdir -p /dev/net

mknod /dev/net/tun c 10 200

chmod 600 /dev/net/tun
然后运行

cat /dev/net/tun

假如提示:cat: /dev/net/tun: 文件描述符处于错误状态

那么应该就是可以使用了的。具体还是发个ticket吧。

2. 下载tb-tun软件。

mkdir tb

cd tb

wget http://tb-tun.googlecode.com/files/tb-tun_r14.tar.gz

tar zxf tb-tun_r14.tar.gz

3. 编译tb-tun

gcc tb_userspace.c -l pthread -o tb_userspace

4. 创建Tunnelbroker.net账户

这一步。我不多说了。到tunnelbroker.net注册。需要到邮箱获取密码。

5. 建立IPv6隧道

首先在tunnelbroker.net内,左边找到:Create Regular Tunnel

进入后:

IPv4 Endpoint内填入你的VPS分配到的IP

然后在下面选择一个离你的服务器较近的Relay Server.

后面略过。假如你创建成功了,那么就会在Main Page里面的Tunnels里面看到你刚刚建立的Tunnel

6. 绑定Tunnel

这里才是重点。

找到你的tunnel,点进去,你应该看到这样的信息:

这里记录下重点信息:

Routed /64就是你被分配的IPv6地址块。你可以从中任意添加IP。例如我这里IP块可以使用:

2001:470:8:4b9::1

2001:470:8:4b9::2

2001:470:8:4b9::3

2001:470:8:4b9:29ad:2812:293a:cafe:1

等等等等。。(当然,要多少添加多少即可,取之不尽阿)

还有一个重要的信息:

Server IPv4 Address。这个是HE的服务器IP,作中转,后面用到。

有了这两个信息,就可以开始配置了:

setsid ./tb_userspace tb [Server IPv4 address] > /dev/null

ifconfig tb up

ifconfig tb inet6 add [你分配的IPv6地址]/64

ifconfig tb mtu 1480

route -A inet6 add ::/0 dev tb

例如:

setsid ./tb_userspace tb 216.66.22.2 > /dev/null

ifconfig tb up

ifconfig tb inet6 add 2001:470:8:4b9::1/64

ifconfig tb mtu 1480

Debian: route -A inet6 add ::/0 dev tb

Centos: ip -6 route add default dev tb

完成以上工作,你应该就获得IPv6了。

ping一下ipv6.google.com测试一下,假如ping通,那么你的IPv6就拿到手拉。

chencp:~# ping6 ipv6.google.com

PING ipv6.google.com(iad04s01-in-x68.1e100.net) 56 data bytes

64 bytes from iad04s01-in-x68.1e100.net: icmp_seq=1 ttl=59 time=14.9 ms

64 bytes from iad04s01-in-x68.1e100.net: icmp_seq=2 ttl=59 time=15.8 ms

64 bytes from iad04s01-in-x68.1e100.net: icmp_seq=3 ttl=59 time=15.2 ms

至于你后面用这些IP干什么,就不关我的事情拉。

假如以后还需要添加IP:
ifconfig tb inet6 add [要添加的IP]/64

没有评论: