Pametni Ethernet prekidač za planet Zemlju

Pametni Ethernet prekidač za planet Zemlju
“Možete stvoriti rješenje (riješiti problem) na nekoliko načina, ali najskuplja i/ili najpopularnija metoda nije uvijek najučinkovitija!”

uvod

Prije otprilike tri godine, u procesu razvoja udaljenog modela za oporavak podataka nakon katastrofe, naišao sam na jednu prepreku koja nije bila odmah uočena - nedostatak informacija o novim originalnim rješenjima za mrežnu virtualizaciju u izvorima zajednice. 

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

  1. Udaljeni korisnik koji me je kontaktirao, čije se računalo jednom odbilo pokrenuti, prikazujući poruku "sistemski disk nije otkriven/nije formatiran", učitava ga koristeći life USB. 
  2. Tijekom procesa pokretanja, sustav se automatski spaja na sigurnu privatnu lokalnu mrežu, koja osim sebe sadrži radnu stanicu administratora, u ovom slučaju prijenosno računalo, i NAS čvor. 
  3. Zatim se povezujem - ili da oživim particije diska, ili da izvučem podatke odatle.

U početku sam ovaj model implementirao pomoću VPN poslužitelja na lokalnom usmjerivaču u mreži pod mojom kontrolom, zatim na iznajmljenom VDS-u. Ali, kako to često biva i prema Chisholmovom prvom zakonu, ako pada kiša, Internet provideru će pasti mreža, a sporovi između poslovnih subjekata uzrokovat će gubitak "energije" pružatelja usluge...

Stoga sam odlučio najprije formulirati osnovne zahtjeve koje potrebni alat mora zadovoljiti. Prvi je decentralizacija. Drugo, s obzirom da imam nekoliko ovih životnih USB-ova, svaki od njih ima zasebnu izoliranu mrežu. Pa, treće, brzo povezivanje s mrežom raznih uređaja i jednostavno upravljanje njima, uključujući i slučaj da moje prijenosno računalo također postane žrtva gore navedenog zakona.

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

Tijekom ovih novogodišnjih praznika, pokušavajući shvatiti je li se situacija sa sadržajem promijenila od tog nezaboravnog trenutka, proveo sam selektivnu reviziju dostupnosti članaka na ovu temu, koristeći Habr kao izvor. Za upit “ZeroTier” u rezultatima pretraživanja postoje samo tri članka koja ga spominju, a niti jedan s barem kratkim opisom. I to unatoč činjenici da se među njima nalazi i prijevod članka koji je napisao sam osnivač ZeroTier, Inc. — Adam Jerymenko.

Rezultati su bili razočaravajući i potaknuli su me da počnem detaljnije govoriti o ZeroTieru, poštedivši moderne "tragače" da moraju ići istim putem kojim sam ja išao.

Pa što si ti?

Programer pozicionira ZeroTier kao inteligentni Ethernet preklopnik za planet Zemlju. 

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

Ovo je više marketinški opis, sada o tehnološkim značajkama.

▍Kernel: 

ZeroTier Network Hypervisor je samostalni mehanizam za virtualizaciju mreže koji emulira Ethernet mrežu, sličnu VXLAN-u, povrh globalne šifrirane peer-to-peer (P2P) mreže.

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

Link na dokumentaciju

▍VL1 je osnovni peer-to-peer (P2P) prijenosni sloj, vrsta "virtualnog kabela".

"Globalni podatkovni centar zahtijeva 'globalni ormar' kablova."

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

Štoviše, to radi automatski, brzo i bez uplitanja korisnika koji pokreće novi ZeroTier čvor.

Kako bi se to postiglo, VL1 je organiziran slično sustavu imena domene. U središtu mreže nalazi se grupa vrlo dostupnih korijenskih poslužitelja, čija je uloga slična onoj DNS korijenskih poslužitelja imena. Trenutno su glavni (planetarni) korijenski poslužitelji pod kontrolom programera - ZeroTier, Inc. i pružaju se kao besplatna usluga. 

Međutim, moguće je stvoriti prilagođene korijenske poslužitelje (luns) koji vam omogućuju sljedeće:

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

U početku se čvorovi pokreću bez izravne međusobne veze. 

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

Member ID: df56c5621c  
            |
            ZeroTier address of node

Što se enkripcije tiče, to je razlog za poseban članak.

Link na dokumentaciju

Da bi uspostavili komunikaciju, ravnopravni uređaji prvo šalju pakete "gore" na stablo korijenskih poslužitelja, a dok ti paketi putuju kroz mrežu, usput pokreću nasumično stvaranje kanala za prosljeđivanje. Stablo se neprestano pokušava "srušiti samo od sebe" kako bi se optimiziralo za kartu rute koju pohranjuje.

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

Pametni Ethernet prekidač za planet Zemlju

  1. Čvor A želi poslati paket čvoru B, ali budući da ne zna izravni put, šalje ga uzvodno čvoru R (mjesec, korisnikov korijenski poslužitelj).
  2. Ako čvor R ima izravnu vezu s čvorom B, prosljeđuje paket tamo. U suprotnom, š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 on-line.
  3. Čvor R također šalje poruku zvanu "randezvous" čvoru A, koja sadrži savjete o tome kako može doći do čvora B. U međuvremenu, korijenski poslužitelj, koji prosljeđuje paket čvoru B, šalje "randezvous" informirajući ga o tome kako može doći do čvora A.
  4. Čvorovi A i B primaju svoje poruke o susretu i pokušavaju slati probne poruke jedni drugima u pokušaju probijanja NAT-a ili vatrozida s praćenjem stanja na koje naiđu usput. Ako ovo uspije, tada se uspostavlja izravna veza i paketi više ne idu naprijed-natrag.

