我的前世你的今生:P2P VPN的今生前世

  企业发展到定规模时候大都在全国乃至全球设置分支机构它们地理位置分散在VPN没有出现的前这些分支机构的间网络互联只能通过租用专线实现然而租用专线费用高昂般企业无法承受

  随着互联网发展互联网接入越来越廉价嗅觉敏锐厂家推出了替代专线解决方案:在Internet基础上实现张虚拟专用网络这就是VPN(virtual private network 虚拟专用网)由来方面采用了Internet作为传输媒介租用成本大大降低;另方面通过IPsec等多种安全协议实现了等同于专线般安全效果因此普推出便大受欢迎checkpo、cisco、 juniper等都有成熟商业解决方案然而它们针对是企业市场对于个人用户而言还是过于高贵了直到2003年情况才发生改变

  2003年日本筑波大学名学生登游大发布了SoftEther这款软件Software该软件Software允许用户将两台位于NAT/防火墙的后电脑实现互联这在当时引起了很大轰动为什么会这样呢?请看下图:

P2P VPN<img src='/icons/60045de.gif' />今生前世
  熟悉TCP/IP读者应该知道在互联网上通信双方都必须有公网IP然而公网IP数量有限往往是多个人通过NAT方式共享个公网IP所以只能是由私网用户去访问公网服务器无法由公网用户直接访问私网主机这在早期互联网应用中倒也相安无事当时上网主要是浏览新闻

  随着互联网发展p2p应用层出不穷1999年诞生napster顿时名动天下它是第个以p2p方式共享文件软件Software后来相继诞生了许许多多p2p应用然而它们都只是在应用层实现了p2p软件Software提供什么应用用户就只能使用这些应用而SoftEther区别它直接在网络层实现了p2p换句话说就是用户透过SoftEther可以实现联网游戏、文件共享、远程访问、视频会议等大量互联网应用所以这在当时赢得大量网友青睐为什么?CS、魔兽这些网络游戏需要在联网对战而玩友电脑大都隐匿在NAT的后SoftEther为他们实现了互联美好愿望

  2004年4月份SoftEther公司成立

  2004年8月SoftEther正式推出1.0版本开始闭源开始收钱

  2006年推出2.0版更名为PacketiX VPN号称重写了全部源代码跟SoftEther 1.0点关系都没有和个人用户渐行渐远……

  提起SoftEther就不得不提VNNVNN是国人开发款类似软件Software虽然其推出时间要比SoftEther早些但是直没有得到广泛关注后来2004年5月份登游大抱怨VNN主页抄袭了SoftEther主页样式还在日本媒体中大势宣传当时CCF精品技术论坛上还掀起了番激烈讨论(http://bbs.et8.net/bbs/prthread.php?t=527295&pp=100)这时VNN才逐渐进入众人视野其实两款软件Software实现原理有很大区别SoftEther通过在ssl over tcp来保证安全而VNN使用udp进行封装;SoftEther客户端需要在互联网上找个公用虚拟hub来实现互联而VNN客户端需要到VNN公司服务器上进行注册才能实现连接;SoftEther客户端的间通信需要通过虚拟hub中转而VNN客户端注册完毕的后就可以实现点对点互联它们的间唯共同点就是都使用了虚拟网卡令人惊奇是两家发生矛盾原因竟然是主页过于雷同而不是源代码抄袭这在软件Software史上倒是头权当作是茶余饭后谈资

  VNN是款闭源软件Software不提供服务器版本用户需要登录到官方服务器上进行验证的后然后才能建立p2p通信隧道现在由北京宇华亿欣科技有限公司推广运营已经发展到了4.0版功能很丰富只是需要收取服务费这表明它已经不跟个人用户玩了

  有压迫地方就有起义有需求地方就有市场2005年LogMeIn公司看中了p2p VPN个人市场推出了hamachi实现原理跟VNN类似而且可在多种OS中运行win2k、win2k3、vista自然不在话下还可以在Linux和OSX下跑甚至破天荒推出了Nokia770版本(http://files.hamachi.cc/linux/nokia-770/)这对移动商务人士来说可是大噱头时至今日hamachi已经发展到了1.0.3值得是hamachi版本升级非常谨慎从0.9.9.9到1.0总共发布了61个测试版本时间跨度为2年除了foobar和wine估计无人能敌了

  hamachi相对于SoftEther/VNN优势在于:

  l 对于个人用户免费;

  l 零配置使用非常简单;

  l 体贴管理功能由用户自己组建网络管理组内成员;

  l 采用了RSA、DH group、AES256和HMAC-SHA1多种安全技术;

  这些优势对个人用户是非常具有杀伤力单单免费这项就可以把SoftEther和VNN踩在脚下然而hamachi安全性还是值得怀疑请看下图:

P2P VPN<img src='/icons/60045de.gif' />今生前世
  【IT168技术文档】用户需要登录到hamachi服务器进行注册才能建立隧道由于hamachi是款闭源商业软件SoftwareLogMeIn公司是否会截获用户数据流就不得而知了因此在p2p VPN这个肥沃市场中软件Software公司要真要好好想想商务模式否则技术实现方案再好用户不接受也是白搭

  hamachi就这样不温不火发展着直到2008年ntop作者Luca Deri开始研究p2p VPN方面看到公众对p2p VPN有着强烈需求方面又不满足已有产品现状于是n2n诞生了

P2P VPN<img src='/icons/60045de.gif' />今生前世
  如上图所示n2n是个 2层架构VPN网络其中super node提供场所让两个位于NAT/防火墙的后edge node进行会面旦双方完成首次握手剩下数据流就的发生在两个edge node的间如果有NAT属于对称型(symmetrical)super node则还需继续为双方提供数据包转发;edge node负责数据流加解密原理很简单

  对于个VPN而言主要涉及封装和加解密两个步骤edge node使用UDP协议进行封装是为了更好兼容防火墙策略很多防火墙禁用了非TCP/UDP协议禁用加密算法则采用了twofish好处开源、简便处理速度快

  为了降低设计难度n2n利用了tap/tun虚拟网卡这样做得好处是方面软件Software尺寸极小方面源码依赖性极低可以很容易移植到嵌入式设备中目前有openwrt版本在未来计划中还将移植到android和iPhone中

  相对于hamachin2n最大优势在于:

  1. 开源任何人都可以检查代码看看是否有猫腻而hamachi是闭源LogMeIn是否会截获密钥不得而知旦截获密钥就可以对流经hamachi服务器数据包进行解码n2n加解密过程由edge node实现只有两端用户知道协商好共享密钥super node无从知晓

  2. 灵活性n2n允许用户在Internet上自行创建super node也可以利用任何个公开super nodehamachi用户则必须登录到LogMeIn服务器才能创建隧道

  n2n支持OS也非常广Linux、FreeBSD、MAC OSX、甚至windows不过由于n2n只提供源代码需要用户自行手工编译

  下面就介绍下如何在Debian Lenny中安装和使用n2n

  1. 在sources.list中加入mentors.debian.org

  alfie:~# vim /etc/apt/sources.list

  deb-src http://mentors.debian.org/debian/ unstable contrib non-free

  :wq

  alfie:~# aptitude update

  2. 下载&编译

  alfie:~# apt-get source n2n

  ;从mentors中下载n2n源代码

  alfie:~# apt-get fakeroot build-essential devscripts

  ;安装编译环境所需组件debuild是devscripts软件Software包中个脚本编译时候需要用到

  alfie:~# apt-get build-dep n2n

  ;编译n2n过程可能需要些lib支持该步骤就是让debian判断并下载安装相关lib

  alfie:~# cd /usr/src/n2n_1.2.2~svn3653

  alfie:/usr/src/n2n_1.2.2~svn3653# debuild -us -uc

  ;如果不是Debian维护者需要打上-us和-uc这两个标签避免编译完后签名

  3. 安装

  alfie:/usr/src/n2n_1.2.2~svn3653# cd ..

  alfie:/usr/src/# dpkg -- n2n_1.2.2~svn3653_i386.deb

  4. 使用

  家里电脑

  alfie:~# edge -d n2n0 -c linuxabc -k linuxabc -a 10.1.2.1 -l 88.86.108.50:82

  公司电脑

  ds-server:~# edge -d n2n0 -c linuxabc -k linuxabc -a 10.1.2.2 -l 88.86.108.50:82

  介绍说明:88.86.108.50是http://www.vpnhosting.cz/index.php/N2n-at-vpnhosting.cz.html提供个公共super node

  这样就可以将两台位于NAT/防火墙的后电脑互联起来了是不是特别简单呢?

  n2n是个很有前途p2p VPN软件Software优秀设计理念将会为它带来大量用户群随着时间流逝SoftEtherVNNhamachi将成为过眼烟云唯有开源n2n才是永恒



Tags:  前世今生

延伸阅读

最新评论

发表评论