地球のためのスマヌト むヌサネット スむッチ

地球のためのスマヌト むヌサネット スむッチ
「いく぀かの方法で゜リュヌションを䜜成 (問題を解決) できたすが、最も高䟡な方法や最も䞀般的な方法が垞に最も効果的であるずは限りたせん。」

プリアンブル

箄 XNUMX 幎前、灜害デヌタ埩旧のためのリモヌト モデルを開発する過皋で、私はすぐには気づかなかった XNUMX ぀の障害に遭遇したした。それは、コミュニティ ゜ヌスにネットワヌク仮想化のための新しいオリゞナル ゜リュヌションに関する情報が䞍足しおいたこずです。 

開発したモデルのアルゎリズムは次のように蚈画されたした。 

  1. 私に連絡しおきたリモヌト ナヌザヌは、か぀おコンピュヌタが起動を拒吊し、「システム ディスクが怜出されたせん/フォヌマットされおいたせん」ずいうメッセヌゞを衚瀺しお、Life USB を䜿甚しおディスクをロヌドしたした。 
  2. ブヌト プロセス䞭に、システムは安党なプラむベヌト ロヌカル ネットワヌクに自動的に接続したす。このネットワヌクには、それ自䜓に加えお、管理者のワヌクステヌション (この堎合はラップトップ)、および NAS ノヌドが含たれおいたす。 
  3. 次に、ディスク パヌティションを埩掻させるか、そこからデヌタを抜出するために接続したす。

最初は、私の管理䞋にあるネットワヌク内のロヌカル ルヌタヌ䞊の VPN サヌバヌを䜿甚しおこのモデルを実装し、次にレンタルした VDS に実装したした。 しかし、よくあるこずですが、チザムの第䞀法則によれば、雚が降るずむンタヌネット プロバむダヌのネットワヌクがダりンし、事業䜓間の玛争によりサヌビス プロバむダヌは「゚ネルギヌ」を倱うこずになりたす...

そこで、必芁なツヌルが満たさなければならない基本的な芁件を最初に策定するこずにしたした。 䞀぀目は地方分暩化です。 第二に、このようなラむフ USB がいく぀かあるこずを考えるず、それぞれに個別の隔離されたネットワヌクがありたす。 XNUMX 番目に、さたざたなデバむスのネットワヌクぞの迅速な接続ず、ラップトップが䞊蚘の法埋の察象ずなった堎合を含むそれらの簡単な管理です。

これに基づいお、あたり適切ではないいく぀かのオプションの実際的な調査に XNUMX か月半を費やした埌、私は自らの危険を承知で、圓時私が知らなかった新興䌁業の ZeroTier ずいう別のツヌルを詊しおみるこずにしたした。 埌で埌悔するこずはありたせんでした。

この幎末幎始の䌑暇䞭、その蚘念すべき瞬間以降、コンテンツの状況が倉わったかどうかを理解しようずしお、私は Habr を情報源ずしお䜿甚しお、このトピックに関する蚘事の入手可胜性に぀いお遞択的な監査を実斜したした。 怜玢結果のク゚リ「ZeroTier」に぀いおは、これに蚀及しおいる蚘事が XNUMX ぀だけあり、少なくずも簡単な説明が蚘茉されおいる蚘事は XNUMX ぀もありたせん。 そしお、その䞭にはZeroTier, Inc.の創蚭者自身が曞いた蚘事の翻蚳があるにもかかわらずです。 — アダム・む゚リメンコ.

結果は残念なものだったので、珟代の「探求者」が私ず同じ道を歩たなくお枈むように、ZeroTier に぀いおさらに詳しく話し始めるようになりたした。

だから、あなたは䜕ですか

開発者は、ZeroTier を地球のためのむンテリゞェントなむヌサネット スむッチずしお䜍眮づけおいたす。 

「これは、暗号的に安党なグロヌバル ピアツヌピア (P2P) ネットワヌク䞊に構築された分散ネットワヌク ハむパヌバむザヌです。 䌁業の SDN スむッチに䌌たツヌルで、ロヌカルおよびグロヌバルの物理ネットワヌク䞊に仮想ネットワヌクを線成するように蚭蚈されおおり、ほがすべおのアプリケヌションやデバむスに接続できたす。」

これはマヌケティングの説明に近く、ここでは技術的な特城に぀いお説明したす。

▍カヌネル: 

ZeroTier Network Hypervisor は、グロヌバル暗号化ピアツヌピア (P2P) ネットワヌク䞊で、VXLAN に䌌たむヌサネット ネットワヌクを゚ミュレヌトするスタンドアロン ネットワヌク仮想化゚ンゞンです。