Ako se izravna veza ne može uspostaviti, komunikacija će se nastaviti putem releja, a pokušaji izravne veze nastavit će se sve dok se ne postigne uspješan rezultat. 

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

→ Link na dokumentaciju

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

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

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

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

VL2 je implementiran na vrhu VL1 i njime se prenosi. Međutim, nasljeđuje enkripciju i autentifikaciju krajnje točke VL1, a također koristi svoje asimetrične ključeve za potpisivanje i provjeru vjerodajnica. VL1 vam omogućuje implementaciju VL2 bez brige o postojećoj topologiji fizičke mreže. To jest, problemi s povezivanjem i učinkovitošću usmjeravanja 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 žičnom LAN-u, dva čvora koja dijele višestruka članstva u mreži i dalje će imati samo jedan VL1 (virtualni kabel) put između njih.

Svaka VL2 mreža (VLAN) identificirana je 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 za mrežnu konfiguraciju (putem VL1) mrežnom kontroleru. Kontroler zatim koristi VL1 adresu čvora da ga pronađe na mreži i pošalje mu odgovarajuće certifikate, vjerodajnice i podatke o konfiguraciji. Sa stajališta VL2 virtualnih mreža, VL1 ZeroTier adrese mogu se smatrati brojevima portova na ogromnom globalnom virtualnom preklopniku.

Sve vjerodajnice koje mrežni kontroleri izdaju čvorovima članicama određene mreže potpisane su tajnim ključem kontrolera tako da ih svi sudionici mreže mogu potvrditi. Vjerodajnice imaju vremenske oznake koje generira kontroler, što omogućuje relativnu usporedbu bez potrebe za pristupom satu lokalnog sustava glavnog računala. 

Vjerodajnice se izdaju samo njihovim vlasnicima, a zatim se šalju ravnopravnim korisnicima koji žele komunicirati s drugim čvorovima na mreži. To omogućuje mreži skaliranje do enormnih veličina bez potrebe za predmemorijom velikih količina vjerodajnica na čvorovima ili stalnog kontaktiranja mrežnog kontrolera.

ZeroTier mreže podržavaju multicast distribuciju putem jednostavnog sustava 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 kontroleru. Kada čvor želi poslati multicast, on istovremeno pristupa svojoj predmemoriji nedavnih publikacija i povremeno zahtijeva dodatne publikacije.

Emitiranje (Ethernet ff: ff: ff: ff: ff: ff) tretira se kao multicast grupa na koju su se pretplatili svi sudionici. Može se onemogućiti na razini mreže kako bi se smanjio promet ako nije potreban. 

ZeroTier emulira pravi Ethernet preklopnik. Ova činjenica nam omogućuje da provedemo kombiniranje kreiranih virtualnih mreža s drugim Ethernet mrežama (žičani LAN, WiFi, virtualna backplane, itd.) na razini podatkovne veze - korištenjem običnog Ethernet mosta.

Da bi djelovao kao most, mrežni kontroler mora odrediti host kao takav. Ova shema je implementirana iz sigurnosnih razloga, jer normalnim mrežnim hostovima nije dopušteno slanje prometa iz izvora koji nije njihova MAC adresa. Čvorovi označeni kao mostovi također koriste poseban način multicast algoritma, koji s njima stupa u agresivniju i ciljaniju interakciju tijekom grupnih pretplata i replikacije cjelokupnog emitiranog prometa i ARP zahtjeva. 

Switch također ima mogućnost stvaranja javnih i ad-hoc mreža, QoS mehanizam i uređivač mrežnih pravila.

▍Čvor:

ZeroTier One je usluga koja radi na prijenosnim računalima, stolnim računalima, poslužiteljima, virtualnim strojevima i spremnicima koja omogućuje povezivanje s virtualnom mrežom putem virtualnog mrežnog priključka, slično VPN klijentu. 

Nakon što je usluga instalirana i pokrenuta, možete se spojiti na virtualne mreže pomoću njihovih 16-znamenkastih adresa. Svaka se mreža pojavljuje kao virtualni mrežni priključak na sustavu, koji se ponaša kao obični Ethernet priključak.

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

OS:

  • Microsoft Windows - MSI instalacijski program x86/x64
  • MacOS - PKG instalater
  • Apple iOS - Trgovina aplikacijama
  • Android - Trgovina igračaka
  • Linux - DEB/RPM
  • FreeBSD - FreeBSD paket

U:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

ostalo:

  • Lučki radnik - docker datoteka
  • OpenWRT - komunalna luka
  • Ugradnja aplikacije - SDK (libzt)

Da rezimiramo sve gore navedeno, istaknuo bih da je ZeroTier izvrstan i brz alat za kombiniranje vaših fizičkih, virtualnih ili resursa u oblaku u zajedničku lokalnu mrežu, s mogućnošću dijeljenja u VLAN-ove i nepostojanjem jedne točke kvara .

To je to za teorijski dio u formatu prvog članka o ZeroTieru za Habr - to je vjerojatno sve! U sljedećem članku planiram u praksi demonstrirati stvaranje virtualne mrežne infrastrukture temeljene na ZeroTier-u, gdje će se kao mrežni kontroler koristiti VDS s privatnim open source GUI predloškom. 

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

Pametni Ethernet prekidač za planet Zemlju

Izvor: www.habr.com

Dodajte komentar