Smart Ethernet Switch foar Planet Earth

Smart Ethernet Switch foar Planet Earth
"Jo kinne in oplossing meitsje (in probleem oplosse) op ferskate manieren, mar de djoerste en / of populêre metoade is net altyd de meast effektyf!"

Foaropgong

Sawat trije jier lyn, yn it proses fan it ûntwikkeljen fan in model op ôfstân foar rampgegevensherstel, kaam ik ien obstakel tsjin dy't net fuortendaliks opmurken waard - it gebrek oan ynformaasje oer nije orizjinele oplossingen foar netwurkvirtualisaasje yn boarnen fan 'e mienskip. 

It algoritme foar it ûntwikkele model wie as folget pland: 

  1. In brûker op ôfstân dy't kontakt mei my hat, waans kompjûter ienris wegere om te booten, it berjocht werjaan "systeemskiif net ûntdutsen / net opmakke," laadt it mei life USB. 
  2. Tidens it opstartproses makket it systeem automatysk ferbining mei in feilich privee lokaal netwurk, dat neist himsels it wurkstasjon fan 'e behearder befettet, yn dit gefal in laptop, en in NAS-knooppunt. 
  3. Dan ferbine ik - of om de skiifpartysjes te reanimearjen, of om gegevens dêrút te ekstrahearjen.

Yn earste ynstânsje implementearre ik dit model mei in VPN-tsjinner op in lokale router yn in netwurk ûnder myn kontrôle, dan op in hierde VDS. Mar, lykas faaks bart en neffens de earste wet fan Chisholm, as it reint, sil it netwurk fan 'e ynternetprovider delkomme, dan sille skeel tusken saaklike entiteiten de tsjinstferliener "enerzjy" ferlieze ...

Dêrom haw ik besletten om earst de basiseasken te formulearjen dêr't it nedige ark oan foldwaan moat. De earste is desintralisaasje. Twads, jûn dat ik haw ferskate fan dizze libben USBs, elk fan harren hat in apart isolearre netwurk. No, as tredde, snelle ferbining mei it netwurk fan ferskate apparaten en ienfâldich behear fan har, ynklusyf yn it gefal dat myn laptop ek slachtoffer wurdt fan 'e hjirboppe neamde wet.

Op grûn dêrfan en nei't ik twa en in heale moanne bestege oan praktysk ûndersyk fan ferskate net heul geskikte opsjes, besleat ik, op eigen risiko en risiko, in oar ark te besykjen fan in opstarten dy't my op dat stuit net bekend wie ZeroTier. Dêr haw ik letter noait spyt fan hân.

Tidens dizze nijjiersfakânsjes, besykje te begripen oft de situaasje mei ynhâld is feroare sûnt dat memorabele momint, haw ik in selektive kontrôle útfierd foar de beskikberens fan artikels oer dit ûnderwerp, mei Habr as boarne. Foar de query "ZeroTier" yn 'e sykresultaten binne d'r mar trije artikels dy't it neame, en net ien mei op syn minst in koarte beskriuwing. En dit nettsjinsteande it feit dat ûnder harren in oersetting is fan in artikel skreaun troch de oprjochter fan ZeroTier, Inc. - Adam Ierymenko.

De resultaten wiene teloarstellend en fregen my om yn mear detail oer ZeroTier te begjinnen, en besparret moderne "sikers" fan deselde rûte te gean dy't ik naam.

Dus wat bisto?

De ûntwikkelder positionearret ZeroTier as in yntelliginte Ethernet-switch foar planeet Ierde. 

"It is in ferspraat netwurk hypervisor boud boppe op in kryptografysk feilich globale peer-to-peer (P2P) netwurk. In ark fergelykber mei in bedriuws-SDN-skeakel, ûntworpen om firtuele netwurken te organisearjen oer fysike, sawol lokaal as wrâldwiid, mei de mooglikheid om hast elke applikaasje of apparaat te ferbinen.

Dit is mear in marketingbeskriuwing, no oer de technologyske funksjes.

▍Kernel: 

ZeroTier Network Hypervisor is in standalone netwurk-virtualisaasjemotor dy't in Ethernet-netwurk emulearret, fergelykber mei VXLAN, boppe op in wrâldwide fersifere peer-to-peer (P2P) netwurk.

