Älykäs Ethernet-kytkin Planet Earthille

Älykäs Ethernet-kytkin Planet Earthille
"Voit luoda ratkaisun (ratkaista ongelman) monella tapaa, mutta kallein ja/tai suosituin tapa ei aina ole tehokkain!"

johdanto

Noin kolme vuotta sitten, kun kehittelin etämallia katastrofitietojen palautukseen, kohtasin yhden esteen, jota ei heti huomattu - tiedon puute uusista alkuperäisistä verkon virtualisointiratkaisuista yhteisölähteissä. 

Algoritmi kehitetylle mallille suunniteltiin seuraavasti: 

  1. Minuun yhteyttä ottanut etäkäyttäjä, jonka tietokone kieltäytyi kerran käynnistymästä ja joka näyttää viestin "järjestelmälevyä ei havaittu/ei alustettu", lataa sen Life USB:llä. 
  2. Käynnistyksen aikana järjestelmä muodostaa automaattisesti yhteyden suojattuun yksityiseen lähiverkkoon, joka sisältää itsensä lisäksi järjestelmänvalvojan työaseman, tässä tapauksessa kannettavan tietokoneen, ja NAS-solmun. 
  3. Sitten yhdistän - joko elvyttääkseni levyosioita tai poimiaksesi tietoja sieltä.

Aluksi otin tämän mallin käyttöön VPN-palvelimella paikallisella reitittimellä hallinnassani verkossa, sitten vuokralla VDS:llä. Mutta kuten usein tapahtuu ja Chisholmin ensimmäisen lain mukaan, jos sataa, Internet-palveluntarjoajan verkko katkeaa, jolloin liike-elämän väliset kiistat aiheuttavat palveluntarjoajan "energian menettämisen"...

Siksi päätin ensin muotoilla perusvaatimukset, jotka tarvittavan työkalun on täytettävä. Ensimmäinen on hajauttaminen. Toiseksi, koska minulla on useita tällaisia ​​elämän USB-laitteita, jokaisella niistä on erillinen eristetty verkko. No, kolmanneksi, nopea yhteys eri laitteiden verkkoon ja niiden yksinkertainen hallinta, myös siltä varalta, että kannettavani joutuu myös yllä mainitun lain uhriksi.

Tämän perusteella ja käytyäni kaksi ja puoli kuukautta useiden ei kovin sopivien vaihtoehtojen käytännön tutkimukseen, päätin omalla riskilläni ja riskilläni kokeilla toista työkalua minulle tuolloin tuntemattomalta startupilta nimeltä ZeroTier. Mitä en ole koskaan katunut myöhemmin.

Näiden uudenvuoden lomien aikana, yrittäessäni ymmärtää, onko sisältötilanne muuttunut tuosta ikimuistoisesta hetkestä, tein valikoivan tarkastuksen tätä aihetta koskevien artikkelien saatavuudesta käyttämällä Habria lähteenä. Hakulausekkeelle "ZeroTier" hakutuloksissa on vain kolme artikkelia, joissa se mainitaan, eikä yhtäkään, jossa on ainakin lyhyt kuvaus. Ja tämä huolimatta siitä, että heidän joukossaan on käännös artikkelista, jonka ZeroTier, Inc.:n perustaja on itse kirjoittanut. — Adam Ierymenko.

Tulokset olivat pettymys ja saivat minut puhumaan ZeroTieristä tarkemmin, mikä säästää nykyaikaiset "etsijät" joutumasta kulkemaan samaa reittiä kuin minä valitsin.

Joten mikä sinä olet?

Kehittäjä asettaa ZeroTierin älykkääksi Ethernet-kytkimeksi maapallolle. 

"Se on hajautettu verkkohypervisor, joka on rakennettu kryptografisesti suojatun maailmanlaajuisen vertaisverkon (P2P) päälle. Työkalu, joka on samanlainen kuin yrityksen SDN-kytkin, joka on suunniteltu järjestämään virtuaalisia verkkoja fyysisten verkkojen yli, sekä paikallisten että maailmanlaajuisten, ja joka pystyy yhdistämään melkein minkä tahansa sovelluksen tai laitteen."

Tämä on enemmän markkinoinnin kuvaus, nyt teknisistä ominaisuuksista.

▍Ydin: 

ZeroTier Network Hypervisor on erillinen verkon virtualisointimoottori, joka emuloi Ethernet-verkkoa, joka on samanlainen kuin VXLAN, maailmanlaajuisen salatun vertaisverkon (P2P) päällä.

