Smart Ethernet prekidač za planetu Zemlju

Smart Ethernet prekidač za planetu Zemlju
“Možete kreirati rješenje (riješiti problem) na nekoliko načina, ali najskuplja i/ili popularna metoda nije uvijek najefikasnija!”

Preambula

Prije otprilike tri godine, u procesu razvoja udaljenog modela za oporavak podataka od katastrofe, naišao sam na jednu prepreku koja se nije odmah primijetila – nedostatak informacija o novim originalnim rješenjima za virtuelizaciju mreže u izvorima zajednice. 

Algoritam za razvijeni model planiran je na sljedeći način: 

  1. Udaljeni korisnik koji me je kontaktirao, čiji je računar jednom odbio da se pokrene, prikazujući poruku „sistemski disk nije otkriven/nije formatiran“, učitava ga pomoću životnog USB-a. 
  2. Tokom procesa pokretanja, sistem se automatski povezuje na sigurnu privatnu lokalnu mrežu, koja pored sebe sadrži radnu stanicu administratora, u ovom slučaju laptop, i NAS čvor. 
  3. Zatim se povezujem - ili da oživim particije diska, ili da izvučem podatke odatle.

U početku sam implementirao ovaj model koristeći VPN server na lokalnom ruteru u mreži pod mojom kontrolom, zatim na iznajmljenom VDS-u. Ali, kao što se često dešava i prema Chisholmovom prvom zakonu, ako padne kiša, mreža internet provajdera će se pokvariti, a onda će sporovi između poslovnih subjekata dovesti do gubitka "energije" davatelja usluga...

Stoga sam odlučio najprije formulirati osnovne zahtjeve koje potrebni alat mora ispuniti. Prvi je decentralizacija. Drugo, s obzirom da imam nekoliko takvih životnih USB-a, svaki od njih ima zasebnu izoliranu mrežu. Pa, treće, brzo povezivanje na mrežu raznih uređaja i jednostavno upravljanje njima, uključujući i slučaj da i moj laptop postane žrtva gore navedenog zakona.

Na osnovu toga i nakon što sam dva i po mjeseca proveo na praktičnom istraživanju nekoliko ne baš pogodnih opcija, na vlastitu odgovornost i rizik odlučio sam isprobati još jedan alat iz meni nepoznatog startupa pod nazivom ZeroTier. Zbog čega kasnije nikad nisam požalio.

Tokom ovih novogodišnjih praznika, pokušavajući da shvatim da li se situacija sa sadržajem promijenila od tog nezaboravnog trenutka, izvršio sam selektivnu reviziju dostupnosti članaka na ovu temu, koristeći Habr kao izvor. Za upit “ZeroTier” u rezultatima pretrage postoje samo tri članka koji ga spominju, a niti jedan sa barem kratkim opisom. I to uprkos činjenici da među njima postoji i prijevod članka koji je napisao sam osnivač ZeroTier, Inc. — Adam Ierymenko.

Rezultati su bili razočaravajući i potaknuli su me da počnem da pričam o ZeroTier-u detaljnije, spašavajući moderne „tragače“ da moraju da idu istim putem kojim sam ja krenuo.

Pa šta si ti?

Programer pozicionira ZeroTier kao inteligentni Ethernet prekidač za planetu Zemlju. 

“To je hipervizor distribuirane mreže izgrađen na vrhu kriptografski sigurne globalne peer-to-peer (P2P) mreže. Alat sličan korporativnom SDN prekidaču, dizajniran za organiziranje virtualnih mreža preko fizičkih, lokalnih i globalnih, s mogućnošću povezivanja gotovo svake aplikacije ili uređaja.”

Ovo je više marketinški opis, sada o tehnološkim karakteristikama.

▍Kernel: 

ZeroTier Network Hypervisor je samostalni motor za virtuelizaciju mreže koji emulira Ethernet mrežu, sličnu VXLAN-u, na vrhu globalne šifrovane peer-to-peer (P2P) mreže.