De protokollen brûkt yn ZeroTier binne orizjineel, hoewol ferlykber yn uterlik oan VXLAN en IPSec en besteane út twa konseptueel aparte, mar nau besibbe lagen: VL1 en VL2.

Link nei dokumintaasje

▍VL1 is in basis peer-to-peer (P2P) ferfier laach, in soarte fan "firtuele kabel".

"In wrâldwiid datasintrum fereasket in 'globale kast' fan bekabeling."

Yn konvinsjonele netwurken ferwiist L1 (OSI Layer 1) nei de eigentlike kabels as draadloze radio's dy't gegevens drage en de fysike transceiver-apparaatchips dy't it moduleare en demodulearje. VL1 is in peer-to-peer (P2P) netwurk dat itselde docht, mei fersifering, autentikaasje en oare netwurktricks om firtuele kabels te organisearjen as nedich.

Boppedat docht it dit automatysk, fluch en sûnder de belutsenens fan 'e brûker dy't in nije ZeroTier-knooppunt lanseart.

Om dit te berikken, wurdt VL1 op deselde manier organisearre as it domeinnammesysteem. Yn it hert fan it netwurk is in groep heechbeskikbere root-tsjinners, waans rol fergelykber is mei dy fan DNS-rootnammeservers. Op it stuit binne de wichtichste (planetêre) root-tsjinners ûnder de kontrôle fan 'e ûntwikkelder - ZeroTier, Inc. en wurde levere as in fergese tsjinst. 

It is lykwols mooglik om oanpaste root-tsjinners (luns) te meitsjen wêrmei jo:

  • ferminderje ôfhinklikens fan ZeroTier, Inc. Link nei dokumintaasje
  • fergrutsje produktiviteit troch minimalisearje fertraging; 
  • trochgean te wurkjen as normaal as de ynternetferbining ferlern is.

Yn it earstoan wurde knopen lansearre sûnder direkte ferbiningen mei elkoar. 

Elke peer op VL1 hat in unyk 40-bit (10 heksadesimale) ZeroTier-adres, dat, yn tsjinstelling ta IP-adressen, in fersifere identifier is dy't gjin routing-ynformaasje befettet. Dit adres wurdt berekkene út it iepenbiere diel fan it publyk / privee kaai pear. It adres fan in knooppunt, iepenbiere kaai en privee kaai foarmje tegearre syn identiteit.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Wat fersifering oanbelanget, is dit in reden foar in apart artikel.

Link nei dokumintaasje

Om kommunikaasje te fêstigjen stjoere peers earst pakketten "op" de beam fan root-tsjinners, en as dizze pakketten troch it netwurk reizgje, begjinne se willekeurich oanmeitsjen fan foarútkanalen ûnderweis. De beam besiket hieltyd "fansels ynstoarten" om himsels te optimalisearjen foar de rûtekaart dy't er opslaat.

It meganisme foar it oprjochtsjen fan in peer-to-peer-ferbining is as folget:

Smart Ethernet Switch foar Planet Earth

  1. Node A wol in pakket nei Node B stjoere, mar om't it it direkte paad net wit, stjoert it streamop nei Node R (moanne, de root-tsjinner fan de brûker).
  2. As node R in direkte ferbining hat mei node B, stjoert it it pakket dêr troch. Oars, it stjoert it pakket streamop foar it berikken fan de planetêre woartels. De planetêre woartels witte oer alle knopen, sadat it pakket úteinlik node B berikke sil as it online is.
  3. Node R stjoert ek in berjocht neamd in "rendezvous" nei node A, mei hints oer hoe't it node B berikke kin. Underwilens stjoert de root-tsjinner, dy't it pakket nei node B trochstjoert, in "rendezvous" dy't it ynformearret oer hoe't it kin berikke knooppunt A.
  4. Knooppunten A en B ûntfange harren rendezvous berjochten en besykje te stjoeren test berjochten nei elkoar yn in besykjen om te brekken eltse NAT of stateful firewalls tsjinkaam ûnderweis. As dit wurket, dan wurdt in direkte ferbining makke, en pakketten geane net mear hinne en wer.