ZeroTierissa käytetyt protokollat ​​ovat alkuperäisiä, vaikkakin ulkonäöltään samanlaisia ​​kuin VXLAN ja IPSec, ja ne koostuvat kahdesta käsitteellisesti erillisestä, mutta läheisesti liittyvästä kerroksesta: VL1 ja VL2.

Linkki dokumentaatioon

▍VL1 on peer-to-peer (P2P) -perussiirtokerros, eräänlainen "virtuaalikaapeli".

"Maailmanlaajuinen datakeskus vaatii "maailmanlaajuisen kaapeloinnin".

Perinteisissä verkoissa L1 (OSI Layer 1) viittaa varsinaisiin kaapeleihin tai langattomiin radioihin, jotka kuljettavat dataa, ja fyysisiä lähetin-vastaanotinlaitesiruja, jotka moduloivat ja demoduloivat sitä. VL1 on vertaisverkko (P2P), joka tekee saman asian käyttämällä salausta, todennusta ja muita verkkotemppuja virtuaalisten kaapelien järjestämiseen tarpeen mukaan.

Lisäksi se tekee tämän automaattisesti, nopeasti ja ilman käyttäjän osallistumista uuden ZeroTier-solmun käynnistämiseen.

Tämän saavuttamiseksi VL1 on järjestetty samalla tavalla kuin verkkotunnusjärjestelmä. Verkon ytimessä on joukko erittäin saatavilla olevia juuripalvelimia, joiden rooli on samanlainen kuin DNS-juurinimipalvelimilla. Tällä hetkellä tärkeimmät (planetaariset) juuripalvelimet ovat kehittäjän - ZeroTier, Inc:n - hallinnassa. ja tarjotaan ilmaisena palveluna. 

On kuitenkin mahdollista luoda mukautettuja juuripalvelimia (luns), joiden avulla voit:

  • vähentää riippuvuutta ZeroTier, Inc:n infrastruktuurista; Linkki dokumentaatioon
  • lisätä tuottavuutta minimoimalla viiveet; 
  • jatkaa toimintaansa normaalisti, jos Internet-yhteys katkeaa.

Aluksi solmut käynnistetään ilman suoria yhteyksiä toisiinsa. 

Jokaisella VL1-vertaisuudella on ainutlaatuinen 40-bittinen (10 heksadesimaali) ZeroTier-osoite, joka toisin kuin IP-osoitteet, on salattu tunniste, joka ei sisällä reititystietoja. Tämä osoite lasketaan julkisen/yksityisen avainparin julkisesta osasta. Solmun osoite, julkinen avain ja yksityinen avain muodostavat yhdessä sen identiteetin.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Mitä tulee salaukseen, tämä on syy erilliselle artikkelille.

Linkki dokumentaatioon

Yhteyden muodostamiseksi vertaiskumppanit lähettävät ensin paketteja "ylös" juuripalvelimien puuhun, ja kun nämä paketit kulkevat verkon läpi, ne aloittavat satunnaisten eteenpäin suuntautuvien kanavien luomisen matkan varrella. Puu yrittää jatkuvasti "romahtaa itsestään" optimoidakseen itsensä tallentamalleen reittikartalle.

Mekanismi vertaisyhteyden muodostamiseksi on seuraava:

Älykäs Ethernet-kytkin Planet Earthille

  1. Solmu A haluaa lähettää paketin solmulle B, mutta koska se ei tiedä suoraa polkua, se lähettää sen ylävirtaan solmulle R (kuu, käyttäjän juuripalvelin).
  2. Jos solmulla R on suora yhteys solmuun B, se välittää paketin sinne. Muussa tapauksessa se lähettää paketin ylävirtaan ennen kuin se saavuttaa planeetan juuret.Planeettajuuret tietävät kaikki solmut, joten paketti saavuttaa lopulta solmun B, jos se on online-tilassa.
  3. Solmu R lähettää myös solmulle A "rendezvous"-nimisen viestin, joka sisältää vihjeitä siitä, kuinka se voi saavuttaa solmun B. Sillä välin juuripalvelin, joka välittää paketin solmulle B, lähettää "rendezvous"-viestin, jossa kerrotaan, kuinka se voi päästä saavuttaa solmu A.
  4. Solmut A ja B vastaanottavat kohtaamisviestinsä ja yrittävät lähettää testiviestejä toisilleen yrittääkseen rikkoa matkan varrella havaittuja NAT- tai tilallisia palomuureja. Jos tämä toimii, muodostetaan suora yhteys, eivätkä paketit enää kulje edestakaisin.

