东北大学IPv6 BT六维空间的迁移
六维空间(东北大学IPv6 BT下载站,http://bt.neu6.edu.cn)是由东北大学网络中心开发维护,基于纯IPv6协议访问,提供P2P资源索引类的网站,六维空间这个站名正是由“v6”的谐音变换而来。目前六维空间注册用户数33000多人,网站最高在线1700多人,平均日发帖量20000余篇,平均在线种子数40000左右。
六维空间的前世今生
六维空间的前身是东北大学BT下载站,基于IPv4协议为校园网用户提供校内BT下载服务。使用Linux操作系统,PHP语言编写种子索引页,用MySQL数据库来保存种子相关信息,Apache作为索引页的Web服务器,Tracker服务器端软件使用的Python语言编写的BitTorrent。
2008年初,鉴于当前IPv6网络使用的优惠政策,同时为了提高东北大学校园网IPv6的使用率,我们计划将原面向IPv4用户服务的东北大学BT下载站迁移至IPv6网络,建立为IPv6用户服务的东北大学IPv6 BT下载站。
2008年9月,东北大学IPv6 BT下载站开站,东北大学BT下载站成功从IPv4网络迁移至IPv6网络,开始为IPv6用户提供BT下载服务。
2009年2月,由于网站发展的需要,东北大学IPv6 BT下载站更名为六维空间 – 东北大学IPv6 BT下载站,简称六维空间。
迁移中的问题
东北大学BT下载站迁移前后网站架构图如图2所示,左边是IPv4 BT下载站的架构,右边是IPv6 BT下载站的架构。
图2 东北大学BT下载站迁移前后网站架构
在之前的网站架构中,我们使用Apache作为Web服务器发布资源索引,并使Tracker服务器直接对外提供服务。在新的架构中,我们将Web服务器更换为轻量级的Lighttpd,以FastCGI方式运行PHP,使服务器更节省资源,支持更高的负载。同时在原Tracker服务器前端放置Nginx作为Tracker服务器的反向代理,便于今后为Tracker服务器做水平分布扩展。
1.实现Lighttpd支持IPv6
Lighttpd是一个专门为高性能网站提供安全、快速、兼容性好并且灵活的Web Server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。默认情况下Lighttpd监听在0.0.0.0:80,也就是说只监听IPv4端口,不监听IPv6的端口Lighttpd的配置文件lighttpd/lighttpd.conf默认并不提供IPv6配置选项。
我们可以通过修改配置文件,增加IPv6相关配置以实现Lighttpd支持IPv6,打开Lighttpd的配置文件lighttpd/lighttpd.conf,在适当的位置加入一条配置语句:server.use-ipv6 = “enable”。之后重新启动Lighttpd,会发现他现在已经监听在:::80了,说明支持IPv6的访问了。
2.使用Nginx支持IPv6
Nginx是一个轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。在0.7.36之前,Nginx还不支持监听IPv6端口,在0.7.36版本里,Nginx的HTTP模块加入了IPv6的支持,开始支持监听IPv6端口,允许IPv6的访问。
使Nginx支持IPv6不如Lighttpd那么方便,需要重新编译Nginx的代码,并在编译配置选项中加入:“–with-ipv6”以支持IPv6。编译安装完成后,还需将原配置文件listen部分配置为IPv6的地址:“listen [::]:6969;”。然后重新启动Nginx。
3.修改索引页与Tracker代码
IPv6的地址与IPv4的地址相比,在长度上,以及地址格式上都不一样,虽然IP索引页与Tracker代码属于应用层的范围,不属于网络层,但其中许多代码写法与IPv4地址有关。
例如代码中的用户来源地址合法性验证、安全审核、日志记录等涉及到IPv4地址格式的代码,需一一修改,使他们支持IPv6的地址长度与地址格式。
4.使用uTorrent作为BT客户端
由于目前在IPv4网络中流行的迅雷、BitComet、FlashGet等下载软件不支持IPv6,因此我们建议用户使用支持IPv6网络的uTorrent作为BT下载客户端。
了解用户行为
1.用户来源分析
通过对用户来源地区来源进行统计,得到图3的结果。
图3 用户来源地区统计
可以看到北京地区的IPv6用户占将近一半。并且几乎没有用户是通过搜索引擎搜索访问到六维空间的,可能与当前搜索引擎的机器人不支持IPv6网络有关。因此对于IPv6网络服务的推广使用SEO是没有什么效果的,还需要依靠其他的宣传手段。
2.操作系统使用统计
由于Windows Vista系统可以直接支持IPv6,而Windows XP、Windows 2000等操作系统需要手动安装IPv6协议,因此我们也针对用户所使用的操作系统做了一个统计。如图4。
图4 用户使用的操作系统统计
可以看到Windows XP用户还是占据了很大比例,因此如何能让Windows XP用户更方便地安装IPv6协议,也是我们在推广IPv6网络过程中应该考虑的一项内容。
3.用户行为分析
通过分析用户访问的页面,我们观察到用户使用六维空间主要是分享资源,特别是电影,电视等媒体资源,由于IPv6网络当前的优惠政策,使其较IPv4网络在P2P共享电影,电视等媒体资源方面有很大的优势。
迁移后的思考
在东北大学IPv6 BT下载站从IPv4向IPv6迁移过程中,我们并没有让Tracker服务器直接对外提供服务,而是使用Nginx作为Tracker服务器的前端反向代理服务器,使Nginx起到为Tracker服务器做负载均衡的效果。这种架构模式中,只要Nginx支持IPv6就可以,而不需要关心Tracker服务器与Nginx之间以何种通信方式通信,对用户都是透明不可见的。换句话说,Nginx与Tracker服务器之间也可以通过IPv4协议来通信。
对于目前许多成熟的、却尚未支持IPv6的IPv4应用来说,如果可以使用一些通用的Porxy程序,或者是其他一些地址转换技术,使这些IPv4下的应用迅速地迁移至IPv6网络中来,加速IPv6网络的推广。
尽快成功,我也希望尽快注册一个账号,成为会员,与大家一起分享。