Nutikas Etherneti lüliti Planet Earthile

Nutikas Etherneti lüliti Planet Earthile
"Lahendust (probleemi lahendada) saab luua mitmel viisil, kuid kõige kallim ja/või populaarseim meetod ei ole alati kõige tõhusam!"

Preambul

Umbes kolm aastat tagasi puutusin katastroofiandmete taastamise kaugmudeli väljatöötamise käigus kokku ühe takistusega, mida kohe ei märgatud - teabe puudumine võrgu virtualiseerimise uute originaalsete lahenduste kohta kogukonna allikates. 

Töötatud mudeli algoritm kavandati järgmiselt: 

  1. Minuga ühendust võtnud kaugkasutaja, kelle arvuti keeldus kord käivitamast, kuvades teade "süsteemiketast ei tuvastatud / pole vormindatud", laadib selle USB-liidese abil. 
  2. Alglaadimise käigus ühendub süsteem automaatselt turvalise privaatvõrguga, mis sisaldab lisaks endale ka administraatori tööjaama, antud juhul sülearvuti ja NAS-i sõlme. 
  3. Seejärel ühendan - kas kettapartitsioonide taastamiseks või sealt andmete väljavõtmiseks.

Esialgu rakendasin seda mudelit VPN-serveri abil kohalikus ruuteris minu kontrolli all olevas võrgus, seejärel renditud VDS-is. Kuid nagu sageli juhtub ja Chisholmi esimese seaduse kohaselt, kui vihma sajab, läheb Interneti-pakkuja võrk alla, siis äriüksuste vahelised vaidlused põhjustavad teenusepakkuja "energiat" ...

Seetõttu otsustasin kõigepealt sõnastada põhinõuded, millele vajalik tööriist peab vastama. Esimene on detsentraliseerimine. Teiseks, arvestades, et mul on mitu sellist eluiga USB-d, on igaühel neist eraldi isoleeritud võrk. No kolmandaks erinevate seadmete kiire ühendamine võrku ja nende lihtne haldamine, sh juhuks, kui ka minu sülearvuti eelpool mainitud seaduse ohvriks langeb.

Sellest lähtuvalt ja olles veetnud kaks ja pool kuud mitmete mitte eriti sobivate võimaluste praktilise uurimisega, otsustasin omal riskil ja riskil proovida mõnda teist tööriista, mis pärines mulle tol ajal tundmatust startupist nimega ZeroTier. Mida ma hiljem ei kahetsenud.

Nende uusaastapühade ajal, püüdes mõista, kas olukord sisuga on sellest meeldejäävast hetkest alates muutunud, viisin läbi sel teemal olevate artiklite kättesaadavuse valikulise auditi, kasutades allikana Habrit. Päringule “ZeroTier” on otsingutulemustes ainult kolm artiklit, mis seda mainivad, ja mitte üheski vähemalt lühikirjeldusega. Ja seda hoolimata asjaolust, et nende hulgas on ka ZeroTier, Inc. asutaja enda kirjutatud artikli tõlge. — Adam Ierymenko.

Tulemused valmistasid pettumuse ja ajendasid mind rääkima ZeroTierist üksikasjalikumalt, säästes tänapäevaseid "otsijaid" sellest, et nad ei pea minema samale teele, mille valisin.

Mis sa siis oled?

Arendaja positsioneerib ZeroTieri kui intelligentse Etherneti lüliti planeedile Maa. 

"See on hajutatud võrgu hüperviisor, mis on ehitatud krüptograafiliselt turvalise globaalse võrdõigusvõrgu (P2P) peale. Tööriist, mis sarnaneb ettevõtte SDN-lülitiga, mis on loodud virtuaalsete võrkude korraldamiseks üle füüsiliste, nii kohalike kui ka globaalsete võrkude, võimalusega ühendada peaaegu iga rakendust või seadet.

See on rohkem turunduskirjeldus, nüüd tehnoloogiliste omaduste kohta.

▍Tuum: 

ZeroTier Network Hypervisor on iseseisev võrgu virtualiseerimismootor, mis emuleerib Etherneti võrku sarnaselt VXLAN-ile globaalse krüpteeritud võrdõigusvõrgu (P2P) peal.