Jos suoraa yhteyttä ei voida muodostaa, viestintä jatkuu releen kautta ja suoraa yhteyttä jatketaan, kunnes onnistunut tulos saavutetaan. 

VL1:ssä on myös muita ominaisuuksia suorien yhteyksien muodostamiseen, mukaan lukien LAN-vertaishaku, portin ennustus symmetrisen IPv4 NAT:n läpikulkua varten ja eksplisiittinen porttikartoitus käyttämällä uPnP:tä ja/tai NAT-PMP:tä, jos se on saatavilla paikallisessa fyysisessä lähiverkossa.

→ Linkki dokumentaatioon

▍VL2 on VXLAN-tyyppinen Ethernet-verkon virtualisointiprotokolla, jossa on SDN-hallintatoimintoja. Tuttu viestintäympäristö käyttöjärjestelmille ja sovelluksille...

Toisin kuin VL1, VL2-verkkojen (VLAN) luominen ja solmujen yhdistäminen niihin sekä niiden hallinta vaatii käyttäjän suoraa osallistumista. Hän voi tehdä tämän käyttämällä verkko-ohjainta. Pohjimmiltaan se on tavallinen ZeroTier-solmu, jossa ohjaimen toimintoja ohjataan kahdella tavalla: joko suoraan, tiedostoja muuttamalla tai, kuten kehittäjä vahvasti suosittelee, julkaistun API:n avulla. 

Tämä ZeroTier-virtuaaliverkkojen hallintamenetelmä ei ole kovin kätevä keskivertohenkilölle, joten graafisia käyttöliittymiä on useita:
 

  • Yksi kehittäjältä ZeroTier, saatavilla julkisena pilvi SaaS-ratkaisuna neljällä tilaussopimuksella, mukaan lukien ilmainen, mutta rajoitettu määrä hallittujen laitteiden ja tukitason suhteen
  • Toinen on riippumattomalta kehittäjältä, toiminnaltaan hieman yksinkertaistettu, mutta saatavana yksityisenä avoimen lähdekoodin ratkaisuna käytettäväksi paikan päällä tai pilviresursseissa.

VL2 on toteutettu VL1:n päälle ja sitä kuljettaa se. Se kuitenkin perii VL1-päätepisteen salauksen ja todennuksen ja käyttää myös epäsymmetrisiä avaimiaan valtuustietojen allekirjoittamiseen ja tarkistamiseen. VL1 mahdollistaa VL2:n toteuttamisen ilman huolta olemassa olevasta fyysisestä verkkotopologiasta. Eli yhteyksien ja reititystehokkuuden ongelmat ovat VL1-ongelmia. On tärkeää ymmärtää, että VL2-virtuaaliverkkojen ja VL1-polkujen välillä ei ole yhteyttä. Kuten VLAN-multipleksoinnissa langallisessa lähiverkossa, kahdella solmulla, jotka jakavat useita verkkojäsenyyksiä, on silti vain yksi VL1-polku (virtuaalikaapeli).

Jokainen VL2-verkko (VLAN) tunnistetaan 64-bittisellä (16 heksadesimaalista) ZeroTier-verkkoosoitteella, joka sisältää ohjaimen 40-bittisen ZeroTier-osoitteen ja 24-bittisen numeron, joka tunnistaa kyseisen ohjaimen luoman verkon.

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

Kun solmu liittyy verkkoon tai pyytää verkkokokoonpanon päivitystä, se lähettää verkkokonfiguraatiopyyntöviestin (VL1:n kautta) verkko-ohjaimelle. Ohjain käyttää sitten solmun VL1-osoitetta löytääkseen sen verkosta ja lähettääkseen sille asianmukaiset varmenteet, valtuustiedot ja määritystiedot. VL2-virtuaaliverkkojen näkökulmasta VL1 ZeroTier -osoitteet voidaan ajatella porttinumeroina valtavassa globaalissa virtuaalikytkimessä.

Kaikki verkko-ohjainten tietyn verkon jäsensolmuille myöntämät valtuustiedot allekirjoitetaan ohjaimen salaisella avaimella, jotta kaikki verkon osallistujat voivat tarkistaa ne. Valtuustiedoissa on ohjaimen luomat aikaleimat, jotka mahdollistavat suhteellisen vertailun tarvitsematta käyttää isännän paikallista järjestelmäkelloa. 

Tunnukset myönnetään vain niiden omistajille, ja ne lähetetään sitten vertaisille, jotka haluavat kommunikoida verkon muiden solmujen kanssa. Tämä mahdollistaa verkon skaalaamisen valtaviin kokoihin ilman tarvetta tallentaa suuria määriä valtuustietoja solmuihin tai ottaa jatkuvasti yhteyttä verkko-ohjaimeen.

