地球智慧乙太網路交換機

地球智慧乙太網路交換機
“您可以透過多種方式創建解決方案(解決問題),但最昂貴和/或流行的方法並不總是最有效的!”

前言

大約三年前,在開發災難資料復原的遠端模型的過程中,我遇到了一個沒有立即註意到的障礙——社區資源中缺乏有關網路虛擬化的新的原始解決方案的資訊。 

所開發模型的演算法規劃如下: 

  1. 一位聯繫我的遠端用戶,他的電腦曾經拒絕啟動,顯示「系統磁碟未偵測到/未格式化」的訊息,使用生活USB載入它。 
  2. 在啟動過程中,系統會自動連接到安全的專用本地網絡,除了本身還包含管理員工作站(在本例中為筆記型電腦)和 NAS 節點。 
  3. 然後我連接 - 要么恢復磁碟分割,要么從那裡提取資料。

最初,我在我控制的網路中的本機路由器上使用 VPN 伺服器來實現此模型,然後在租用的 VDS 上實現。 但是,正如經常發生的那樣,根據奇澤姆第一定律,如果下雨,互聯網提供商的網絡就會癱瘓,那麼商業實體之間的糾紛將導致服務提供商失去“能量”..... .

因此,我決定先制定必要的工具必須滿足的基本要求。 首先是權力下放。 其次,考慮到我有幾個這樣的生活USB,每個USB都有一個單獨的隔離網路。 好吧,第三,快速連接到各種設備的網路並對其進行簡單的管理,包括以防我的筆記型電腦也成為上述法律的受害者。

基於此,在花了兩個半月對幾個不太合適的選項進行實際研究後,我決定嘗試另一個來自當時我不認識的新創公司的工具,即 ZeroTier。 我後來從未後悔過。

在這些新年假期期間,為了了解自那個難忘的時刻以來內容的情況是否發生了變化,我以 Habr 作為來源,對有關該主題的文章的可用性進行了選擇性審核。 對於搜尋結果中的查詢“ZeroTier”,只有三篇文章提到它,而且沒有一篇文章至少有簡短的描述。 儘管其中有由 ZeroTier, Inc. 創始人本人撰寫的一篇文章的翻譯。 — 亞當·伊里門科.

結果令人失望,促使我開始更詳細地討論 ZeroTier,讓現代「探索者」不必走我走的路。

那你是什麼?

開發人員將 ZeroTier 定位為地球的智慧乙太網路交換器。 

「它是一個分散式網路管理程序,建構在加密安全的全球點對點 (P2P) 網路之上。 一種類似於企業 SDN 交換機的工具,旨在透過本地和全球物理網路組織虛擬網絡,能夠連接幾乎任何應用程式或設備。”

這更多的是行銷描述,現在是技術特徵。

▍內核: 

ZeroTier Network Hypervisor 是一個獨立的網路虛擬化引擎,它在全球加密的對等 (P2P) 網路之上模擬乙太網路(類似於 VXLAN)。

ZeroTier 中使用的協定是原創的,儘管其外觀與 VXLAN 和 IPSec 類似,並且由兩個概念上獨立但密切相關的層組成:VL1 和 VL2。

文件連結

▍VL1是一個基本的點對點(P2P)傳輸層,一種「虛擬電纜」。

“全球資料中心需要一個‘全球佈線室’。”

在傳統網路中,L1(OSI 第 1 層)是指承載資料的實際電纜或無線電以及對其進行調變和解調的實體收發器設備晶片。 VL1 是一個點對點 (P2P) 網絡,它執行相同的操作,使用加密、身份驗證和其他網路技巧根據需要組織虛擬電纜。

此外,它會自動、快速地完成此操作,無需使用者參與啟動新的 ZeroTier 節點。

為了實現這一點,VL1 的組織方式與網域名稱系統類似。 網路的核心是一組高可用的根伺服器,其作用類似於 DNS 根名稱伺服器。 目前,主要(行星)根伺服器由開發商 ZeroTier, Inc. 控制。 並作為免費服務提供。 

