N2N VPN的今生前世(转贴)

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

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

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

      相对于hamachi,n2n最大的优势在于:
      开源,任何人都可以检查代码,看看是否有猫腻,而hamachi是闭源的,LogMeIn是否会截获密钥不得而知,一旦截获密钥,就可以对流经hamachi服务器的数据包进行解码。n2n的加解密过程由edge node实现,只有两端的用户知道协商好的共享密钥,super node无从知晓。
       灵活性,n2n允许用户在Internet上自行创建super node,也可以利用任何一个公开的super node。hamachi用户则必须登录到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 main contrib non-free
:wq
alfie:~# aptitude update

       2、下载&编译

alfie:~# apt-get source n2n
;从mentors中下载n2n的源代码
alfie:~# apt-get install fakeroot build-essential devscripts
;安装编译环境所需的组件,debuild是devscripts软件包中的一个脚本,编译的时候需要用到
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 --install 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软件,优秀的设计理念将会为它带来大量的用户群,随着时间的流逝,SoftEther,VNN,hamachi将成为过眼烟云,唯有开源的n2n才是永恒。

原文链接:http://bbs.chinaunix.net/thread-1982016-1-1.html


65.22%(15)

34.78%(8)
上一页 1 2

发表评论

*