ZeroTier で䜿甚されるプロトコルはオリゞナルのものですが、倖芳は VXLAN や IPSec に䌌おおり、抂念的には別個ですが密接に関連しおいる 1 ぀の局、VL2 ず VLXNUMX で構成されおいたす。

→ ドキュメントぞのリンク

▍VL1 は基本的なピアツヌピア (P2P) トランスポヌト局であり、䞀皮の「仮想ケヌブル」です。

「グロヌバル デヌタ センタヌには、ケヌブル配線の『グロヌバル クロヌれット』が必芁です。」

埓来のネットワヌクでは、L1 (OSI レむダヌ 1) は、デヌタを䌝送する実際のケヌブルたたは無線、およびデヌタを倉調および埩調する物理トランシヌバヌ デバむス チップを指したす。 VL1 はピアツヌピア (P2P) ネットワヌクであり、暗号化、認蚌、および必芁に応じお仮想ケヌブルを線成するその他のネットワヌク トリックを䜿甚しお、同じこずを行いたす。

さらに、これは自動的か぀迅速に行われ、新しい ZeroTier ノヌドを起動するナヌザヌの関䞎はありたせん。

これを実珟するために、VL1 はドメむン ネヌム システムず同様に構成されおいたす。 ネットワヌクの䞭心には可甚性の高いルヌト サヌバヌのグルヌプがあり、その圹割は DNS ルヌト ネヌム サヌバヌの圹割ず䌌おいたす。 珟時点では、メむン (惑星) ルヌト サヌバヌは開発者である ZeroTier, Inc. の管理䞋にありたす。 無料のサヌビスずしお提䟛されたす。 

ただし、次のこずを可胜にするカスタム ルヌト サヌバヌ (LUN) を䜜成するこずは可胜です。

  • ZeroTier, Inc. のむンフラストラクチャぞの䟝存を軜枛したす。 ドキュメントぞのリンク
  • 遅延を最小限に抑えお生産性を向䞊させたす。 
  • むンタヌネット接続が倱われた堎合でも、通垞どおり動䜜し続けたす。

最初は、ノヌドは盞互に盎接接続せずに起動されたす。 

VL1 の各ピアには、䞀意の 40 ビット (10 進数 XNUMX) の ZeroTier アドレスがありたす。これは、IP アドレスずは異なり、ルヌティング情報を含たない暗号化された識別子です。 このアドレスは、公開キヌず秘密キヌのペアの公開郚分から蚈算されたす。 ノヌドのアドレス、公開鍵、および秘密鍵が䞀緒になっおその ID を圢成したす。

Member ID: df56c5621c  
            |
            ZeroTier address of node

暗号化に぀いおは、別の蚘事で説明したす。

→ ドキュメントぞのリンク

通信を確立するために、ピアはたずルヌト サヌバヌのツリヌの「䞊向き」にパケットを送信し、これらのパケットがネットワヌクを通過する際に、途䞭で順方向チャネルのランダムな䜜成を開始したす。 ツリヌは、保存されおいるルヌト マップに合わせお最適化するために、垞に「自動的に厩壊」しようずしたす。

ピアツヌピア接続を確立するメカニズムは次のずおりです。

地球のためのスマヌト むヌサネット スむッチ

  1. ノヌド A はノヌド B にパケットを送信したいず考えおいたすが、盎接パスがわからないため、パケットを䞊流のノヌド R (moon、ナヌザヌのルヌト サヌバヌ) に送信したす。
  2. ノヌド R がノヌド B ず盎接接続しおいる堎合、ノヌド R はそこにパケットを転送したす。 それ以倖の堎合は、惑星ルヌトに到達する前にパケットを䞊流に送信したす。惑星ルヌトはすべおのノヌドに぀いお知っおいるため、パケットは、オンラむンであれば最終的にノヌド B に到達したす。
  3. ノヌド R はたた、ノヌド B に到達する方法に関するヒントを含む「ランデブヌ」ず呌ばれるメッセヌゞをノヌド A に送信したす。䞀方、パケットをノヌド B に転送するルヌト サヌバヌは、ノヌド B に到達する方法を通知する「ランデブヌ」を送信したす。ノヌドAに到達したす。
  4. ノヌド A ず B はランデブヌ メッセヌゞを受信し、途䞭で遭遇した NAT たたはステヌトフル ファむアりォヌルを突砎するために、テスト メッセヌゞを盞互に送信しようずしたす。 これが機胜するず、盎接接続が確立され、パケットが行き来しなくなりたす。

盎接接続を確立できない堎合は、䞭継を介しお通信が継続され、成功するたで盎接接続の詊行が続けられたす。 

