如上图所示,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
最新评论
By DKLJSAJKFL
By DKLJSAJKFL
By rishi513
By rishi083
By leanbiome supplement
By leanbiome website