Switch Ethernet intelligente per u pianeta Terra

Switch Ethernet intelligente per u pianeta Terra
"Ci hè parechje manere di creà una suluzione (per risolve un prublema), ma micca sempre u modu più caru è / è populari hè u più efficace!"

Preamble

Circa trè anni fà, in u prucessu di sviluppà un mudellu di ricuperazione di disastru remota, aghju scontru un ostaculu chì ùn era micca immediatamente nutatu - una mancanza d'infurmazioni nantu à e novi suluzioni originali per a virtualizazione di a rete in fonti di a cumunità. 

L'algoritmu di u mudellu sviluppatu hè stata pianificata cum'è seguente: 

  1. Un utilizatore remotu chì m'hà cuntattatu, chì u so urdinatore hà rifiutatu di avvià, affissendu u missaghju "discu di sistema micca rilevatu / micca furmatu", carica cù a vita USB. 
  2. Durante u prucessu di boot, u sistema si cunnetta automaticamente à una rete privata privata sicura, in quale, in più di ellu stessu, ci hè un postu di travagliu di l'amministratore, in questu casu un laptop, è un node NAS. 
  3. Allora aghju cunnessu - sia per reanimate partizioni di discu, sia per estrarre dati da quì.

In principiu, aghju implementatu stu mudellu cù un servitore VPN in un router locale in una reta sottu u mo cuntrollu, dopu in un VDS affittu. Ma, cum'è spessu succede secondu a prima lege di Chisholm, allora a pioggia passerà - a reta di u fornitore di Internet "cadrà", allora i disputi di l'entità cummerciale - l'"energia" di u prestatore di serviziu sparirà ...

Per quessa, aghju decisu di furmà prima i requisiti basi chì l'uttellu necessariu deve risponde. U primu hè a decentralizazione. Siconda, datu chì aghju parechji USB di vita tali, ognunu hà una reta isolata separata. Ebbè, u terzu hè una cunnessione rapida à a reta di parechji dispusitivi è una gestione simplice di elli, ancu in casu chì u mo laptop hè ancu vittima di a lege citata sopra.

Basatu nantu à questu, è dopu avè passatu dui mesi è mezu nantu à a ricerca pratica nantu à parechje opzioni micca assai adattati, aghju, à u mo propiu periculu è risicu, decisu di pruvà un altru strumentu da un startup scunnisciutu à mè à u mumentu chjamatu ZeroTier. Ciò chì dopu ùn si dispiace mai.

Duranti questi vacanze di l'annu novu, pruvatu à capisce se a situazione cù u cuntenutu hà cambiatu da quellu mumentu memorable, aghju realizatu un auditu selettivu per a presenza di articuli nantu à questu tema, piglià Habr cum'è fonte. À a dumanda di "ZeroTier" in i risultati di ricerca di quale ci sò solu trè articuli chì l'anu citatu, è micca un solu, almenu cù una breve, ma descrizzione. È questu hè malgradu u fattu chì trà elli ci hè una traduzzione di un articulu scrittu da u fundatore di ZeroTier, Inc. — Adam Ierymenko.

I risultati sò stati deludenti è m'hà incitatu à cumincià à parlà di ZeroTier in più dettagliu, salvenendu i "cercatori" muderni da avè da andà à a stessa strada ch'e aghju andatu.

Allora chì site?

U sviluppatore pone ZeroTier cum'è un switch Ethernet intelligente per u pianeta Terra. 

"Questu hè un hypervisor di rete distribuitu custruitu annantu à una rete globale peer-to-peer (P2P) criptograficamente sicura. Simile à un switch SDN corporativu, un strumentu cuncepitu per urganizà e rete virtuale nantu à e reti fisiche, sia lucale sia globale, cù a capacità di cunnette quasi ogni applicazione o dispositivu.

Questu hè più di una descrizzione di marketing, avà nantu à e caratteristiche tecnologiche.

▍Core: 