Protokoli koji se koriste u ZeroTier-u su originalni, iako slični po izgledu kao VXLAN i IPSec i sastoje se od dva konceptualno odvojena, ali blisko povezana sloja: VL1 i VL2.

Link na dokumentaciju

▍VL1 je osnovni peer-to-peer (P2P) transportni sloj, neka vrsta „virtuelnog kabla“.

“Globalni centar podataka zahtijeva 'globalni ormar' kablova.”

U konvencionalnim mrežama, L1 (OSI Layer 1) se odnosi na stvarne kablove ili bežične radio uređaje koji prenose podatke i fizičke čipove uređaja primopredajnika koji ih moduliraju i demoduliraju. VL1 je peer-to-peer (P2P) mreža koja radi istu stvar, koristeći enkripciju, autentifikaciju i druge mrežne trikove za organiziranje virtualnih kablova po potrebi.

Štaviše, to radi automatski, brzo i bez uključivanja korisnika koji pokreće novi ZeroTier čvor.

Da bi se to postiglo, VL1 je organiziran slično sistemu naziva domena. U srcu mreže je grupa visoko dostupnih root servera, čija je uloga slična onoj DNS root servera imena. Trenutno su glavni (planetarni) root serveri pod kontrolom programera - ZeroTier, Inc. i pružaju se kao besplatna usluga. 

Međutim, moguće je kreirati prilagođene root servere (luns) koji vam omogućavaju:

  • smanjiti ovisnost o infrastrukturi ZeroTier, Inc.; Link na dokumentaciju
  • povećati produktivnost minimiziranjem kašnjenja; 
  • nastaviti raditi normalno ako se internet veza izgubi.

U početku se čvorovi pokreću bez direktnih međusobnih veza. 

Svaki peer na VL1 ima jedinstvenu 40-bitnu (10 heksadecimalnu) ZeroTier adresu, koja je, za razliku od IP adresa, šifrovani identifikator koji ne sadrži informacije o rutiranju. Ova adresa se izračunava iz javnog dijela javnog/privatnog para ključeva. Adresa čvora, javni ključ i privatni ključ zajedno čine njegov identitet.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Što se šifriranja tiče, ovo je razlog za poseban članak.

Link na dokumentaciju

Da bi uspostavili komunikaciju, vršnjaci prvo šalju pakete „gore“ stablo korijenskih servera, a kako ovi paketi putuju kroz mrežu, oni usput pokreću nasumično kreiranje proslijeđenih kanala. Stablo se stalno pokušava "srušiti samo od sebe" kako bi se optimiziralo za mapu rute koju pohranjuje.

Mehanizam za uspostavljanje peer-to-peer veze je sljedeći:

Smart Ethernet prekidač za planetu Zemlju

  1. Čvor A želi da pošalje paket čvoru B, ali pošto ne zna direktnu putanju, šalje ga uzvodno do čvora R (mesec, korisnikov root server).
  2. Ako čvor R ima direktnu vezu sa čvorom B, on prosljeđuje paket tamo. U suprotnom, on šalje paket uzvodno prije nego što stigne do planetarnih korijena.Planetarni korijeni znaju za sve čvorove, tako da će paket na kraju doći do čvora B ako je na mreži.
  3. Čvor R također šalje poruku zvanu "randezvous" čvoru A, koja sadrži nagoveštaje o tome kako može doći do čvora B. U međuvremenu, korijenski server, koji prosljeđuje paket čvoru B, šalje "rendezvous" informirajući ga o tome kako može dohvatni čvor A.
  4. Čvorovi A i B primaju svoje poruke sastanka i pokušavaju da pošalju probne poruke jedni drugima u pokušaju da probiju bilo koji NAT ili zaštitni zid sa stanjem na koji se naiđu na putu. Ako ovo uspije, tada se uspostavlja direktna veza i paketi više ne idu naprijed-natrag.