但是,可以建立自訂根伺服器 (lun),以便您可以:

  • 減少對 ZeroTier, Inc. 基礎設施的依賴; 文件連結
  • 透過最大限度地減少延誤來提高生產力; 
  • 若網路連線遺失,仍可繼續正常運作。

最初,節點啟動時彼此之間沒有直接連接。 

VL1 上的每個對等方都有一個唯一的 40 位元(10 個十六進位)ZeroTier 位址,與 IP 位址不同,它是一個不包含路由資訊的加密識別碼。 該地址是根據公鑰/私鑰對的公共部分計算得出的。 節點的地址、公鑰和私鑰共同構成其身分。

Member ID: df56c5621c  
            |
            ZeroTier address of node

至於加密,這是單獨一篇文章的原因。

文件連結

為了建立通信,對等方首先將資料包發送到根伺服器樹“向上”,當這些資料包穿過網路時,它們會沿途隨機創建前向通道。 這棵樹不斷地嘗試“自行崩潰”,以便針對其儲存的路線圖進行自身最佳化。

建立點對點連線的機制如下:

地球智慧乙太網路交換機

  1. 節點 A 想要向節點 B 發送封包,但由於它不知道直接路徑,因此將封包向上游傳送到節點 R(moon,使用者的根伺服器)。
  2. 如果節點 R 與節點 B 有直接連接,則它會在那裡轉送封包。 否則,它會在到達行星根之前將資料包向上游發送。行星根了解所有節點,因此如果節點 B 在線,資料包最終將到達節點 B。
  3. 節點R 也會向節點A 發送稱為“集合點”的訊息,其中包含有關如何到達節點B 的提示。同時,將封包轉送到節點B 的根伺服器會傳送一條“集合點”,告知它如何到達節點B。到達節點A。
  4. 節點 A 和 B 接收其會合訊息並嘗試向彼此發送測試訊息,以試圖突破沿途遇到的任何 NAT 或狀態防火牆。 如果有效,則建立直接連接,並且資料包不再來回傳輸。

如果無法建立直接連接,則將透過中繼繼續通信,並繼續嘗試直接連接,直到獲得成功結果。 

VL1 還具有用於建立直接連接的其他功能,包括 LAN 對等發現、對稱 IPv4 NAT 遍歷的連接埠預測以及使用 uPnP 和/或 NAT-PMP(如果在本地實體 LAN 上可用)的明確連接埠對應。

→ 文件連結

▍VL2是一種類似VXLAN的乙太網路虛擬化協議,具有SDN管理功能。 熟悉的作業系統和應用程式通訊環境...

與 VL1 不同,建立 VL2 網路 (VLAN) 並將節點連接到它們以及管理它們需要使用者的直接參與。 他可以使用網路控制器來做到這一點。 本質上,它是一個常規的 ZeroTier 節點,其中控制器功能透過兩種方式控制:透過更改檔案直接控制,或按照開發人員強烈建議,使用已發布的 API。 

這種管理 ZeroTier 虛擬網路的方法對於一般人來說不是很方便,因此有幾種 GUI:
 

  • 開發商 ZeroTier 提供的一款,作為公有雲 SaaS 解決方案提供,有四種訂閱計劃,包括免費,但託管設備數量和支援等級有限
  • 第二個來自獨立開發人員,功能簡化,但可作為私有開源解決方案在本地或雲端資源上使用。

VL2 在 VL1 之上實現並由其傳輸。 但是,它繼承了 VL1 端點的加密和身份驗證,並且還使用其非對稱金鑰來簽署和驗證憑證。 VL1 可讓您實現 VL2,而無需擔心現有的實體網路拓撲。 即連通性和路由效率問題屬於VL1問題。 重要的是要了解 VL2 虛擬網路和 VL1 路徑之間沒有連接。 與有線 LAN 中的 VLAN 多重化類似,共用多個網路成員資格的兩個節點之間仍只有一條 VL1(虛擬電纜)路徑。

每個 VL2 網路 (VLAN) 由 64 位元(16 進位)ZeroTier 網路位址標識,其中包含控制器的 40 位元 ZeroTier 位址和標識該控制器建立的網路的 24 位元數字。

