Smart Ethernet Switch pro planetu Zemi

Smart Ethernet Switch pro planetu Zemi
"Řešení (vyřešit problém) můžete vytvořit několika způsoby, ale nejdražší a/nebo nejoblíbenější metoda není vždy nejúčinnější!"

Preambule

Zhruba před třemi lety jsem v procesu vývoje vzdáleného modelu pro obnovu dat po havárii narazil na jednu překážku, které jsem si hned nevšiml – nedostatek informací o nových originálních řešeních pro virtualizaci sítí v komunitních zdrojích. 

Algoritmus pro vyvinutý model byl naplánován takto: 

  1. Vzdálený uživatel, který mě kontaktoval a jehož počítač jednou odmítl nabootovat, se zprávou „systémový disk nebyl detekován/nenaformátován“, jej načte pomocí life USB. 
  2. Během bootovacího procesu se systém automaticky připojí k zabezpečené privátní lokální síti, která kromě sebe obsahuje administrátorskou pracovní stanici, v tomto případě notebook, a NAS uzel. 
  3. Pak se připojím - buď pro resuscitaci diskových oddílů, nebo pro vytažení dat odtud.

Zpočátku jsem tento model implementoval pomocí VPN serveru na lokálním routeru v síti pod mou kontrolou, poté na pronajatém VDS. Ale jak se často stává a podle prvního Chisholmova zákona, pokud bude pršet, síť poskytovatele internetu vypadne, pak spory mezi podnikatelskými subjekty způsobí, že poskytovatel služeb ztratí „energii“...

Proto jsem se rozhodl nejprve formulovat základní požadavky, které musí potřebný nástroj splňovat. První je decentralizace. Za druhé, vzhledem k tomu, že mám několik těchto životních USB, každé z nich má samostatnou izolovanou síť. No a do třetice rychlé připojení různých zařízení k síti a jejich jednoduchá správa, a to i v případě, že i můj notebook padne za oběť výše zmíněnému zákonu.

Na základě toho a po dvou a půl měsících strávených praktickým zkoumáním několika nepříliš vhodných možností jsem se na vlastní nebezpečí a riziko rozhodl vyzkoušet další nástroj od tehdy pro mě neznámého startupu s názvem ZeroTier. Což jsem později nikdy nelitoval.

Během těchto novoročních svátků jsem ve snaze pochopit, zda se situace s obsahem od onoho památného okamžiku změnila, provedl selektivní audit dostupnosti článků na toto téma, přičemž jako zdroj jsem použil Habra. Pro dotaz „ZeroTier“ ve výsledcích vyhledávání se o něm zmiňují pouze tři články a ani jeden s alespoň stručným popisem. A to přesto, že je mezi nimi překlad článku, který napsal sám zakladatel ZeroTier, Inc. — Adam Ierymenko.

Výsledky byly zklamáním a přiměly mě, abych začal mluvit o ZeroTier podrobněji, čímž jsem zachránil moderní „hledače“ od nutnosti jít stejnou cestou, kterou jsem šel já.

Tak co jsi?

Vývojář staví ZeroTier jako inteligentní ethernetový přepínač pro planetu Zemi. 

„Je to distribuovaný síťový hypervizor postavený na kryptograficky zabezpečené globální síti peer-to-peer (P2P). Nástroj podobný firemnímu přepínači SDN, určený k organizaci virtuálních sítí nad fyzickými, lokálními i globálními, se schopností připojit téměř jakoukoli aplikaci nebo zařízení.“

Toto je spíše marketingový popis, nyní o technologických vlastnostech.

▍Jádro: 

ZeroTier Network Hypervisor je samostatný síťový virtualizační engine, který emuluje ethernetovou síť, podobnou VXLAN, nad globální šifrovanou sítí peer-to-peer (P2P).

Protokoly používané v ZeroTier jsou originální, i když vzhledově podobné VXLAN a IPSec a skládají se ze dvou koncepčně samostatných, ale úzce souvisejících vrstev: VL1 a VL2.

Odkaz na dokumentaci

▍VL1 je základní transportní vrstva peer-to-peer (P2P), druh „virtuálního kabelu“.

"Globální datové centrum vyžaduje 'globální skříň' kabeláže."

V konvenčních sítích L1 (OSI Layer 1) označuje skutečné kabely nebo bezdrátová rádia, která přenášejí data, a fyzické čipy transceiveru, které je modulují a demodulují. VL1 je síť typu peer-to-peer (P2P), která dělá to samé, k organizaci virtuálních kabelů podle potřeby používá šifrování, ověřování a další síťové triky.

Navíc to dělá automaticky, rychle a bez zapojení uživatele spouštějícího nový uzel ZeroTier.

Aby toho bylo dosaženo, je VL1 organizován podobně jako systém doménových jmen. Srdcem sítě je skupina vysoce dostupných kořenových serverů, jejichž role je podobná roli kořenových jmenných serverů DNS. V tuto chvíli jsou hlavní (planetární) kořenové servery pod kontrolou vývojáře - ZeroTier, Inc. a jsou poskytovány jako bezplatná služba. 

