Pametno ethernet stikalo za planet Zemljo

Pametno ethernet stikalo za planet Zemljo
“Rešitev lahko ustvarite (rešite problem) na več načinov, vendar najdražja in/ali priljubljena metoda ni vedno najbolj učinkovita!”

Preambula

Pred približno tremi leti sem v procesu razvoja oddaljenega modela za obnovo podatkov po nesreči naletel na eno oviro, ki je nismo takoj opazili – pomanjkanje informacij o novih izvirnih rešitvah za virtualizacijo omrežja v virih skupnosti. 

Algoritem za razviti model je bil načrtovan takole: 

  1. Oddaljeni uporabnik, ki je stopil v stik z mano, čigar računalnik se je nekoč hotel zagnati in prikazal sporočilo »sistemski disk ni zaznan/ni formatiran«, ga je naložil z Life USB. 
  2. Med postopkom zagona se sistem samodejno poveže z varnim zasebnim lokalnim omrežjem, ki poleg sebe vsebuje skrbniško delovno postajo, v tem primeru prenosni računalnik, in vozlišče NAS. 
  3. Potem se povežem - bodisi za oživitev particij diska bodisi za pridobivanje podatkov od tam.

Sprva sem ta model implementiral s strežnikom VPN na lokalnem usmerjevalniku v omrežju pod mojim nadzorom, nato pa na najetem VDS. Toda, kot se pogosto zgodi in po Chisholmovem prvem zakonu, če dežuje, bo internetnemu ponudniku padlo omrežje, nato pa bodo spori med poslovnimi subjekti povzročili, da ponudnik storitev izgubi "energijo" ...

Zato sem se odločil, da najprej oblikujem osnovne zahteve, ki jih mora izpolnjevati potrebno orodje. Prvi je decentralizacija. Drugič, glede na to, da imam več teh življenjskih USB-jev, ima vsak od njih ločeno izolirano omrežje. No, tretjič, hitra povezava v omrežje različnih naprav in enostavno upravljanje z njimi, tudi v primeru, da je tudi moj prenosnik žrtev zgoraj omenjenega zakona.

Na podlagi tega in po tem, ko sem porabil dva meseca in pol za praktično raziskovanje več ne preveč primernih možnosti, sem se na lastno odgovornost in tveganje odločil preizkusiti drugo orodje meni takrat neznanega startupa, imenovano ZeroTier. Kar kasneje mi ni bilo nikoli žal.

V teh novoletnih praznikih, ko sem poskušal razumeti, ali se je situacija z vsebino spremenila od tega nepozabnega trenutka, sem izvedel selektivno revizijo razpoložljivosti člankov na to temo, pri čemer sem kot vir uporabil Habr. Za poizvedbo »ZeroTier« so v rezultatih iskanja le trije članki, ki jo omenjajo, in niti en z vsaj kratkim opisom. In to kljub dejstvu, da je med njimi tudi prevod članka, ki ga je napisal sam ustanovitelj podjetja ZeroTier, Inc. — Adam Jerimenko.

Rezultati so bili razočarani in so me spodbudili, da sem o ZeroTier začel govoriti podrobneje, s čimer sem sodobnim "iskalcem" prihranil isto pot, kot sem jo ubral jaz.

Kaj si torej?

Razvijalec postavlja ZeroTier kot inteligentno Ethernet stikalo za planet Zemljo. 

»Gre za distribuirani omrežni hipervizor, zgrajen na vrhu kriptografsko varnega globalnega omrežja enakovrednih (P2P). Orodje, podobno korporativnemu stikalu SDN, zasnovano za organiziranje virtualnih omrežij prek fizičnih, tako lokalnih kot globalnih, z možnostjo povezovanja skoraj vseh aplikacij ali naprav.«

To je bolj marketinški opis, zdaj o tehnoloških značilnostih.

▍Jedro: 

ZeroTier Network Hypervisor je samostojen mehanizem za virtualizacijo omrežja, ki posnema omrežje Ethernet, podobno kot VXLAN, na vrhu globalnega šifriranega omrežja enakovrednih (P2P).