Ako se direktna veza ne može uspostaviti, komunikacija će se nastaviti preko releja, a pokušaji direktne veze će se nastaviti dok se ne postigne uspješan rezultat. 

VL1 također ima druge značajke za uspostavljanje direktne povezanosti, uključujući LAN peer discovery, predviđanje porta za prelazak simetričnog IPv4 NAT-a i eksplicitno mapiranje portova korištenjem uPnP i/ili NAT-PMP ako je dostupno na lokalnom fizičkom LAN-u.

→ Link na dokumentaciju

▍VL2 je protokol Ethernet virtuelizacije mreže sličan VXLAN-u sa funkcijama upravljanja SDN-om. Poznato komunikacijsko okruženje za OS i aplikacije...

Za razliku od VL1, kreiranje VL2 mreža (VLAN) i povezivanje čvorova na njih, kao i upravljanje njima, zahtijeva direktno učešće korisnika. On to može učiniti pomoću mrežnog kontrolera. U suštini, to je običan ZeroTier čvor, gdje se funkcije kontrolera kontroliraju na dva načina: ili direktno, promjenom datoteka, ili, kako programer snažno preporučuje, korištenjem objavljenog API-ja. 

Ova metoda upravljanja ZeroTier virtuelnim mrežama nije baš zgodna za prosječnu osobu, tako da postoji nekoliko GUI-ja:
 

  • Jedan od programera ZeroTier, dostupan kao javno SaaS rješenje u oblaku s četiri plana pretplate, uključujući besplatne, ali ograničene u broju upravljanih uređaja i nivou podrške
  • Drugi je od nezavisnog programera, donekle pojednostavljen u funkcionalnosti, ali dostupan kao privatno rješenje otvorenog koda za korištenje lokalno ili na cloud resursima.

VL2 je implementiran na vrhu VL1 i njime se transportuje. Međutim, on nasljeđuje šifriranje i autentifikaciju VL1 krajnje točke, a također koristi svoje asimetrične ključeve za potpisivanje i provjeru vjerodajnica. VL1 vam omogućava implementaciju VL2 bez brige o postojećoj topologiji fizičke mreže. To jest, problemi sa povezivanjem i efikasnošću rutiranja su VL1 problemi. Važno je razumjeti da ne postoji veza između VL2 virtualnih mreža i VL1 staza. Slično VLAN multipleksiranju u ožičenom LAN-u, dva čvora koja dijele višestruko članstvo u mreži i dalje će imati samo jednu VL1 (virtuelni kabel) putanju između sebe.

Svaka VL2 mreža (VLAN) je identificirana 64-bitnom (16 heksadecimalnom) ZeroTier mrežnom adresom, koja sadrži 40-bitnu ZeroTier adresu kontrolera i 24-bitni broj koji identificira mrežu koju je kreirao taj kontroler.

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

Kada se čvor pridruži mreži ili zatraži ažuriranje mrežne konfiguracije, on šalje poruku zahtjeva mrežne konfiguracije (preko VL1) mrežnom kontroleru. Kontroler tada koristi VL1 adresu čvora da ga pronađe na mreži i pošalje mu odgovarajuće certifikate, vjerodajnice i informacije o konfiguraciji. Sa stanovišta VL2 virtuelnih mreža, VL1 ZeroTier adrese se mogu smatrati brojevima portova na ogromnom globalnom virtuelnom prekidaču.

Svi vjerodajnici koje mrežni kontrolori izdaju čvorovima članicama date mreže su potpisani tajnim ključem kontrolora tako da ih svi učesnici mreže mogu provjeriti. Akreditivi imaju vremenske oznake koje generiše kontroler, omogućavajući relativno poređenje bez potrebe za pristupom lokalnom sistemskom satu domaćina. 