As in direkte ferbining kin net fêstlein, kommunikaasje sil trochgean fia estafette, en direkte ferbining besykjen sil trochgean oant in súksesfol resultaat wurdt berikt. 

VL1 hat ek oare funksjes foar it oprjochtsjen fan direkte ferbining, ynklusyf LAN-peer-ûntdekking, poartefoarsizzing foar traversal fan symmetryske IPv4 NAT, en eksplisite havenmapping mei uPnP en / of NAT-PMP as beskikber op it lokale fysike LAN.

→ Link nei dokumintaasje

▍VL2 is in VXLAN-lykas Ethernet-netwurkvirtualisaasjeprotokol mei SDN-behearfunksjes. Fertroude kommunikaasjeomjouwing foar OS en applikaasjes ...

Oars as VL1, it meitsjen fan VL2-netwurken (VLAN's) en it ferbinen fan knooppunten dêrmei, en ek it behearen, fereasket direkte dielname fan 'e brûker. Hy kin dit dwaan mei in netwurkkontrôler. Yn essinsje is it in gewoane ZeroTier-knooppunt, wêrby't de kontrôlefunksjes op twa manieren wurde regele: of direkt, troch bestannen te feroarjen, of, lykas de ûntwikkelder sterk advisearret, mei in publisearre API. 

Dizze metoade foar it behearen fan ZeroTier firtuele netwurken is net heul handich foar de gemiddelde persoan, dus d'r binne ferskate GUI's:
 

  • Ien fan ûntwikkelder ZeroTier, beskikber as in SaaS iepenbiere wolk-oplossing mei fjouwer abonnemintsplannen, ynklusyf fergees, mar beheind yn behearde apparaten en stipenivo
  • De twadde is fan in ûnôfhinklike ûntwikkelder, wat ferienfâldige yn funksjonaliteit, mar beskikber as in privee opensource-oplossing foar gebrûk on-premise as op wolkboarnen.

VL2 wurdt ymplementearre boppe op VL1 en wurdt troch it ferfierd. It erft lykwols de fersifering en autentikaasje fan it VL1-einpunt, en brûkt ek syn asymmetryske kaaien om bewiisbrieven te ûndertekenjen en te ferifiearjen. VL1 lit jo VL2 ymplementearje sûnder soargen te meitsjen oer de besteande fysike netwurktopology. Dat is, problemen mei ferbining en rûte-effisjinsje binne VL1-problemen. It is wichtich om te begripen dat der gjin ferbining is tusken VL2 firtuele netwurken en VL1 paden. Fergelykber mei VLAN-multiplexing yn in bedrade LAN, sille twa knopen dy't meardere netwurklidmaatskippen diele noch mar ien VL1 (firtuele kabel) paad tusken har hawwe.

Elts VL2 netwurk (VLAN) wurdt identifisearre troch in 64-bit (16 heksadesimale) ZeroTier netwurk adres, dat befettet de 40-bit ZeroTier adres fan de controller en in 24-bit nûmer identifisearje it netwurk makke troch dy controller.

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

As in knooppunt komt by in netwurk of freget in netwurk konfiguraasje update, it stjoert in netwurk konfiguraasje fersyk berjocht (fia VL1) nei it netwurk controller. De controller brûkt dan it VL1-adres fan 'e knooppunt om it op it netwurk te finen en it de passende sertifikaten, referinsjes en konfiguraasjeynformaasje te stjoeren. Fanút it eachpunt fan VL2 firtuele netwurken kinne VL1 ZeroTier-adressen wurde tocht as poartenûmers op in enoarme wrâldwide firtuele switch.

Alle bewiisbrieven útjûn troch netwurk controllers oan lid knooppunten fan in opjûn netwurk wurde tekene mei de controller syn geheime kaai sadat alle netwurk dielnimmers kinne ferifiearje se. De bewiisbrieven hawwe tiidstempels generearre troch de controller, wêrtroch relative fergeliking mooglik is sûnder tagong te krijen ta de lokale systeemklok fan de host. 

Referinsjes wurde allinich útjûn oan har eigners en dan stjoerd nei leeftydsgenoaten dy't wolle kommunisearje mei oare knooppunten op it netwurk. Dit lit it netwurk skaalje nei enoarme maten sûnder de needsaak om grutte hoemannichten bewiisbrieven op knopen te cache of konstant kontakt te meitsjen mei de netwurkkontrôler.

ZeroTier-netwurken stypje multicast-distribúsje fia in ienfâldich publisearje / abonnearje systeem.

Link nei dokumintaasje

As in knooppunt in multicast-útstjoering wol ûntfange foar in bepaalde distribúsjegroep, advertearret it lidmaatskip yn dy groep oan oare leden fan it netwurk dat it kommunisearret mei en nei de netwurkkontrôler. As in knooppunt in multicast ferstjoere wol, hat it tagelyk tagong ta syn cache fan resinte publikaasjes en freget periodyk ekstra publikaasjes oan.

In útstjoering (Ethernet ff: ff: ff: ff: ff: ff) wurdt behannele as in multicast-groep dêr't alle dielnimmers har op abonnearje. It kin útskeakele wurde op it netwurknivo om ferkear te ferminderjen as it net nedich is. 

ZeroTier emulearret in echte Ethernet-switch. Dit feit lit ús útfiere kombinearjen fan de makke firtuele netwurken mei oare Ethernet netwurken (wired LAN, WiFi, firtuele backplane, ensfh) op de gegevens keppeling nivo - mei help fan in gewoane Ethernet brêge.

Om as brêge op te treden, moat de netwurkkontrôler in host as sadanich oanwize. Dit skema wurdt ymplementearre om feiligens redenen, om't normale netwurkhosters gjin ferkear ferstjoere kinne fan in oare boarne dan har MAC-adres. Knooppunten oanwiisd as brêgen brûke ek in spesjale modus fan it multicast-algoritme, dy't har agressiver en doeliger ynteraksje mei har by groepabonneminten en replikaasje fan alle útstjoerferkear en ARP-oanfragen. 

De switch hat ek de mooglikheid om iepenbiere en ad-hoc netwurken te meitsjen, in QoS-meganisme en in bewurker foar netwurkregels.

▍Node:

Zero Tier One is in tsjinst dy't rint op laptops, buroblêden, servers, firtuele masines en konteners dy't ferbiningen leveret mei in firtuele netwurk fia in firtuele netwurkpoarte, fergelykber mei in VPN-kliïnt. 

Sadree't de tsjinst is ynstallearre en rint, kinne jo ferbine mei firtuele netwurken mei help fan harren 16-karakter adressen. Elts netwurk ferskynt as in firtuele netwurk haven op it systeem dat gedraacht krekt as in normale Ethernet haven.

ZeroTier One is op it stuit beskikber foar de folgjende OS en systemen.

OS:

  • Microsoft Windows - MSI-ynstallearder x86/x64
  • MacOS - PKG-ynstallearder
  • Apple iOS - App Store
  • Android - Play Store
  • linux - DEB/RPM
  • FreeBSD - FreeBSD-pakket

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Oaren:

  • Havenarbeider - docker triem
  • OpenWRT - mienskip haven
  • App ynbêde - SDK (libzt)

Om al it boppesteande te gearfetten, soe ik opmerke dat ZeroTier in poerbêst en fluch ark is foar it kombinearjen fan jo fysike, firtuele of wolkboarnen yn in mienskiplik lokaal netwurk, mei de mooglikheid om it te ferdielen yn VLAN's en it ûntbrekken fan ien punt fan mislearring .

Dat is it foar it teoretyske diel yn it formaat fan it earste artikel oer ZeroTier foar Habr - dat is wierskynlik alles! Yn it folgjende artikel bin ik fan plan om yn 'e praktyk it oanmeitsjen fan in firtuele netwurkynfrastruktuer basearre op ZeroTier te demonstrearjen, wêr't in VDS mei in privee iepen boarne GUI-sjabloan sil wurde brûkt as netwurkkontrôler. 

Dear readers! Brûke jo ZeroTier-technology yn jo projekten? As net, hokker ark brûke jo om jo boarnen te netwurkjen?

Smart Ethernet Switch foar Planet Earth

Boarne: www.habr.com

Add a comment