Protokoli, uporabljeni v ZeroTier, so izvirni, čeprav po videzu podobni VXLAN in IPSec ter so sestavljeni iz dveh konceptualno ločenih, a tesno povezanih plasti: VL1 in VL2.

Povezava do dokumentacije

▍VL1 je osnovna transportna plast enakovrednega (P2P), nekakšen "virtualni kabel".

"Globalni podatkovni center zahteva 'globalno omaro' kablov."

V običajnih omrežjih se L1 (plast OSI 1) nanaša na dejanske kable ali brezžične radijske postaje, ki prenašajo podatke, in fizične čipe sprejemno-sprejemnih naprav, ki jih modulirajo in demodulirajo. VL1 je omrežje enakovrednih (P2P), ki deluje enako, z uporabo šifriranja, preverjanja pristnosti in drugih omrežnih trikov za organiziranje navideznih kablov po potrebi.

Poleg tega to stori samodejno, hitro in brez sodelovanja uporabnika, ki zažene novo vozlišče ZeroTier.

Da bi to dosegli, je VL1 organiziran podobno kot sistem domenskih imen. V središču omrežja je skupina zelo razpoložljivih korenskih strežnikov, katerih vloga je podobna vlogi korenskih imenskih strežnikov DNS. Trenutno so glavni (planetarni) korenski strežniki pod nadzorom razvijalca - ZeroTier, Inc. in so na voljo kot brezplačna storitev. 

Vendar pa je mogoče ustvariti korenske strežnike po meri (luns), ki vam omogočajo:

  • zmanjšati odvisnost od infrastrukture ZeroTier, Inc.; Povezava do dokumentacije
  • povečajte produktivnost z zmanjšanjem zamud; 
  • nadaljuje z običajnim delovanjem, če se internetna povezava prekine.

Na začetku se vozlišča zaženejo brez neposrednih medsebojnih povezav. 

Vsak vrstnik na VL1 ima edinstven 40-bitni (10 šestnajstiški) naslov ZeroTier, ki je za razliko od naslovov IP šifriran identifikator, ki ne vsebuje informacij o usmerjanju. Ta naslov se izračuna iz javnega dela para ključev javni/zasebni. Naslov, javni ključ in zasebni ključ vozlišča skupaj tvorijo njegovo identiteto.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Kar zadeva šifriranje, je to razlog za ločen članek.

Povezava do dokumentacije

Za vzpostavitev komunikacije vrstniki najprej pošljejo pakete "navzgor" po drevesu korenskih strežnikov in ko ti paketi potujejo po omrežju, na poti sprožijo naključno ustvarjanje kanalov za naprej. Drevo se nenehno poskuša "zrušiti samo od sebe", da bi se optimiziralo za zemljevid poti, ki ga hrani.

Mehanizem za vzpostavitev povezave enakovrednih je naslednji:

Pametno ethernet stikalo za planet Zemljo

  1. Vozlišče A želi poslati paket vozlišču B, a ker ne pozna neposredne poti, ga pošlje navzgor do vozlišča R (luna, uporabnikov korenski strežnik).
  2. Če ima vozlišče R neposredno povezavo z vozliščem B, posreduje paket tja. V nasprotnem primeru pošlje paket navzgor, preden doseže planetarne korenine. Planetarne korenine poznajo vsa vozlišča, tako da bo paket na koncu dosegel vozlišče B, če je na spletu.
  3. Vozlišče R pošlje vozlišču A tudi sporočilo, imenovano "rendezvous", ki vsebuje namige o tem, kako lahko doseže vozlišče B. Medtem korenski strežnik, ki posreduje paket vozlišču B, pošlje "rendezvous", ki ga obvešča o tem, kako lahko doseči vozlišče A.
  4. Vozlišči A in B prejmeta sporočila o srečanju in drug drugemu poskušata poslati testna sporočila, da bi poskušali prebiti morebitne NAT ali požarne zidove s spremljanjem stanja, ki jih srečata na poti. Če to deluje, se vzpostavi neposredna povezava in paketi ne gredo več naprej in nazaj.