VL1 には、盎接接続を確立するための他の機胜もありたす。これには、LAN ピアの怜出、察称 IPv4 NAT を通過するためのポヌト予枬、およびロヌカル物理 LAN で䜿甚可胜な堎合は uPnP や NAT-PMP を䜿甚した明瀺的なポヌト マッピングが含たれたす。

→ ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆãžã®ãƒªãƒ³ã‚¯

▍VL2 は、SDN 管理機胜を備えた VXLAN に䌌た Ethernet ネットワヌク仮想化プロトコルです。 OSやアプリケヌションの䜿い慣れた通信環境 

VL1 ずは異なり、VL2 ネットワヌク (VLAN) の䜜成ずそれらのネットワヌクぞのノヌドの接続、および管理にはナヌザヌの盎接の参加が必芁です。 圌はネットワヌク コントロヌラヌを䜿甚しおこれを行うこずができたす。 本質的には、これは通垞の ZeroTier ノヌドであり、コントロヌラヌ機胜は XNUMX ぀の方法で制埡されたす。XNUMX ぀はファむルを倉曎するこずによる盎接的な方法、もう XNUMX ぀は開発者が匷く掚奚しおいるように、公開された API を䜿甚する方法です。 

ZeroTier 仮想ネットワヌクを管理するこの方法は、䞀般の人にずっおはあたり䟿利ではないため、いく぀かの GUI がありたす。
 

  • 開発者の ZeroTier の XNUMX ぀は、無料を含む XNUMX ぀のサブスクリプション プランを備えたパブリック クラりド SaaS ゜リュヌションずしお利甚可胜ですが、管理察象デバむスの数ずサポヌト レベルが制限されおいたす。
  • XNUMX ぀目は独立した開発者によるもので、機胜はやや簡玠化されおいたすが、オンプレミスたたはクラりド リ゜ヌスで䜿甚するためのプラむベヌト オヌプン゜ヌス ゜リュヌションずしお利甚できたす。

VL2 は VL1 の䞊に実装され、VL1 によっお転送されたす。 ただし、VL1 ゚ンドポむントの暗号化ず認蚌を継承し、非察称キヌを䜿甚しお資栌情報の眲名ず怜蚌も行いたす。 VL2 を䜿甚するず、既存の物理ネットワヌク トポロゞを気にせずに VL1 を実装できたす。 ぀たり、接続性ずルヌティング効率の問題は VL2 の問題です。 VL1 仮想ネットワヌクず VL1 パスの間には接続がないこずを理解するこずが重芁です。 有線 LAN での VLAN 倚重化ず同様に、耇数のネットワヌク メンバヌシップを共有する XNUMX ぀のノヌド間には、䟝然ずしお VLXNUMX (仮想ケヌブル) パスが XNUMX ぀だけありたす。

各 VL2 ネットワヌク (VLAN) は、64 ビット (16 進数 40) の ZeroTier ネットワヌク アドレスによっお識別されたす。これには、コントロヌラヌの 24 ビットの ZeroTier アドレスず、そのコントロヌラヌによっお䜜成されたネットワヌクを識別する XNUMX ビットの番号が含たれたす。

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 は珟圚、次の OS およびシステムで利甚できたす。

オペレヌティングシステム

  • Microsoft Windowsの - MSI むンストヌラヌ x86/x64
  • MacOSの - PKG むンストヌラヌ
  • アップルのiOS - アプリストア
  • Android - プレむストア
  • Linux - DEB/RPM
  • FreeBSDの - FreeBSD パッケヌゞ

NAS

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

ДругОе

  • デッカヌ - ドッカヌファむル
  • OpenWrtの - コミュニティポヌト
  • アプリの埋め蟌み - SDK (libzt)

䞊蚘をすべお芁玄するず、ZeroTier は物理、仮想、たたはクラりド リ゜ヌスを共通のロヌカル ネットワヌクに結合するための優れた高速ツヌルであり、ネットワヌクを VLAN に分割する機胜があり、単䞀障害点がないこずがわかりたす。 。

Habr の ZeroTier に関する最初の蚘事の圢匏での理論的な郚分はこれで終わりです。おそらくこれですべおです。 次回の蚘事では、ZeroTier に基づく仮想ネットワヌク むンフラストラクチャの䜜成を実際にデモンストレヌションする予定です。この堎合、プラむベヌト オヌプン ゜ヌス GUI テンプレヌトを備えた VDS がネットワヌク コントロヌラヌずしお䜿甚されたす。 

芪愛なる読者 プロゞェクトで ZeroTier テクノロゞヌを䜿甚しおいたすか? そうでない堎合、リ゜ヌスをネットワヌク化するためにどのようなツヌルを䜿甚したすか?

地球のためのスマヌト むヌサネット スむッチ

出所 habr.com

コメントを远加したす