ZeroTieris kasutatavad protokollid on originaalsed, kuigi välimuselt sarnased VXLAN-i ja IPSec-iga ning koosnevad kahest kontseptuaalselt eraldiseisvast, kuid omavahel tihedalt seotud kihist: VL1 ja VL2.

Link dokumentatsioonile

▍VL1 on põhiline P2P (peer-to-peer) transpordikiht, omamoodi "virtuaalne kaabel".

"Ülemaailmne andmekeskus nõuab ülemaailmset kaabelduskappi."

Tavalistes võrkudes viitab L1 (OSI kiht 1) tegelikele kaablitele või traadita raadiotele, mis edastavad andmeid, ja füüsilistele transiiverseadmete kiipidele, mis neid moduleerivad ja demoduleerivad. VL1 on peer-to-peer (P2P) võrk, mis teeb sama, kasutades krüptimist, autentimist ja muid võrgunippe, et korraldada virtuaalseid kaableid vastavalt vajadusele.

Lisaks teeb see seda automaatselt, kiiresti ja ilma uue ZeroTier sõlme käivitamiseta kasutaja kaasamiseta.

Selle saavutamiseks on VL1 korraldatud sarnaselt domeeninimede süsteemiga. Võrgu keskmes on rühm väga kättesaadavaid juurservereid, mille roll on sarnane DNS-i juurnimeserverite omaga. Hetkel on peamised (planetaarsed) juurserverid arendaja – ZeroTier, Inc. – kontrolli all. ja neid pakutakse tasuta teenusena. 

Siiski on võimalik luua kohandatud juurservereid (luns), mis võimaldavad teil:

  • vähendada sõltuvust ZeroTier, Inc. infrastruktuurist; Link dokumentatsioonile
  • suurendada tootlikkust, minimeerides viivitusi; 
  • jätkake tööd nagu tavaliselt, kui Interneti-ühendus katkeb.

Algselt käivitatakse sõlmed ilma üksteisega otseste ühendusteta. 

Igal VL1 partneril on ainulaadne 40-bitine (10 kuueteistkümnendsüsteemi) ZeroTier aadress, mis erinevalt IP-aadressidest on krüpteeritud identifikaator, mis ei sisalda marsruutimisteavet. See aadress arvutatakse avaliku/privaatvõtmepaari avaliku osa põhjal. Sõlme aadress, avalik võti ja privaatvõti moodustavad koos selle identiteedi.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Mis puutub krüptimisse, siis see on eraldi artikli põhjus.

Link dokumentatsioonile

Side loomiseks saadavad partnerid esmalt paketid juurserverite puust "üles" ja kui need paketid liiguvad läbi võrgu, algatavad nad teel edasisuunamiskanalite juhusliku loomise. Puu üritab pidevalt “iseenesest kokku variseda”, et optimeerida end talletatava marsruudikaardi jaoks.

Peer-to-peer ühenduse loomise mehhanism on järgmine:

Nutikas Etherneti lüliti Planet Earthile

  1. Sõlm A soovib saata paketi sõlmele B, kuid kuna ta ei tea otseteed, saadab ta selle ülesvoolu sõlme R (kuu, kasutaja juurserver).
  2. Kui sõlmel R on otseühendus sõlmega B, saadab ta paketi sinna edasi. Vastasel juhul saadab see paketi ülesvoolu enne planeedi juurteni jõudmist.Planeedi juured teavad kõigist sõlmedest, seega jõuab pakett lõpuks sõlme B, kui see on võrgus.
  3. Sõlm R saadab sõlmele A ka sõnumi nimega "rendezvous", mis sisaldab vihjeid selle kohta, kuidas see sõlme B jõuda. Samal ajal saadab juurserver, mis saadab paketi sõlmele B edasi, "rendezvous"-teate, teavitades sellest, kuidas see saab jõuda. jõuda sõlme A.
  4. Sõlmed A ja B saavad oma kohtumisteateid ja proovivad saata üksteisele testsõnumeid, et rikkuda mis tahes teel esinenud NAT-i või olekupõhiseid tulemüüre. Kui see töötab, luuakse otseühendus ja paketid ei liigu enam edasi-tagasi.