ZeroTier-verkot tukevat monilähetysjakelua yksinkertaisen julkaisu-/tilausjärjestelmän kautta.

Linkki dokumentaatioon

Kun solmu haluaa vastaanottaa ryhmälähetyksen tietylle jakeluryhmälle, se ilmoittaa kuulumisestaan ​​kyseiseen ryhmään muille verkon jäsenille, joiden kanssa se kommunikoi, sekä verkko-ohjaimelle. Kun solmu haluaa lähettää ryhmälähetyksen, se käyttää samanaikaisesti viimeaikaisten julkaisujensa välimuistia ja pyytää säännöllisesti lisäjulkaisuja.

Lähetystä (Ethernet ff: ff: ff: ff: ff: ff) käsitellään ryhmälähetysryhmänä, jonka kaikki osallistujat ovat tilaaneet. Se voidaan poistaa käytöstä verkkotasolla liikenteen vähentämiseksi, jos sitä ei tarvita. 

ZeroTier emuloi todellista Ethernet-kytkintä. Tämä tosiasia antaa meille mahdollisuuden suorittaa luotujen virtuaaliverkkojen yhdistäminen muihin Ethernet-verkkoihin (langallinen LAN, WiFi, virtuaalinen taustalevy jne.) datalinkkitasolla - käyttämällä tavallista Ethernet-siltaa.

Toimiakseen siltana verkko-ohjaimen on nimettävä isäntä sellaiseksi. Tämä järjestelmä on otettu käyttöön turvallisuussyistä, koska normaalit verkkoisännät eivät saa lähettää liikennettä muusta lähteestä kuin MAC-osoitteestaan. Silloiksi määritetyt solmut käyttävät myös erityistä ryhmälähetysalgoritmin tilaa, joka on vuorovaikutuksessa niiden kanssa aggressiivisemmin ja kohdistetummin ryhmätilausten ja kaiken yleislähetysliikenteen ja ARP-pyyntöjen replikoinnin aikana. 

Kytkimessä on myös mahdollisuus luoda julkisia ja ad-hoc-verkkoja, QoS-mekanismi ja verkkosääntöjen editori.

▍Solmu:

ZeroTier One on kannettavissa tietokoneissa, pöytäkoneissa, palvelimissa, virtuaalikoneen ja säilöissä toimiva palvelu, joka tarjoaa yhteydet virtuaaliverkkoon virtuaalisen verkkoportin kautta, kuten VPN-asiakas. 

Kun palvelu on asennettu ja käynnistynyt, voit muodostaa yhteyden virtuaaliverkkoihin niiden 16-numeroisilla osoitteilla. Jokainen verkko näkyy järjestelmässä virtuaalisena verkkoporttina, joka toimii aivan kuten tavallinen Ethernet-portti.

ZeroTier One on tällä hetkellä saatavilla seuraaville käyttöjärjestelmille ja järjestelmille.

Käyttöjärjestelmät:

  • Microsoft Windows - MSI-asennusohjelma x86/x64
  • MacOS - PKG-asennusohjelma
  • Apple iOS - Sovelluskauppa
  • Android - Pelikauppa
  • Linux - DEB/RPM
  • FreeBSD - FreeBSD-paketti

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

muut:

  • Satamatyöläinen - Docker-tiedosto
  • OpenWRT - yhteisön satama
  • Sovelluksen upottaminen - SDK (libzt)

Yhteenvetona kaikesta yllä olevasta huomautan, että ZeroTier on erinomainen ja nopea työkalu fyysisten, virtuaalisten tai pilviresurssien yhdistämiseen yhteiseksi paikalliseksi verkkoksi, sillä se voidaan jakaa VLAN-verkkoihin ja ettei siinä ole yhtä vikakohtaa. .

Siinä se teoreettinen osa ensimmäisen ZeroTier for Habr -artikkelin muodossa - siinä luultavasti kaikki! Seuraavassa artikkelissa aion esitellä käytännössä ZeroTier-pohjaisen virtuaalisen verkkoinfrastruktuurin luomisen, jossa VDS:ää, jossa on yksityinen avoimen lähdekoodin GUI-malli, käytetään verkko-ohjaimena. 

Hyvä lukijat! Käytätkö ZeroTier-teknologiaa projekteissasi? Jos et, mitä työkaluja käytät resurssien verkottamiseen?

Älykäs Ethernet-kytkin Planet Earthille

Lähde: will.com

Lisää kommentti