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

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