Smart Ethernet Switch pre planétu Zem

Smart Ethernet Switch pre planétu Zem
"Riešenie (vyriešenie problému) môžete vytvoriť niekoľkými spôsobmi, ale najdrahšia a/alebo populárna metóda nie je vždy najefektívnejšia!"

preambuly

Asi pred tromi rokmi som v procese vývoja vzdialeného modelu na obnovu dát po havárii narazil na jednu prekážku, ktorú som si hneď nevšimol – nedostatok informácií o nových originálnych riešeniach pre virtualizáciu siete v komunitných zdrojoch. 

Algoritmus pre vyvinutý model bol naplánovaný takto: 

  1. Vzdialený používateľ, ktorý ma kontaktoval a ktorého počítač raz odmietol naštartovať, zobrazujúci správu „systémový disk nebol rozpoznaný/nenaformátovaný“, ho načíta pomocou life USB. 
  2. Počas bootovacieho procesu sa systém automaticky pripojí k zabezpečenej súkromnej lokálnej sieti, ktorá okrem seba obsahuje aj administrátorskú pracovnú stanicu, v tomto prípade notebook, a NAS uzol. 
  3. Potom sa pripojím - buď na oživenie diskových oddielov, alebo na vytiahnutie dát odtiaľ.

Spočiatku som tento model implementoval pomocou servera VPN na lokálnom routeri v sieti pod mojou kontrolou, potom na prenajatom VDS. Ako sa však často stáva a podľa prvého Chisholmovho zákona, ak prší, sieť poskytovateľa internetu vypadne, potom spory medzi podnikateľskými subjektmi spôsobia, že poskytovateľ služieb stratí „energiu“...

Preto som sa rozhodol najprv sformulovať základné požiadavky, ktoré musí potrebný nástroj spĺňať. Prvým je decentralizácia. Po druhé, vzhľadom na to, že mám niekoľko takýchto životných USB, každé z nich má samostatnú izolovanú sieť. No a do tretice rýchle pripojenie rôznych zariadení do siete a ich jednoduchá správa, a to aj v prípade, že aj môj notebook sa stane obeťou vyššie spomínaného zákona.

Na základe toho a dva a pol mesiaca stráveného praktickým skúmaním niekoľkých nie príliš vhodných možností som sa na vlastné nebezpečenstvo a riziko rozhodol vyskúšať ďalší nástroj od vtedy pre mňa neznámeho startupu s názvom ZeroTier. Čo som neskôr nikdy neľutoval.

Počas týchto novoročných sviatkov som v snahe pochopiť, či sa od toho pamätného momentu zmenila situácia s obsahom, vykonal selektívny audit dostupnosti článkov na túto tému, pričom ako zdroj som použil Habra. Pri dopyte „ZeroTier“ vo výsledkoch vyhľadávania sa o ňom zmieňujú iba tri články a ani jeden s aspoň stručným popisom. A to aj napriek tomu, že medzi nimi je aj preklad článku, ktorý napísal sám zakladateľ ZeroTier, Inc. — Adam Ierymenko.

Výsledky boli sklamaním a podnietili ma, aby som začal hovoriť o ZeroTier podrobnejšie, čím som zachránil moderných „hľadačov“ od toho, aby museli ísť rovnakou cestou, akou som sa vybral ja.

Tak čo si?

Vývojár umiestňuje ZeroTier ako inteligentný ethernetový prepínač pre planétu Zem. 

„Je to distribuovaný sieťový hypervízor postavený na kryptograficky bezpečnej globálnej peer-to-peer (P2P) sieti. Nástroj podobný firemnému prepínaču SDN, ktorý je určený na organizáciu virtuálnych sietí nad fyzickými, lokálnymi aj globálnymi, s možnosťou pripojenia takmer akejkoľvek aplikácie alebo zariadenia.“

Toto je skôr marketingový popis, teraz o technologických vlastnostiach.

▍Jadro: 

ZeroTier Network Hypervisor je samostatný sieťový virtualizačný engine, ktorý emuluje ethernetovú sieť, podobnú VXLAN, na vrchole globálnej šifrovanej siete peer-to-peer (P2P).