Če neposredne povezave ni mogoče vzpostaviti, se bo komunikacija nadaljevala prek releja, poskusi neposredne povezave pa se bodo nadaljevali, dokler ne bo dosežen uspešen rezultat. 

VL1 ima tudi druge funkcije za vzpostavitev neposredne povezljivosti, vključno z odkrivanjem enakovrednih omrežij LAN, predvidevanjem vrat za prečkanje simetričnega IPv4 NAT in eksplicitnim preslikavo vrat z uporabo uPnP in/ali NAT-PMP, če je na voljo v lokalnem fizičnem omrežju LAN.

→ Povezava do dokumentacije

▍VL2 je protokol za virtualizacijo omrežja Ethernet, podoben VXLAN, s funkcijami upravljanja SDN. Znano komunikacijsko okolje za OS in aplikacije...

Za razliko od VL1 ustvarjanje omrežij VL2 (VLAN) in povezovanje vozlišč z njimi ter njihovo upravljanje zahteva neposredno sodelovanje uporabnika. To lahko stori z uporabo omrežnega krmilnika. V bistvu gre za običajno vozlišče ZeroTier, kjer se funkcije krmilnika nadzirajo na dva načina: neposredno, s spreminjanjem datotek ali, kot močno priporoča razvijalec, z uporabo objavljenega API-ja. 

Ta način upravljanja virtualnih omrežij ZeroTier ni zelo primeren za povprečnega človeka, zato obstaja več GUI-jev:
 

  • Ena od razvijalca ZeroTier, ki je na voljo kot javna rešitev SaaS v oblaku s štirimi naročniškimi načrti, vključno z brezplačnimi, vendar omejenimi glede števila upravljanih naprav in ravni podpore
  • Druga je od neodvisnega razvijalca, nekoliko poenostavljena v funkcionalnosti, vendar je na voljo kot zasebna odprtokodna rešitev za uporabo na mestu uporabe ali v virih v oblaku.

VL2 je implementiran na vrhu VL1 in se po njem prenaša. Vendar pa podeduje šifriranje in avtentikacijo končne točke VL1 ter uporablja tudi svoje asimetrične ključe za podpisovanje in preverjanje poverilnic. VL1 vam omogoča implementacijo VL2 brez skrbi za obstoječo fizično topologijo omrežja. To pomeni, da so težave s povezljivostjo in učinkovitostjo usmerjanja težave VL1. Pomembno je razumeti, da med virtualnimi omrežji VL2 in potmi VL1 ni povezave. Podobno kot pri multipleksiranju VLAN v žičnem LAN-u bosta dve vozlišči, ki si delita več članstev v omrežju, med seboj še vedno imeli samo eno pot VL1 (navidezni kabel).

Vsako omrežje VL2 (VLAN) je identificirano s 64-bitnim (16 šestnajstiškim) omrežnim naslovom ZeroTier, ki vsebuje 40-bitni naslov ZeroTier krmilnika in 24-bitno številko, ki identificira omrežje, ki ga je ustvaril ta krmilnik.

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

Ko se vozlišče pridruži omrežju ali zahteva posodobitev omrežne konfiguracije, pošlje sporočilo z zahtevo za omrežno konfiguracijo (prek VL1) omrežnemu krmilniku. Krmilnik nato uporabi naslov VL1 vozlišča, da ga poišče v omrežju in mu pošlje ustrezna potrdila, poverilnice in informacije o konfiguraciji. Z vidika virtualnih omrežij VL2 si lahko naslove VL1 ZeroTier predstavljamo kot številke vrat na ogromnem globalnem virtualnem stikalu.

Vse poverilnice, ki jih omrežni krmilniki izdajo članskim vozliščem danega omrežja, so podpisane s skrivnim ključem krmilnika, tako da jih lahko vsi udeleženci omrežja preverijo. Poverilnice imajo časovne žige, ki jih ustvari krmilnik, kar omogoča relativno primerjavo brez dostopa do gostiteljeve lokalne sistemske ure. 

