GNB去中心化 P2P 內(nèi)網(wǎng)穿透 VPN
GNB是一個開源的去中心化的具有極致內(nèi)網(wǎng)穿透能力的通過P2P進行三層網(wǎng)絡交換的虛擬組網(wǎng)系統(tǒng).
gnb_udp_over_tcp是一個為GNB開發(fā)的通過tcp鏈路中轉UDP分組轉發(fā)的服務,也可以為其他基于UDP協(xié)議的服務中轉數(shù)據(jù)。
出于安全考慮,GNB項目相關代碼會開源。
內(nèi)網(wǎng)穿透 去中心化 P2P 虛擬組網(wǎng)
GNB獨有的去中心化組網(wǎng)技術可以將分布在世界不同地方的計算機組成一個虛擬局域網(wǎng),即使這些計算機深藏于沒有公網(wǎng)ip的局域網(wǎng)里,不需要公網(wǎng)服務器中轉就可以實現(xiàn)TCP/IP通訊。
極致的鏈路能力
GNB有四套機制確保在主機所在網(wǎng)絡發(fā)生變化時能夠快速恢復數(shù)據(jù)鏈路并且在某些場景下還能保持應用層的網(wǎng)絡連接,以下是一個經(jīng)過反復測試的例子: 1、在肯德基打開蘋果筆記電腦本接入肯德基的免費Wi-Fi; 2、在蘋果筆記電腦啟動GNB的邊緣節(jié)點,此時可以通過 ssh 客戶端登錄到家中的同樣是接入GNB網(wǎng)絡的一臺Linux; 3、合上筆記本電腦并帶著走出肯德基。 4、來到麥當勞,打開筆記本,接入麥當勞的免費Wi-Fi,稍等半分鐘網(wǎng)絡恢復; 5、此時蘋果筆記本中的 ssh 客戶端與家中Linux的ssh的tcp連接沒有斷開,依然是通的。
以上例子僅是說明應用層無法感知GNB網(wǎng)絡的虛擬鏈路的變化以及GNB在網(wǎng)絡發(fā)生變化時快速恢復鏈路的能力。事實上,對于一些有心跳機制的tcp通信協(xié)議如果在一定時間內(nèi)沒有收到心跳包,應用層就會自動斷開連接。
數(shù)據(jù)安全
GNB節(jié)點間基于橢圓曲線數(shù)字簽名實現(xiàn)可靠的身份驗證
GNB節(jié)點之間的通信密鑰由 ED25519共享密鑰+同步時鐘(可選)+sha512構成
在同步時鐘的作用下,節(jié)點的加密密鑰可以每分鐘或每小時同步更新一次,但這要求各節(jié)點時鐘的必須要同步,在無法確保主機時鐘同步的情況下可以選擇關閉這個特性。
多平臺支持
GNB用C語言開發(fā),編譯時不需要引用第三方庫文件,可以方便移植到當前流行的操作系統(tǒng)上。
GNB目前支持的操作系統(tǒng)及平臺有 Linux_x86_64,Windows10_x86_64, macOS,F(xiàn)reeBSD_AMD64,OpenBSD_AMD64,樹莓派,OpenWRT;大至服務器環(huán)境,桌面系統(tǒng),小至僅有32M內(nèi)存的OpenWRT路由器都能很好的運行GNB網(wǎng)絡。
