用N2N搭建简单的VPN

系统 2765 0

1.    概述

N2N 是一款开源的P2P VPN 软件,其作者是著名的开源网管软件ntop的作者Luca Deri。

N2N 是一个双层架构的VPN ,它让用户能够在网络层上开发P2P应用的典型功能,而不是在应用层上开发。这意味着用户能够获取本地IP一样的可见度(比方说,同一个n2n网络内的两台PC机能够相互ping通),而且能够通过n2n虚拟网内的IP地址相互訪问,而不必关心当前所属的物理网络地址。能够这样说,OpenVPN是把SSL从应用层转移到网络层实现(比方说实现https协议),而n2n则是把P2P的实现从应用层转移到网络层。

 

2.         N2N 设计的主要功能

l         N2N 是基于P2P 协议之上的两个私有网络间的加密层

l         加密是在edge 节点上运行的,使用开放的协议,用户自定义密钥:你自己控制自己的安全,不须要托付给第三方公司

l         每一个n2n 用户能够同一时候隶属于多个网络

l         有NAT和穿越防火墙的功能,即使n2n节点位于私网中,也可以訪问,防火墙不再是在 IP 层的直接沟通和交流的障碍

l         N2N 网络不是独立的,它是可以跨越N2N 和非N2N网络路由的

3.   N2N 架构组件

l         Edge 节点:用户PC 机上安装的用于建立n2n网络的软件。差点儿每一个edge节点都会建立一个tun/tap设备,作为接入n2n网络的入口。

l         Supernode 超级节点:它在edge 节点间建立握手,或为位于防火墙之后的节点中转数据。它的基础作用是注冊节点的网络路径,并为不能直通的节点做路由,可以直通的节点间通信,是P2P的。

 

Edge 节点间通过虚拟的tap 网卡交互。每一个tap网卡都是一个n2n edge节点。每台PC机能够有多个tap网卡,所以,在n2n网络中,同一台PC机能够属于多个网络。

 

4.         N2N 网络构架图

用N2N搭建简单的VPN

 

用N2N搭建简单的VPN

 

当中super node 提供场所,让两个位于NAT/防火墙之后的edge node进行会面,一旦两方完毕首次握手,剩下的数据流就之发生在两个edge node之间,假设有一方的NAT属于对称型(symmetrical),super node则还需继续为两方提供数据包的转发;edge node负责数据流的加解密,原理非常easy。

 

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

5.         安装及使用方法

源代码直接从SVN 上获取,里面包括了V1和V2两个版本号,我编译的是V2版本号

#svn co https://svn.ntop.org/svn/ntop/trunk/n2n

#cd # cd n2n/n2n_v2

#make

#make install

 

编译安装后,多了两个应用: supernode 和edge

l         启动 supernode

# supernode -l <listening port>

參数-l 是监听的port,进程缺省是执行在后台的。可选參数:

supernode usage
-l <lport>     
Set UDP main listen port to <lport>
-f              Run in foreground.
-v              Increase verbosity. Can be used multiple times.
-h              This help message.

 

l         Ege 的使用方法:

#edge -a 10.10.0.1 -c mypbxn2n -k mypbxn2n -l 192.168.122.180:8888
edge -a
虚拟IP -c 你的虚拟网名 -k password  -l supernodeip:port

edge -d <tun device> -a [static:|dhcp:]<tun IP address> -c <community> [-k <encrypt key> | -K <key file>] [-s <netmask>] [-u <uid> -g <gid>][-f][-m <MAC address>]
-l <supernode host:port> [-p <local port>] [-M <mtu>] [-r] [-E] [-v] [-t <mgmt port>] [-b] [-h]

-d <tun device>         
| tun device name
-a <mode:address>        | Set interface address. For DHCP use '-r -a dhcp:0.0.0.0'
-c <community>           | n2n community name the edge belongs to.
-k <encrypt key>         | Encryption key (ASCII) - also N2N_KEY=<encrypt key>. Not with -K.
-K <key file>            | Specify a key schedule file to load. Not with -k.
-s <netmask>             | Edge interface netmask in dotted decimal notation (255.255.255.0).
-l <supernode host:port> | Supernode IP:port
-b                       | Periodically resolve supernode IP
                         : (when supernodes are running on dynamic IPs)
-p <local port>          | Fixed local UDP port.
-u <UID>                 | User ID (numeric) to use when privileges are dropped.
-g <GID>                 | Group ID (numeric) to use when privileges are dropped.
-f                       | Do not fork and run as a daemon; rather run in foreground.
-m <MAC address>         | Fix MAC address for the TAP interface (otherwise it may be random)
                         : eg. -m 01:02:03:04:05:06
-M <mtu>                 | Specify n2n MTU of edge interface (default 1400).
-r                       | Enable packet forwarding through n2n community.
-E                       | Accept multicast MAC addresses (default=drop).
-v                       | Make more verbose. Repeat as required.
-t                       | Management UDP Port (for multiple edges on a machine).

Environment variables:
  N2N_KEY                | Encryption key (ASCII). Not with -K or -k.

 

l         Windows

我没有在Win32 下自己编译, http://www.vpnhosting.cz/n2nguien.exe 提供了一个安装包,里面包括了V1 和V2版本号,注意使用时和自己所选版本号的匹配。

  用N2N搭建简单的VPN

单击 advanced 按键,勾选Enable packet forwarding through n2n community

  用N2N搭建简单的VPN

注意在win7下, 安装文件夹下的全部可执行文件 ,均须要以管理员身份执行。

用N2N搭建简单的VPN


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论