Poverilnice se izdajo samo njihovim lastnikom in nato pošljejo vrstnikom, ki želijo komunicirati z drugimi vozlišči v omrežju. To omogoča, da se omrežje razširi na ogromne velikosti, ne da bi bilo treba predpomniti velike količine poverilnic na vozliščih ali nenehno kontaktirati omrežni krmilnik.

Omrežja ZeroTier podpirajo multicast distribucijo prek preprostega sistema objave/naročnine.

Povezava do dokumentacije

Ko vozlišče želi prejeti multicast oddajanje za določeno distribucijsko skupino, oznani članstvo v tej skupini drugim članom omrežja, s katerim komunicira, in omrežnemu krmilniku. Ko želi vozlišče poslati multicast, istočasno dostopa do predpomnilnika nedavnih objav in občasno zahteva dodatne objave.

Oddajanje (Ethernet ff: ff: ff: ff: ff: ff) se obravnava kot večoddajna skupina, na katero so naročeni vsi udeleženci. Lahko ga onemogočite na ravni omrežja, da zmanjšate promet, če ni potreben. 

ZeroTier posnema pravo stikalo Ethernet. To dejstvo nam omogoča izvedbo združevanje ustvarjenih virtualnih omrežij z drugimi Ethernet omrežji (žični LAN, WiFi, virtualna hrbtna plošča, itd.) na nivoju podatkovne povezave - z uporabo navadnega Ethernet mosta.

Da bi deloval kot most, mora omrežni krmilnik določiti gostitelja kot takega. Ta shema se izvaja iz varnostnih razlogov, saj običajni omrežni gostitelji ne smejo pošiljati prometa iz vira, ki ni njihov naslov MAC. Vozlišča, označena kot mostovi, prav tako uporabljajo poseben način multicast algoritma, ki z njimi sodeluje bolj agresivno in ciljno med skupinskimi naročninami in replikacijo vsega oddajnega prometa in zahtev ARP. 

Stikalo ima tudi možnost ustvarjanja javnih in ad-hoc omrežij, mehanizem QoS in urejevalnik omrežnih pravil.

▍Vozlišče:

ZeroTier One je storitev, ki se izvaja na prenosnikih, namiznih računalnikih, strežnikih, virtualnih strojih in vsebnikih, ki zagotavlja povezave z virtualnim omrežjem prek vrat virtualnega omrežja, podobno kot odjemalec VPN. 

Ko je storitev nameščena in zagnana, se lahko povežete z virtualnimi omrežji z uporabo njihovih 16-mestnih naslovov. Vsako omrežje je v sistemu prikazano kot navidezna omrežna vrata, ki se obnašajo kot običajna vrata Ethernet.

ZeroTier One je trenutno na voljo za naslednje OS in sisteme.

OS:

  • Microsoft Windows - MSI namestitveni program x86/x64
  • MacOS - Namestitveni program PKG
  • Apple iOS - Trgovina z aplikacijami
  • Android - Trgovina z igračami
  • Linux - DEB/RPM
  • FreeBSD - Paket FreeBSD

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Drugo:

  • Lučki delavec - docker datoteka
  • OpenWRT - pristanišče skupnosti
  • Vdelava aplikacije - SDK (libzt)

Če povzamem vse zgoraj navedeno, bi opozoril, da je ZeroTier odlično in hitro orodje za združevanje vaših fizičnih, virtualnih ali oblačnih virov v skupno lokalno omrežje, z možnostjo razdelitve na VLAN in odsotnostjo ene same točke odpovedi. .

To je to za teoretični del v formatu prvega članka o ZeroTier za Habr - to je verjetno vse! V naslednjem članku nameravam v praksi prikazati ustvarjanje virtualne omrežne infrastrukture, ki temelji na ZeroTier, kjer bo VDS z zasebno odprtokodno GUI predlogo uporabljen kot omrežni krmilnik. 

Drage bralke in bralci! Ali pri svojih projektih uporabljate tehnologijo ZeroTier? Če ne, katera orodja uporabljate za mreženje svojih virov?

Pametno ethernet stikalo za planet Zemljo

Vir: www.habr.com

Dodaj komentar