Protokoly používané v ZeroTier sú originálne, aj keď sa podobajú na VXLAN a IPSec a pozostávajú z dvoch koncepčne samostatných, ale úzko súvisiacich vrstiev: VL1 a VL2.

Odkaz na dokumentáciu

▍VL1 je základná transportná vrstva peer-to-peer (P2P), druh „virtuálneho kábla“.

„Globálne dátové centrum si vyžaduje „globálnu skrinku“ káblov.“

V konvenčných sieťach sa L1 (OSI Layer 1) vzťahuje na skutočné káble alebo bezdrôtové rádiá, ktoré prenášajú dáta, a fyzické čipy transceiveru, ktoré ich modulujú a demodulujú. VL1 je sieť typu peer-to-peer (P2P), ktorá robí to isté, používa šifrovanie, autentifikáciu a ďalšie sieťové triky na organizovanie virtuálnych káblov podľa potreby.

Navyše to robí automaticky, rýchlo a bez zapojenia užívateľa spúšťajúceho nový uzol ZeroTier.

Na dosiahnutie tohto cieľa je VL1 organizovaná podobne ako systém názvov domén. Srdcom siete je skupina vysoko dostupných koreňových serverov, ktorých úloha je podobná úlohe koreňových serverov DNS. V súčasnosti sú hlavné (planetárne) koreňové servery pod kontrolou vývojára - ZeroTier, Inc. a sú poskytované ako bezplatná služba. 

Je však možné vytvoriť vlastné koreňové servery (luns), ktoré vám umožňujú:

  • znížiť závislosť na infraštruktúre ZeroTier, Inc.; Odkaz na dokumentáciu
  • zvýšiť produktivitu minimalizáciou oneskorení; 
  • pokračovať v práci ako obvykle, ak dôjde k strate internetového pripojenia.

Spočiatku sa uzly spúšťajú bez priameho vzájomného prepojenia. 

Každý partner na VL1 má jedinečnú 40-bitovú (10 hexadecimálnu) adresu ZeroTier, ktorá je na rozdiel od IP adries šifrovaný identifikátor, ktorý neobsahuje žiadne smerovacie informácie. Táto adresa je vypočítaná z verejnej časti páru verejný/súkromný kľúč. Adresa uzla, verejný kľúč a súkromný kľúč spolu tvoria jeho identitu.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Čo sa týka šifrovania, to je dôvod na samostatný článok.

Odkaz na dokumentáciu

Na nadviazanie komunikácie partneri najprv pošlú pakety „nahor“ stromom koreňových serverov, a keď tieto pakety prechádzajú sieťou, iniciujú náhodné vytváranie dopredných kanálov. Strom sa neustále pokúša „samovoľne zrútiť“, aby sa optimalizoval pre mapu trasy, ktorú ukladá.

Mechanizmus vytvorenia pripojenia typu peer-to-peer je nasledujúci:

Smart Ethernet Switch pre planétu Zem

  1. Uzol A chce poslať paket do uzla B, ale keďže nepozná priamu cestu, pošle ho upstream do uzla R (mesiac, koreňový server používateľa).
  2. Ak má uzol R priame spojenie s uzlom B, prepošle tam paket. V opačnom prípade pošle paket proti prúdu pred dosiahnutím koreňových planét. Planetárne korene vedia o všetkých uzloch, takže paket nakoniec dosiahne uzol B, ak je online.
  3. Uzol R tiež odošle správu nazvanú „rendezvous“ do uzla A, ktorá obsahuje rady, ako sa môže dostať do uzla B. Medzitým koreňový server, ktorý prepošle paket do uzla B, pošle „stretnutie“ a informuje ho o tom, ako môže dosiahnuť uzol A.
  4. Uzly A a B prijímajú správy o stretnutí a pokúšajú sa navzájom posielať testovacie správy v snahe prelomiť všetky NAT alebo stavové brány firewall, s ktorými sa na ceste stretli. Ak to funguje, vytvorí sa priame spojenie a pakety sa už nevracajú tam a späť.