Je však možné vytvořit vlastní kořenové servery (luns), které vám umožní:

  • snížit závislost na infrastruktuře ZeroTier, Inc.; Odkaz na dokumentaci
  • zvýšit produktivitu minimalizací zpoždění; 
  • pokračovat v práci jako obvykle, pokud dojde ke ztrátě připojení k internetu.

Zpočátku jsou uzly spouštěny bez přímého vzájemného spojení. 

Každý peer na VL1 má jedinečnou 40bitovou (10 hexadecimální) adresu ZeroTier, což je na rozdíl od IP adres šifrovaný identifikátor, který neobsahuje žádné informace o směrování. Tato adresa je vypočítána z veřejné části páru veřejného/soukromého klíče. Adresa uzlu, veřejný klíč a soukromý klíč společně tvoří jeho identitu.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Co se týče šifrování, to je důvod na samostatný článek.

Odkaz na dokumentaci

Pro navázání komunikace kolegové nejprve pošlou pakety „nahoru“ do stromu kořenových serverů, a když tyto pakety putují sítí, iniciují na cestě náhodné vytváření dopředných kanálů. Strom se neustále snaží „samovolně zhroutit“, aby se optimalizoval pro mapu trasy, kterou ukládá.

Mechanismus pro vytvoření připojení peer-to-peer je následující:

Smart Ethernet Switch pro planetu Zemi

  1. Uzel A chce poslat paket do uzlu B, ale protože nezná přímou cestu, odešle jej upstream do uzlu R (měsíc, kořenový server uživatele).
  2. Pokud má uzel R přímé spojení s uzlem B, předá tam paket. V opačném případě odešle paket proti proudu před dosažením planetárních kořenů. Planetární kořeny vědí o všech uzlech, takže paket nakonec dosáhne uzlu B, pokud je online.
  3. Uzel R také odešle zprávu nazvanou „rendezvous“ do uzlu A, která obsahuje rady, jak se může dostat k uzlu B. Mezitím kořenový server, který předá paket do uzlu B, odešle „setkání“ a informuje jej o tom, jak může dosáhnout uzlu A.
  4. Uzly A a B přijímají své zprávy o setkání a pokoušejí se navzájem posílat testovací zprávy ve snaze prolomit NAT nebo stavové firewally, se kterými se cestou setkají. Pokud to funguje, je navázáno přímé spojení a pakety se již neposouvají tam a zpět.

Pokud nelze navázat přímé spojení, bude komunikace pokračovat prostřednictvím přenosu a pokusy o přímé připojení budou pokračovat, dokud nebude dosaženo úspěšného výsledku. 

VL1 má také další funkce pro navazování přímé konektivity, včetně vyhledávání LAN peer, predikce portů pro průchod symetrickým IPv4 NAT a explicitní mapování portů pomocí uPnP a/nebo NAT-PMP, pokud je k dispozici v místní fyzické LAN.

→ Odkaz na dokumentaci

▍VL2 je ethernetový síťový virtualizační protokol podobný VXLAN s funkcemi správy SDN. Známé komunikační prostředí pro OS a aplikace...

Na rozdíl od VL1 vyžaduje vytváření sítí VL2 (VLAN) a připojování uzlů k nim, stejně jako jejich správa, přímou účast uživatele. Může to udělat pomocí síťového řadiče. V podstatě jde o běžný uzel ZeroTier, kde se funkce ovladače ovládají dvěma způsoby: buď přímo, změnou souborů, nebo, jak vývojář důrazně doporučuje, pomocí publikovaného API. 

Tento způsob správy virtuálních sítí ZeroTier není pro běžného člověka příliš vhodný, takže existuje několik GUI:
 

  • Jeden od vývojáře ZeroTier, dostupný jako veřejné cloudové řešení SaaS se čtyřmi plány předplatného, ​​včetně bezplatných, ale omezených počtem spravovaných zařízení a úrovní podpory.
  • Druhý je od nezávislého vývojáře, má poněkud zjednodušenou funkčnost, ale je k dispozici jako soukromé opensource řešení pro použití on-premise nebo cloudových zdrojů.

VL2 je implementován nad VL1 a je jím přenášen. Zdědí však šifrování a ověřování koncového bodu VL1 a také používá jeho asymetrické klíče k podepisování a ověřování přihlašovacích údajů. VL1 vám umožňuje implementovat VL2 bez obav o stávající topologii fyzické sítě. To znamená, že problémy s konektivitou a efektivitou směrování jsou problémy VL1. Je důležité pochopit, že neexistuje žádné spojení mezi virtuálními sítěmi VL2 a cestami VL1. Podobně jako u multiplexování VLAN v kabelové síti LAN budou mít dva uzly, které sdílejí více členství v síti, stále mezi sebou pouze jednu cestu VL1 (virtuální kabel).