Kui otseühendust ei saa luua, jätkub side relee kaudu ja otseühenduse katsed jätkuvad kuni eduka tulemuse saavutamiseni. 

VL1-l on ka muid funktsioone otsese ühenduvuse loomiseks, sealhulgas LAN-i partnertuvastus, pordi ennustamine sümmeetrilise IPv4 NAT-i läbimiseks ja pordi selgesõnaline kaardistamine uPnP ja/või NAT-PMP abil, kui see on kohalikus füüsilises LAN-is saadaval.

→ Link dokumentatsioonile

▍VL2 on VXLAN-i sarnane Etherneti võrgu virtualiseerimisprotokoll, millel on SDN-i haldusfunktsioonid. OS-i ja rakenduste jaoks tuttav suhtluskeskkond...

Erinevalt VL1-st nõuab VL2 võrkude (VLAN) loomine ja nendega sõlmede ühendamine, samuti nende haldamine kasutajalt otsest osalust. Ta saab seda teha võrgukontrolleri abil. Sisuliselt on tegemist tavalise ZeroTier sõlmega, kus kontrolleri funktsioone juhitakse kahel viisil: kas otse, faile muutes või, nagu arendaja tungivalt soovitab, avaldatud API abil. 

See ZeroTieri virtuaalsete võrkude haldamise meetod pole tavainimese jaoks eriti mugav, seega on mitu GUI-d:
 

  • Üks arendajalt ZeroTier, mis on saadaval avaliku pilve SaaS-i lahendusena nelja tellimisplaaniga, sealhulgas tasuta, kuid piiratud hallatavate seadmete arvu ja toe tasemega
  • Teine on sõltumatult arendajalt, funktsionaalsuselt mõnevõrra lihtsustatud, kuid saadaval privaatse avatud lähtekoodiga lahendusena kasutamiseks kohapeal või pilveressurssides.

VL2 rakendatakse VL1 peale ja transporditakse selle kaudu. Siiski pärib see VL1 lõpp-punkti krüptimise ja autentimise ning kasutab oma asümmeetrilisi võtmeid ka volituste allkirjastamiseks ja kontrollimiseks. VL1 võimaldab teil rakendada VL2 ilma olemasoleva füüsilise võrgu topoloogia pärast muretsemata. See tähendab, et ühenduse ja marsruutimise tõhususe probleemid on VL1 probleemid. Oluline on mõista, et VL2 virtuaalsete võrkude ja VL1 teede vahel puudub ühendus. Sarnaselt VLAN-i multipleksimisega juhtmega kohtvõrgus on kahel sõlmel, mis jagavad mitut võrguliikmelisust, ikkagi ainult üks VL1 (virtuaalkaabel) tee.

Iga VL2-võrk (VLAN) identifitseeritakse 64-bitise (16 kuueteistkümnendsüsteemi) ZeroTier võrguaadressi järgi, mis sisaldab kontrolleri 40-bitist ZeroTier aadressi ja 24-bitist numbrit, mis identifitseerib selle kontrolleri loodud võrgu.

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

Kui sõlm liitub võrguga või taotleb võrgukonfiguratsiooni värskendust, saadab see võrgukontrollerile võrgukonfiguratsiooni päringu sõnumi (VL1 kaudu). Seejärel kasutab kontroller sõlme VL1-aadressi, et leida see võrgust ja saata sellele vastavad sertifikaadid, mandaadid ja konfiguratsiooniteave. VL2 virtuaalsete võrkude seisukohast võib VL1 ZeroTier aadresse pidada tohutu globaalse virtuaalse kommutaatori pordinumbriteks.

Kõik võrgukontrollerite poolt antud võrgu liikmesõlmedele väljastatud mandaadid allkirjastatakse kontrolleri salajase võtmega, et kõik võrgus osalejad saaksid neid kontrollida. Mandaatidel on kontrolleri loodud ajatemplid, mis võimaldavad suhtelist võrdlust ilma hosti kohaliku süsteemi kella juurde pääsemata. 

