1. ?? 概述
N2N 是一款開源的P2P VPN 軟件,其作者是著名的開源網(wǎng)管軟件ntop的作者Luca Deri。
N2N 是一個雙層架構(gòu)的VPN ,它讓用戶能夠在網(wǎng)絡(luò)層上開發(fā)P2P應(yīng)用的典型功能,而不是在應(yīng)用層上開發(fā)。這意味著用戶能夠獲取本地IP一樣的可見度(比方說,同一個n2n網(wǎng)絡(luò)內(nèi)的兩臺PC機能夠相互ping通),而且能夠通過n2n虛擬網(wǎng)內(nèi)的IP地址相互訪問,而不必關(guān)心當(dāng)前所屬的物理網(wǎng)絡(luò)地址。能夠這樣說,OpenVPN是把SSL從應(yīng)用層轉(zhuǎn)移到網(wǎng)絡(luò)層實現(xiàn)(比方說實現(xiàn)https協(xié)議),而n2n則是把P2P的實現(xiàn)從應(yīng)用層轉(zhuǎn)移到網(wǎng)絡(luò)層。
?
2.???????? N2N 設(shè)計的主要功能
l???????? N2N 是基于P2P 協(xié)議之上的兩個私有網(wǎng)絡(luò)間的加密層
l???????? 加密是在edge 節(jié)點上運行的,使用開放的協(xié)議,用戶自定義密鑰:你自己控制自己的安全,不須要托付給第三方公司
l???????? 每一個n2n 用戶能夠同一時候隸屬于多個網(wǎng)絡(luò)
l???????? 有NAT和穿越防火墻的功能,即使n2n節(jié)點位于私網(wǎng)中,也可以訪問,防火墻不再是在 IP 層的直接溝通和交流的障礙
l???????? N2N 網(wǎng)絡(luò)不是獨立的,它是可以跨越N2N 和非N2N網(wǎng)絡(luò)路由的
3.?? N2N 架構(gòu)組件
l???????? Edge 節(jié)點:用戶PC 機上安裝的用于建立n2n網(wǎng)絡(luò)的軟件。差點兒每一個edge節(jié)點都會建立一個tun/tap設(shè)備,作為接入n2n網(wǎng)絡(luò)的入口。
l???????? Supernode 超級節(jié)點:它在edge 節(jié)點間建立握手,或為位于防火墻之后的節(jié)點中轉(zhuǎn)數(shù)據(jù)。它的基礎(chǔ)作用是注冊節(jié)點的網(wǎng)絡(luò)路徑,并為不能直通的節(jié)點做路由,可以直通的節(jié)點間通信,是P2P的。
?
Edge 節(jié)點間通過虛擬的tap 網(wǎng)卡交互。每一個tap網(wǎng)卡都是一個n2n edge節(jié)點。每臺PC機能夠有多個tap網(wǎng)卡,所以,在n2n網(wǎng)絡(luò)中,同一臺PC機能夠?qū)儆诙鄠€網(wǎng)絡(luò)。
?
4.???????? N2N 網(wǎng)絡(luò)構(gòu)架圖
?
?
當(dāng)中super node 提供場所,讓兩個位于NAT/防火墻之后的edge node進行會面,一旦兩方完畢首次握手,剩下的數(shù)據(jù)流就之發(fā)生在兩個edge node之間,假設(shè)有一方的NAT屬于對稱型(symmetrical),super node則還需繼續(xù)為兩方提供數(shù)據(jù)包的轉(zhuǎn)發(fā);edge node負(fù)責(zé)數(shù)據(jù)流的加解密,原理非常easy。
?
對于一個VPN
而言,主要涉及封裝和加解密兩個步驟,edge node使用UDP協(xié)議進行封裝,目的是為了更好的兼容防火墻的策略,由于非常多防火墻禁用了非TCP/UDP協(xié)議禁用。加密算法則採用了twofish,開源、簡便,處理速度快。
5.???????? 安裝及使用方法
源代碼直接從SVN 上獲取,里面包括了V1和V2兩個版本號,我編譯的是V2版本號
#svn co https://svn.ntop.org/svn/ntop/trunk/n2n
#cd # cd n2n/n2n_v2
#make
#make install
?
編譯安裝后,多了兩個應(yīng)用: supernode 和edge
l ??????? 啟動 supernode
# supernode -l <listening port>
參數(shù)-l 是監(jiān)聽的port,進程缺省是執(zhí)行在后臺的。可選參數(shù):
supernode usage
|
?
l???????? Ege 的使用方法:
#edge
-a 10.10.0.1 -c mypbxn2n -k mypbxn2n -l 192.168.122.180:8888
edge -a
虛擬IP -c
你的虛擬網(wǎng)名 -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???????? Windows 版
我沒有在Win32 下自己編譯, http://www.vpnhosting.cz/n2nguien.exe 提供了一個安裝包,里面包括了V1 和V2版本號,注意使用時和自己所選版本號的匹配。
?
單擊 advanced 按鍵,勾選Enable packet forwarding through n2n community
?
注意在win7下, 安裝文件夾下的全部可執(zhí)行文件 ,均須要以管理員身份執(zhí)行。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