Ak nie je možné vytvoriť priame spojenie, komunikácia bude pokračovať cez prenos a pokusy o priame spojenie budú pokračovať, kým sa nedosiahne úspešný výsledok. 

VL1 má aj ďalšie funkcie na vytvorenie priamej konektivity, vrátane zisťovania LAN peer, predikcie portov pre prechod symetrického IPv4 NAT a explicitné mapovanie portov pomocou uPnP a/alebo NAT-PMP, ak je dostupné v lokálnej fyzickej sieti LAN.

→ Odkaz na dokumentáciu

▍VL2 je protokol virtualizácie siete Ethernet podobný VXLAN s funkciami správy SDN. Známe komunikačné prostredie pre OS a aplikácie...

Na rozdiel od VL1 si vytváranie sietí VL2 (VLAN) a pripájanie uzlov k nim, ako aj ich správa, vyžaduje priamu účasť používateľa. Môže to urobiť pomocou sieťového ovládača. V podstate ide o bežný uzol ZeroTier, kde sú funkcie ovládača ovládané dvoma spôsobmi: buď priamo, zmenou súborov, alebo, ako vývojár dôrazne odporúča, pomocou zverejneného API. 

Tento spôsob správy virtuálnych sietí ZeroTier nie je pre bežného človeka príliš vhodný, preto existuje niekoľko GUI:
 

  • Jeden od vývojára ZeroTier, dostupný ako verejné cloudové riešenie SaaS so štyrmi plánmi predplatného, ​​vrátane bezplatných, ale obmedzených počtom spravovaných zariadení a úrovňou podpory.
  • Druhé je od nezávislého vývojára, má trochu zjednodušenú funkčnosť, ale je k dispozícii ako súkromné ​​opensource riešenie na použitie na mieste alebo na cloudových zdrojoch.

VL2 je implementovaný na vrchole VL1 a je ním prenášaný. Zdedí však šifrovanie a autentifikáciu koncového bodu VL1 a tiež používa jeho asymetrické kľúče na podpisovanie a overovanie poverení. VL1 vám umožňuje implementovať VL2 bez obáv o existujúcu topológiu fyzickej siete. To znamená, že problémy s konektivitou a efektívnosťou smerovania sú problémy VL1. Je dôležité pochopiť, že medzi virtuálnymi sieťami VL2 a cestami VL1 neexistuje žiadne spojenie. Podobne ako pri multiplexovaní VLAN v káblovej sieti LAN, dva uzly, ktoré zdieľajú viacero členstiev v sieti, budú mať medzi sebou stále iba jednu cestu VL1 (virtuálny kábel).

Každá sieť VL2 (VLAN) je identifikovaná 64-bitovou (16 hexadecimálnou) sieťovou adresou ZeroTier, ktorá obsahuje 40-bitovú adresu ZeroTier radiča a 24-bitové číslo identifikujúce sieť vytvorenú týmto radičom.

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

Keď sa uzol pripojí k sieti alebo požiada o aktualizáciu konfigurácie siete, odošle správu so žiadosťou o konfiguráciu siete (cez VL1) do sieťového kontroléra. Radič potom použije adresu VL1 uzla, aby ho našiel v sieti a poslal mu príslušné certifikáty, poverenia a konfiguračné informácie. Z pohľadu virtuálnych sietí VL2 si adresy VL1 ZeroTier možno predstaviť ako čísla portov na obrovskom globálnom virtuálnom prepínači.

Všetky poverenia vydané sieťovými kontrolérmi členským uzlom danej siete sú podpísané tajným kľúčom kontroléra, aby si ich mohli overiť všetci účastníci siete. Poverenia majú časové pečiatky generované radičom, čo umožňuje relatívne porovnanie bez nutnosti prístupu k lokálnym systémovým hodinám hostiteľa. 