Mandaadid väljastatakse ainult nende omanikele ja saadetakse seejärel kaaslastele, kes soovivad suhelda võrgu teiste sõlmedega. See võimaldab võrgul mastaapida tohutuid suurusi, ilma et oleks vaja vahemällu salvestada suuri koguseid sõlmedes mandaate või pidevalt võrgukontrolleriga ühendust võtta.

ZeroTier võrgud toetavad multisaadete levitamist lihtsa avaldamis-/tellimissüsteemi kaudu.

Link dokumentatsioonile

Kui sõlm soovib vastu võtta konkreetse jaotusgrupi multisaateedastust, reklaamib ta sellesse rühma kuulumist teistele võrgu liikmetele, kellega ta suhtleb, ja võrgukontrollerile. Kui sõlm soovib saata multisaadet, pääseb see samaaegselt juurde oma viimaste väljaannete vahemällu ja taotleb perioodiliselt täiendavaid väljaandeid.

Ülekannet (Ethernet ff: ff: ff: ff: ff: ff) käsitletakse multisaadete rühmana, mille kõik osalejad on tellinud. Kui seda pole vaja, saab selle võrgu tasemel keelata, et liiklust vähendada. 

ZeroTier emuleerib tõelist Etherneti lülitit. See asjaolu võimaldab meil teostada loodud virtuaalvõrkude kombineerimine teiste Etherneti võrkudega (juhtmega LAN, WiFi, virtuaalne tagaplaat jne) andmesideühenduse tasemel - kasutades tavalist Etherneti silda.

Sillana toimimiseks peab võrgukontroller määrama hosti sellisena. Seda skeemi rakendatakse turvakaalutlustel, kuna tavalised võrguhostid ei tohi saata liiklust muust allikast peale nende MAC-aadressi. Sildadeks määratud sõlmed kasutavad ka multiedastusalgoritmi erirežiimi, mis suhtleb nendega agressiivsemalt ja sihipärasemalt grupitellimuste ning kogu leviedastuse liikluse ja ARP-päringute replikatsiooni ajal. 

Switchil on ka võimalus luua avalikke ja ad-hoc võrke, QoS mehhanismi ja võrgureeglite redaktorit.

▍Sõlm:

ZeroTier One on sülearvutites, lauaarvutites, serverites, virtuaalmasinates ja konteinerites töötav teenus, mis pakub sarnaselt VPN-kliendiga ühendusi virtuaalse võrguga virtuaalse võrgupordi kaudu. 

Kui teenus on installitud ja käivitatud, saate luua ühenduse virtuaalvõrkudega, kasutades nende 16-kohalisi aadresse. Iga võrk kuvatakse süsteemis virtuaalse võrgupordina, mis käitub täpselt nagu tavaline Etherneti port.

ZeroTier One on praegu saadaval järgmiste operatsioonisüsteemide ja süsteemide jaoks.

Operatsioonisüsteemid:

  • Microsoft Windows - MSI installer x86/x64
  • MacOS - PKG paigaldaja
  • Apple iOS - Rakenduste pood
  • Android - Play pood
  • Linux - DEB/RPM
  • FreeBSD - FreeBSD pakett

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Teised:

  • laevalaadija - dokifail
  • OpenWRT - kogukonna sadam
  • Rakenduse manustamine - SDK (libzt)

Eelneva kokkuvõtteks märgin, et ZeroTier on suurepärane ja kiire tööriist teie füüsiliste, virtuaalsete või pilveressursside ühendamiseks ühisesse kohalikku võrku, millel on võimalus jagada see VLAN-ideks ja puudub üks tõrkepunkt. .

See on teoreetilise osa jaoks esimese artikli vormingus ZeroTier for Habr - see on ilmselt kõik! Järgmises artiklis plaanin praktikas demonstreerida ZeroTieril põhineva virtuaalse võrgu infrastruktuuri loomist, kus võrgukontrollerina hakatakse kasutama privaatse avatud lähtekoodiga GUI malliga VDS-i. 

Kallid lugejad! Kas kasutate oma projektides ZeroTier tehnoloogiat? Kui ei, siis milliseid vahendeid kasutate oma ressursside võrgustamiseks?

Nutikas Etherneti lüliti Planet Earthile

Allikas: www.habr.com

Lisa kommentaar