Každá síť VL2 (VLAN) je identifikována 64bitovou (16 hexadecimální) síťovou adresou ZeroTier, která obsahuje 40bitovou adresu ZeroTier řadiče a 24bitové číslo identifikující síť vytvořenou tímto řadičem.

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

Když se uzel připojí k síti nebo požádá o aktualizaci konfigurace sítě, odešle zprávu s požadavkem na konfiguraci sítě (přes VL1) síťovému řadiči. Řadič pak použije adresu VL1 uzlu, aby jej našel v síti a odeslal mu příslušné certifikáty, pověření a informace o konfiguraci. Z pohledu virtuálních sítí VL2 lze adresy VL1 ZeroTier považovat za čísla portů na obrovském globálním virtuálním přepínači.

Všechna pověření vydaná síťovými řadiči členským uzlům dané sítě jsou podepsána tajným klíčem řadiče, aby je mohli ověřit všichni účastníci sítě. Pověření mají časová razítka generovaná řadičem, což umožňuje relativní srovnání bez nutnosti přístupu k místním systémovým hodinám hostitele. 

Pověření jsou vydána pouze jejich vlastníkům a poté odeslána kolegům, kteří chtějí komunikovat s ostatními uzly v síti. To umožňuje síti škálovat do obrovských velikostí bez nutnosti ukládat do mezipaměti velké množství pověření na uzlech nebo neustále kontaktovat síťový řadič.

Sítě ZeroTier podporují distribuci vícesměrového vysílání prostřednictvím jednoduchého systému publikování/odběru.

Odkaz na dokumentaci

Když si uzel přeje přijímat vícesměrové vysílání pro určitou distribuční skupinu, inzeruje členství v této skupině ostatním členům sítě, se kterou komunikuje, a síťovému kontroléru. Když si uzel přeje odeslat vícesměrové vysílání, současně přistupuje ke své mezipaměti posledních publikací a pravidelně požaduje další publikace.

Vysílání (Ethernet ff: ff: ff: ff: ff: ff) je považováno za skupinu vícesměrového vysílání, ke které se přihlásí všichni účastníci. Pokud to není potřeba, lze jej zakázat na úrovni sítě, aby se snížil provoz. 

ZeroTier emuluje skutečný ethernetový přepínač. Tato skutečnost nám umožňuje uskutečnit kombinování vytvořených virtuálních sítí s jinými ethernetovými sítěmi (drátová LAN, WiFi, virtuální backplane atd.) na úrovni datového spoje - pomocí běžného ethernetového mostu.

Aby síťový řadič fungoval jako most, musí určit hostitele jako takového. Toto schéma je implementováno z bezpečnostních důvodů, protože normální síťoví hostitelé nemají povoleno odesílat provoz z jiného zdroje, než je jejich MAC adresa. Uzly označené jako mosty také používají speciální režim multicastového algoritmu, který s nimi interaguje agresivněji a cíleněji během skupinových odběrů a replikace veškerého vysílání a požadavků ARP. 

Přepínač má také schopnost vytvářet veřejné a ad-hoc sítě, mechanismus QoS a editor síťových pravidel.

▍Uzel:

ZeroTier One je služba běžící na noteboocích, desktopech, serverech, virtuálních strojích a kontejnerech, která poskytuje připojení k virtuální síti prostřednictvím virtuálního síťového portu, podobně jako klient VPN. 

Jakmile je služba nainstalována a spuštěna, můžete se připojit k virtuálním sítím pomocí jejich 16místných adres. Každá síť se v systému jeví jako virtuální síťový port, který se chová stejně jako běžný ethernetový port.

ZeroTier One je aktuálně k dispozici pro následující OS a systémy.

OS:

  • Microsoft Windows - Instalační program MSI x86/x64
  • MacOS - Instalační program PKG
  • Apple iOS - Obchod s aplikacemi
  • Android — Obchod Play
  • Linux - DEB/RPM
  • FreeBSD - Balíček FreeBSD

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Ostatní:

  • přístavní dělník - soubor docker
  • OpenWRT - komunitní přístav
  • Vkládání aplikace - SDK (libzt)

Abych vše shrnul, poznamenal bych, že ZeroTier je vynikající a rychlý nástroj pro spojení vašich fyzických, virtuálních nebo cloudových zdrojů do společné lokální sítě s možností rozdělit ji na VLAN a absencí jediného bodu selhání. .

Toť k teoretické části ve formátu prvního článku o ZeroTier pro Habra - to je snad vše! V příštím článku plánuji v praxi demonstrovat vytvoření virtuální síťové infrastruktury na bázi ZeroTier, kde bude jako síťový řadič použit VDS s privátní open source GUI šablonou. 

Vážení čtenáři! Používáte ve svých projektech technologii ZeroTier? Pokud ne, jaké nástroje používáte k propojení zdrojů?

Smart Ethernet Switch pro planetu Zemi

Zdroj: www.habr.com

Přidat komentář