Poverenia sa vydávajú iba ich vlastníkom a potom sa posielajú partnerom, ktorí chcú komunikovať s inými uzlami v sieti. To umožňuje sieť škálovať na obrovské veľkosti bez potreby ukladať veľké množstvo poverení do vyrovnávacej pamäte na uzloch alebo neustále kontaktovať sieťový kontrolér.

Siete ZeroTier podporujú distribúciu multicastu prostredníctvom jednoduchého systému publikovania/predplatenia.

Odkaz na dokumentáciu

Keď si uzol želá prijímať multicastové vysielanie pre konkrétnu distribučnú skupinu, oznámi členstvo v tejto skupine ostatným členom siete, s ktorou komunikuje, a sieťovému kontrolórovi. Keď si uzol želá poslať multicast, súčasne pristupuje k svojej vyrovnávacej pamäti nedávnych publikácií a pravidelne požaduje ďalšie publikácie.

Vysielanie (Ethernet ff: ff: ff: ff: ff: ff) sa považuje za skupinu multicast, do ktorej sa prihlasujú všetci účastníci. Dá sa vypnúť na úrovni siete, aby sa znížila prevádzka, ak to nie je potrebné. 

ZeroTier emuluje skutočný ethernetový prepínač. Táto skutočnosť nám umožňuje uskutočniť kombinovanie vytvorených virtuálnych sietí s inými ethernetovými sieťami (drôtová LAN, WiFi, virtuálny backplane atď.) na úrovni dátového spojenia - pomocou bežného ethernetového mosta.

Aby sieťový radič fungoval ako most, musí určiť hostiteľa ako takého. Táto schéma je implementovaná z bezpečnostných dôvodov, pretože bežní sieťoví hostitelia nemajú povolené odosielať prevádzku z iného zdroja, než je ich MAC adresa. Uzly označené ako mosty tiež používajú špeciálny režim multicastového algoritmu, ktorý s nimi agresívnejšie a cielenejšie interaguje počas skupinového odberu a replikácie všetkej vysielacej prevádzky a požiadaviek ARP. 

Prepínač má tiež schopnosť vytvárať verejné a ad-hoc siete, mechanizmus QoS a editor sieťových pravidiel.

▍Uzol:

ZeroTier One je služba spustená na prenosných počítačoch, desktopoch, serveroch, virtuálnych strojoch a kontajneroch, ktorá poskytuje pripojenie k virtuálnej sieti cez virtuálny sieťový port, podobne ako klient VPN. 

Po nainštalovaní a spustení služby sa môžete pripojiť k virtuálnym sieťam pomocou ich 16-miestnej adresy. Každá sieť sa v systéme javí ako virtuálny sieťový port, ktorý sa správa rovnako ako bežný ethernetový port.

ZeroTier One je momentálne k dispozícii pre nasledujúce OS a systémy.

OS:

  • Microsoft Windows - Inštalačný program MSI x86/x64
  • MacOS - Inštalátor PKG
  • Apple iOS - Obchod s aplikaciami
  • Android - Hračkárstvo
  • Linux - DEB/RPM
  • FreeBSD - Balík FreeBSD

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

iné:

  • prístavný robotník - súbor docker
  • OpenWRT - komunitný prístav
  • Vkladanie aplikácie - SDK (libzt)

Aby som zhrnul všetky vyššie uvedené, poznamenal by som, že ZeroTier je vynikajúci a rýchly nástroj na kombinovanie vašich fyzických, virtuálnych alebo cloudových zdrojov do spoločnej lokálnej siete s možnosťou rozdeliť ju na VLAN a bez jediného bodu zlyhania. .

To je všetko k teoretickej časti vo formáte prvého článku o ZeroTier pre Habr - to je asi všetko! V ďalšom článku plánujem v praxi demonštrovať vytvorenie virtuálnej sieťovej infraštruktúry na báze ZeroTier, kde bude ako sieťový radič použitý VDS s privátnou open source GUI šablónou. 

Vážení čitatelia! Používate vo svojich projektoch technológiu ZeroTier? Ak nie, aké nástroje používate na sieťovanie svojich zdrojov?

Smart Ethernet Switch pre planétu Zem

Zdroj: hab.com

Pridať komentár