Network ID: 8056c2e21c123456
            |         |
            |         Network number on controller
            |
            ZeroTier address of controller

當節點加入網路或請求網路設定更新時,它會向網路控制器發送網路設定請求訊息(透過VL1)。 然後,控制器使用節點的 VL1 位址在網路上尋找它並向其發送適當的憑證、憑證和設定資訊。 從VL2虛擬網路的角度來看,VL1 ZeroTier位址可以被認為是一個巨大的全域虛擬交換器上的連接埠號碼。

網路控制器向給定網路的成員節點發出的所有憑證均使用控制器的金鑰進行簽名,以便所有網路參與者都可以驗證它們。 憑證具有控制器產生的時間戳,允許進行相對比較,而無需存取主機的本機系統時鐘。 

憑證僅頒發給其所有者,然後發送給想要與網路上其他節點通訊的對等點。 這使得網路可以擴展到巨大的規模,而無需在節點上快取大量憑證或不斷聯繫網路控制器。

ZeroTier 網路透過簡單的發布/訂閱系統支援多播分發。

文件連結

當節點希望接收特定通訊群組的多播廣播時,它會向與其通訊的網路的其他成員以及網路控制器通告該群組中的成員資格。 當節點希望發送多播時,它同時訪問其最近發布的快取並定期請求其他發布。

廣播(乙太網路 ff: ff: ff: ff: ff: ff)被視為所有參與者都訂閱的多播群組。 如果不需要,可以在網路層級停用它以減少流量。 

ZeroTier 模擬真實的乙太網路交換器。 這一事實使得有可能執行 使用常規乙太網路橋接器在資料鏈路層級將建立的虛擬網路與其他乙太網路(有線 LAN、WiFi、虛擬背板等)結合。

為了充當橋接器,網路控制器必須指定一個主機。 該方案是出於安全原因而實施的,因為普通網路主機不允許從除其 MAC 位址之外的來源發送流量。 指定為網橋的節點還使用特殊模式的多播演算法,該模式在所有廣播流量和 ARP 請求的群組訂閱和複製期間更主動、更有針對性地與它們進行互動。 

該交換器還能夠建立公共和自組織網路、QoS 機制和網路規則編輯器。

▍節點:

零級一級 是一種運行在筆記型電腦、桌上型電腦、伺服器、虛擬機器和容器上的服務,透過虛擬網路連接埠提供與虛擬網路的連接,類似於 VPN 用戶端。 

安裝並啟動服務後,您可以使用 16 位元位址連線到虛擬網路。 每個網路都顯示為系統上的虛擬網路端口,其行為就像常規乙太網路端口一樣。

ZeroTier One 目前可用於以下作業系統和系統。

操作系統:

  • 微軟Windows - MSI 安裝程式 x86/x64
  • MacOS的 - PKG安裝程序
  • 蘋果iOS - 應用程式商店
  • Android - 應用程式商店
  • Linux - DEB/轉速
  • FreeBSD的 - FreeBSD 軟體包

NAS:

  • Synology NAS
  • QNAP NAS
  • 西數 MyCloud NAS

Другие:

  • 碼頭工人 - 泊塢視窗文件
  • OpenWRT的 - 社區端口
  • 應用程式嵌入 - SDK(libzt)

總結以上所有內容,我要指出的是,ZeroTier 是一個出色且快速的工具,可將實體、虛擬或雲端資源組合到公共本地網路中,能夠將其劃分為 VLAN,並且不存在單點故障。

這就是關於 Habr 的 ZeroTier 的第一篇文章格式的理論部分 - 這可能就是全部! 在下一篇文章中,我計劃在實踐中演示基於 ZeroTier 的虛擬網路基礎設施的創建,其中將使用具有私有開源 GUI 模板的 VDS 作為網路控制器。 

親愛的讀者! 您在專案中使用 ZeroTier 技術嗎? 如果沒有,您使用什麼工具來連網您的資源?

地球智慧乙太網路交換機

來源: www.habr.com

添加評論