L'Hypervisor di a Rete ZeroTier hè un mutore di virtualizazione di rete autonoma chì emula una rete Ethernet simile à VXLAN in cima à una rete globale cifrata peer-to-peer (P2P).

I protokolli utilizati in ZeroTier sò originali, ancu s'ellu simuli in l'apparenza à VXLAN è IPSec, è sò custituiti da dui strati conceptualmente separati ma strettamente ligati: VL1 è VL2.

Link à a Documentazione

▍VL1 hè una strata di trasportu peer-to-peer (P2P) di basa, un tipu di "cavu virtuale".

"Un centru di dati globale richiede un" armadiu globale "cun cables".

In e rete cunvinziunali, L1 (OSI layer 1) si riferisce à i cables attuali o radios wireless chì portanu dati è i chips di transceiver fisici chì modulanu è demodulanu. VL1 hè una reta peer-to-peer (P2P) chì face u listessu, utilizendu criptografia, autentificazione è altri trucchi di rete per organizà i cavi virtuali cum'è necessariu.

Inoltre, face questu automaticamente, rapidamente è senza implicazione di l'utilizatore chì lancia un novu node ZeroTier.

Per ottene questu, VL1 hè urganizatu simile à u sistema di nome di duminiu. À u core di a reta hè un gruppu di servitori radicali assai dispunibuli, chì u so rolu hè simile à quellu di i servitori di nomi radicali DNS. À u mumentu, i principali servitori radicali (planetari) sò amministrati da u sviluppatore - ZeroTier, Inc. è sò furnite cum'è un serviziu gratuitu. 

Tuttavia, hè pussibule di creà servitori di razzi persunalizati (lune) chì vi permettenu di:

  • riduce a dipendenza da l'infrastruttura ZeroTier, Inc.; Link à a Documentazione
  • aumentà a produtividade minimizendu i ritardi; 
  • cuntinuà à travaglià cum'è di solitu in casu di perdita di cunnessione Internet.

Inizialmente, i nodi partenu senza cunnessione diretta trà l'altri. 

Ogni peer in VL1 hà un indirizzu ZeroTier unicu di 40-bit (10 cifre esadecimali), chì, à u cuntrariu di l'indirizzi IP, hè un identificatore criptatu chì ùn cuntene micca infurmazione di rotta. Stu indirizzu hè calculatu da a parte publica di a coppia di chjave publica / privata. L'indirizzu di un node, a chjave publica è a chjave privata formanu a so identità.

Member ID: df56c5621c  
            |
            ZeroTier address of node

In quantu à a criptografia, questa hè una occasione per un articulu separatu.

Link à a Documentazione

Per stabilisce a cumunicazione, i pari mandanu prima pacchetti "up" à l'arburu di u servitore radicali, è cum'è questi pacchetti viaghjanu per a reta, inizianu a creazione aleatoria di ligami avanti in a strada. L'arbulu cerca constantemente di "collapse stessu" per ottimisà si per u schema di rotta chì guarda.

U meccanismo per stabilisce una cunnessione peer-to-peer hè u seguitu:

Switch Ethernet intelligente per u pianeta Terra

  1. U Node A vole mandà un pacchettu à u Node B, ma postu chì ùn cunnosci micca u percorsu direttu, u manda in upstream à u Node R (a luna, u servitore radicali di l'utilizatori).
  2. Se u nodu R hà una cunnessione diretta à u nodu B, invià u pacchettu quì. Altrimenti, manda u pacchettu upstream prima di ghjunghje à e radiche planetarie. I radichi planetari cunnosci di tutti i nodi, cusì eventualmente u pacchettu ghjunghjerà à u nodu B s'ellu hè in linea.
  3. Node R manda ancu un missaghju chjamatu "rendezvous" à u Node A chì cuntene indizi nantu à cumu si pò ghjunghje à u Node B. Intantu, u servitore radicale, chì trasmette u pacchettu à u Node B, manda un "rendezvous" chì l'informa di cumu si pò ghjunghje à Node B. B. Node A.
  4. L'ospiti A è B ricevenu i so messagi di appuntamentu è pruvate à mandà messagi di sonda à l'altri in un tentativu di rompe u NAT o firewall stateful chì scontranu in a strada. Se questu funziona, allora una cunnessione diretta hè stabilita, è i pacchetti ùn vanu più "giardini".

Se una cunnessione diretta falla, a cumunicazione cuntinueghja via relé è i tentativi di cunnessione diretta continuanu finu à chì un risultatu successu hè ghjuntu. 

VL1 hà ancu altre caratteristiche per stabilisce una cunnessione diretta, cumprese a scuperta di peer LAN, a predizione di portu per a traversata di NAT IPv4 simmetrici, è a mappa di portu esplicita utilizendu uPnP è / o NAT-PMP se dispunibule nantu à a LAN fisica lucale.

→ Link à a Documentazione

▍VL2 - Protocolu di virtualizazione di rete Ethernet simili à VXLAN cù funzioni di gestione SDN. Ambiente di cumunicazione familiarizatu per OS è applicazioni ...

A cuntrariu di VL1, a creazione di rete VL2 (VLAN) è a cunnessione di i nodi à elli, è ancu di gestisce, richiede una participazione diretta da l'utilizatore. Pò fà questu cù l'aiutu di un controller di rete. In fattu, hè un node ZeroTier regularmente, induve e funzioni di u controller sò gestite in dui maneri: o direttamente, cambiendu i schedari, o, cum'è u sviluppatore ricumandemu fermamente, utilizendu l'API publicata. 

Questa manera di gestisce e rete virtuale ZeroTier ùn hè micca assai cunvene per un laico simplice, cusì ci sò parechje GUI:
 

  • Unu da u sviluppatore ZeroTier, dispunibule cum'è una soluzione di nuvola publica SaaS cù quattru piani di abbonamentu, cumprese gratuiti, ma limitati in i dispositi amministrati è u livellu di supportu.
  • U sicondu hè da un sviluppatore indipendente, un pocu simplificatu in funziunalità, ma dispunibile cum'è una solu suluzione privata aperta, per l'usu on-premise o nantu à risorse di nuvola.

A capa VL2 hè implementata sopra à VL1 è hè trasportata da ellu. Fendu cusì, eredita a crittografia è l'autentificazione di l'endpoint VL1, è usa e so chjave asimmetriche per a firma è a validazione di credenziali. VL1 permette di implementà VL2 senza preoccupassi di a topologia di a rete fisica esistente. Vale à dì, i prublemi cù a cunnessione è l'efficienza di routing sò compiti VL1. Hè impurtante di capisce chì ùn ci hè micca una cunnessione trà e rete virtuale VL2 è camini VL1. Simile à u multiplexing VLAN nantu à una LAN cablata, dui nodi chì sparte parechje membri di a rete in cumunu anu sempre solu un percorsu VL1 (cavu virtuale) trà elli.

Ogni rete VL2 (VLAN) hè identificata da un indirizzu di rete ZeroTier di 64-bit (16 cifre esadecimale), chì cuntene l'indirizzu ZeroTier di 40-bit di u controller è un numeru di 24-bit chì identificanu a reta creata da quellu controller.

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

Quandu un node si unisce à una rete o dumanda una aghjurnazione di a cunfigurazione di a rete, manda un missaghju di dumanda di cunfigurazione di a rete (via VL1) à u controller di rete. U controller poi usa l'indirizzu VL1 di l'ospitu per truvà lu in a reta è mandà i certificati appropritati, credenziali è informazioni di cunfigurazione. Da u puntu di vista di VLAN VL2, l'indirizzi VL1 ZeroTier ponu esse pensati cum'è numeri di portu nantu à un grande switch virtuale globale.

Tutte e credenziali emesse da i cuntrolli di a rete à i nodi membri di una determinata rete sò firmati cù a chjave secreta di u controller per chì tutti i membri di a rete ponu verificà. I credenziali anu timestamp generati da u controller, chì permettenu paraguni parenti senza avè da cunsultà l'orologio di u sistema lucale di l'ospite. 

I credenziali sò solu emessi à i so patroni è poi mandati à i pari chì volenu cumunicà cù altri nodi in a reta. Questu permette à a reta di scala à enormi dimensioni senza a necessità di cache grandi quantità di credenziali nantu à i nodi o cuntattate constantemente u controller di a rete.

E rete ZeroTier supportanu a multicasting attraversu un sistema simplice di pubblicazione / abbonamentu.

Link à a Documentazione

Quandu un node vole riceve un multicast per un gruppu di distribuzione particulari, annunzià a so appartenenza à quellu gruppu à l'altri membri di a reta chì hè cumunicatu è à u controller di a rete. Quandu un node vole mandà un multicast, accede simultaneamente à a so cache di i posti recenti è dumanda periodicamente posti supplementari.

Un broadcast (Ethernet ff: ff: ff: ff: ff: ff) hè trattatu cum'è un gruppu multicast à quale tutti i membri abbonati. Pò esse disattivatu à u livellu di a rete per riduce u trafficu se micca necessariu. 

ZeroTier emula un veru switch Ethernet. Stu fattu permette associazione di e rete virtuale create cù altre rete Ethernet (rete locale cablata, WiFi, backplane virtuale, etc.) à u livellu di u ligame di dati - utilizendu un ponte Ethernet convenzionale.

Per agisce cum'è un ponte, u cuntrollu di a rete deve designà un host cum'è unu. Stu schema hè implementatu per ragioni di sicurità, cum'è i nodi di a rete normale ùn sò micca permessi di mandà u trafficu da qualsiasi fonte altru ch'è u so indirizzu MAC. I nodi designati cum'è ponti utilizanu ancu un modu d'algoritmu multicast speciale chì interagisce in modu più aggressivu è destinatu cun elli quandu multicasting è replicate tuttu u trafficu di trasmissione è e dumande ARP. 

U cambiamentu hà ancu a capacità di creà rete publiche è ad-hoc, un mecanismu QoS è un editore di regule di rete.

▍ Nodu:

Zero Tier One hè un serviziu chì funziona in laptops, desktop, servitori, macchine virtuali è cuntenituri chì furnisce cunnessione à una reta virtuale attraversu un portu di rete virtuale, simile à un cliente VPN. 

Una volta chì u serviziu hè stallatu è in esecuzione, pudete cunnette à e rete virtuale utilizendu i so indirizzi di 16 caratteri. Ogni rete appare cum'è un portu di rete virtuale in u sistema chì si cumporta cum'è un portu Ethernet normale.

ZeroTier One hè attualmente dispunibule per i seguenti OS è sistemi.

OS:

  • Microsoft Windows - Installatore MSI x86/x64
  • MacOS - Installatore PKG
  • Apple iOS - App Store
  • Android - Play Store
  • Linux - DEB/RPM
  • FreeBSD - Pacchettu FreeBSD

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Altro:

  • Docker - u schedariu docker
  • openwrt - portu di a cumunità
  • App incrustazione SDK (libzt)

Per sintetizà tuttu ciò chì sopra, aghju nutatu chì ZeroTier hè un strumentu eccellente è veloce per cumminà e vostre risorse fisiche, virtuali o nuvola in una rete locale cumuna, cù a pussibilità di dividisce in VLAN è l'assenza di un puntu unicu di fallimentu. .

In questu cù a parte teorica in u furmatu di u primu articulu di ZeroTier per Habr - probabilmente tuttu! In u prossimu articulu, aghju pensatu à dimustrà in pratica a creazione di una infrastruttura di rete virtuale basata nantu à ZeroTier, induve un VDS cù un mudellu GUI di fonte aperta privata serà utilizatu cum'è un controller di rete. 

Beni, lettori! Aduprate a tecnulugia ZeroTier in i vostri prughjetti? Se no, chì strumenti aduprate per cunnette e vostre risorse à una reta cumuna?

Switch Ethernet intelligente per u pianeta Terra

Source: www.habr.com

Add a comment