Akreditivi se izdaju samo njihovim vlasnicima, a zatim se šalju kolegama koji žele komunicirati s drugim čvorovima na mreži. Ovo omogućava mreži da se skalira do ogromnih veličina bez potrebe za keširanjem velikih količina vjerodajnica na čvorovima ili stalnim kontaktiranjem mrežnog kontrolera.

ZeroTier mreže podržavaju multicast distribuciju kroz jednostavan sistem objavljivanja/pretplate.

Link na dokumentaciju

Kada čvor želi primiti multicast emitiranje za određenu distribucijsku grupu, on oglašava članstvo u toj grupi drugim članovima mreže s kojima komunicira i mrežnom kontroloru. Kada čvor želi poslati multicast, on istovremeno pristupa svojoj keš memoriji nedavnih publikacija i povremeno zahtijeva dodatne publikacije.

Emitovanje (Ethernet ff: ff: ff: ff: ff: ff) se tretira kao višestruka grupa na koju su svi učesnici pretplaćeni. Može se onemogućiti na nivou mreže kako bi se smanjio promet ako nije potreban. 

ZeroTier emulira pravi Ethernet prekidač. Ova činjenica nam omogućava da izvršimo kombinovanje kreiranih virtuelnih mreža sa drugim Ethernet mrežama (žični LAN, WiFi, virtuelni backplane, itd.) na nivou data linka - korišćenjem običnog Ethernet mosta.

Da bi djelovao kao most, mrežni kontroler mora odrediti hosta kao takvog. Ova šema je implementirana iz sigurnosnih razloga, budući da normalnim mrežnim domaćinima nije dozvoljeno da šalju promet sa izvora koji nije njihov MAC adresa. Čvorovi označeni kao mostovi također koriste poseban način multicast algoritma, koji s njima stupa u agresivniju i ciljanu interakciju tokom grupnih pretplata i replikacije cijelog broadcast prometa i ARP zahtjeva. 

Prekidač takođe ima mogućnost kreiranja javnih i ad-hoc mreža, QoS mehanizam i uređivač mrežnih pravila.

▍Čvor:

ZeroTier One je usluga koja se izvodi na prijenosnim računalima, stolnim računalima, serverima, virtualnim mašinama i kontejnerima koja pruža konekcije na virtuelnu mrežu preko virtuelnog mrežnog porta, slično VPN klijentu. 

Kada se servis instalira i pokrene, možete se povezati na virtuelne mreže koristeći njihove 16-cifrene adrese. Svaka mreža se pojavljuje kao virtuelni mrežni port na sistemu, koji se ponaša kao običan Ethernet port.

ZeroTier One je trenutno dostupan za sljedeće OS i sisteme.

OS:

  • Microsoft Windows - MSI instalater x86/x64
  • MacOS - PKG instalater
  • Apple iOS - Prodavnica aplikacija
  • android — Play Store
  • Linux - DEB/RPM
  • FreeBSD - FreeBSD paket

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Ostali:

  • doker - docker fajl
  • OpenWRT - luka zajednice
  • Ugrađivanje aplikacija - SDK (libzt)

Da sumiramo sve gore navedeno, napomenuo bih da je ZeroTier odličan i brz alat za kombiniranje vaših fizičkih, virtualnih ili cloud resursa u zajedničku lokalnu mrežu, sa mogućnošću podjele na VLAN-ove i odsustvom jedne točke kvara. .

To je to za teorijski dio u formatu prvog članka o ZeroTier-u za Habr - to je vjerojatno sve! U sljedećem članku planiram da u praksi demonstriram kreiranje virtuelne mrežne infrastrukture zasnovane na ZeroTieru, gdje će se kao mrežni kontroler koristiti VDS sa privatnim open source GUI šablonom. 

Dragi čitaoci! Koristite li ZeroTier tehnologiju u svojim projektima? Ako ne, koje alate koristite za umrežavanje svojih resursa?

Smart Ethernet prekidač za planetu Zemlju

izvor: www.habr.com

Dodajte komentar