Intelligens Ethernet kapcsoló a Föld bolygóhoz

Intelligens Ethernet kapcsoló a Föld bolygóhoz
„Többféleképpen lehet megoldást létrehozni (problémát megoldani), de nem mindig a legdrágább és/vagy legnépszerűbb módszer a leghatékonyabb!”

bevezetés

Körülbelül három évvel ezelőtt, a katasztrófa-adat-helyreállítás távoli modelljének fejlesztése során szembesültem egy olyan akadállyal, amelyet nem vettem azonnal észre: a hálózati virtualizáció új eredeti megoldásairól szóló információk hiányával a közösségi forrásokban. 

A kidolgozott modell algoritmusát a következőképpen terveztük: 

  1. Egy távoli felhasználó, aki kapcsolatba lépett velem, és akinek a számítógépe egyszer megtagadta a rendszerindítást, és a „rendszerlemez nem észlelhető/nincs formázva” üzenetet jelenít meg, betölti az élet USB-n keresztül. 
  2. A rendszerindítás során a rendszer automatikusan csatlakozik egy biztonságos privát helyi hálózathoz, amely önmagán kívül tartalmazza a rendszergazdai munkaállomást, jelen esetben egy laptopot és egy NAS csomópontot. 
  3. Aztán csatlakozom - vagy a lemezpartíciók újraélesztésére, vagy az adatok kinyerésére.

Kezdetben ezt a modellt egy VPN-kiszolgálóval valósítottam meg egy helyi útválasztón az irányításom alatt álló hálózaton, majd egy bérelt VDS-en. De ahogy az gyakran megtörténik, és Chisholm első törvénye szerint, ha esik az eső, az internetszolgáltató hálózata leáll, majd a vállalkozások közötti viták miatt a szolgáltató „energiát veszít”...

Ezért úgy döntöttem, hogy először megfogalmazom azokat az alapvető követelményeket, amelyeknek a szükséges eszköznek meg kell felelnie. Az első a decentralizáció. Másodszor, tekintettel arra, hogy több ilyen élettartam-USB-m van, mindegyiknek külön izolált hálózata van. Nos, harmadrészt a különféle eszközök gyors csatlakozása a hálózatra és azok egyszerű kezelése, beleértve azt is, ha a laptopom is áldozatul esik a fent említett törvénynek.

Ennek alapján és két és fél hónapot több nem túl alkalmas lehetőség gyakorlati kutatásával eltöltöttem, saját veszélyemre és kockázatomra úgy döntöttem, hogy kipróbálok egy másik eszközt egy számomra akkor még ismeretlen startuptól, a ZeroTier néven. Amit később sem bántam meg.

Az újévi ünnepek alatt, hogy megértsem, változott-e a tartalom helyzete az emlékezetes pillanat óta, szelektív ellenőrzést végeztem a témával kapcsolatos cikkek elérhetőségére vonatkozóan, forrásként Habrot használva. A „ZeroTier” lekérdezéshez a keresési eredmények között mindössze három cikk szerepel, és egyetlen olyan cikk sem, amely legalább rövid leírást tartalmazna. És ez annak ellenére, hogy köztük van egy cikk fordítása, amelyet maga a ZeroTier, Inc. alapítója írt. — Adam Ierymenko.

Az eredmények kiábrándítóak voltak, és arra késztettek, hogy részletesebben beszéljek a ZeroTier-ről, megkímélve a modern „keresőket” attól, hogy ugyanazt az utat járják, mint amit én választottam.

Mi vagy?

A fejlesztő a ZeroTier-t a Föld bolygó intelligens Ethernet kapcsolójaként pozicionálja. 

„Ez egy elosztott hálózati hipervizor, amely egy kriptográfiailag biztonságos globális peer-to-peer (P2P) hálózatra épül. Egy vállalati SDN-kapcsolóhoz hasonló eszköz, amelyet arra terveztek, hogy virtuális hálózatokat szervezzenek fizikai hálózatokon, mind helyi, mind globális szinten, és szinte bármilyen alkalmazás vagy eszköz csatlakoztatására alkalmas.”

Ez inkább egy marketing leírás, most a technológiai jellemzőkről szól.

▍ Kernel: 

A ZeroTier Network Hypervisor egy önálló hálózati virtualizációs motor, amely a VXLAN-hoz hasonló Ethernet-hálózatot emulál a globális titkosított peer-to-peer (P2P) hálózaton.

A ZeroTierben használt protokollok eredetiek, bár megjelenésükben hasonlítanak a VXLAN-hoz és az IPSec-hez, és két elvileg különálló, de egymással szorosan összefüggő rétegből állnak: VL1 és VL2.

Link a dokumentációhoz

▍A VL1 egy alapvető peer-to-peer (P2P) szállítási réteg, egyfajta „virtuális kábel”.

„Egy globális adatközponthoz „globális szekrény” szükséges a kábelezéshez.”

A hagyományos hálózatokban az L1 (OSI Layer 1) az adatokat továbbító tényleges kábelekre vagy vezeték nélküli rádiókra, valamint az azokat moduláló és demoduláló fizikai adó-vevő eszközcsipekre utal. A VL1 egy peer-to-peer (P2P) hálózat, amely ugyanezt teszi, titkosítást, hitelesítést és egyéb hálózati trükköket használ a virtuális kábelek szükség szerinti rendszerezésére.

Sőt, ezt automatikusan, gyorsan és anélkül, hogy a felhasználó bevonná az új ZeroTier csomópontot.

Ennek elérése érdekében a VL1 a domain névrendszerhez hasonlóan szerveződik. A hálózat középpontjában a magas rendelkezésre állású gyökérkiszolgálók egy csoportja található, amelyek szerepe hasonló a DNS gyökérnévszervereinek szerepéhez. Jelenleg a fő (bolygói) gyökérszerverek a fejlesztő - ZeroTier, Inc. - irányítása alatt állnak. és ingyenes szolgáltatásként nyújtják. 

Lehetőség van azonban egyéni root szerverek (luns) létrehozására, amelyek lehetővé teszik:

  • csökkenti a ZeroTier, Inc. infrastruktúrájától való függőséget; Link a dokumentációhoz
  • a termelékenység növelése a késések minimalizálásával; 
  • továbbra is a szokásos módon működjön, ha az internetkapcsolat megszakad.

Kezdetben a csomópontok közvetlen kapcsolat nélkül indulnak el. 

A VL1 minden társának egyedi 40 bites (10 hexadecimális) ZeroTier címe van, amely az IP-címekkel ellentétben egy titkosított azonosító, amely nem tartalmaz útválasztási információkat. Ezt a címet a nyilvános/magán kulcspár nyilvános részéből számítják ki. Egy csomópont címe, nyilvános kulcsa és privát kulcsa együtt alkotja az identitást.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Ami a titkosítást illeti, ez egy külön cikk indoka.

Link a dokumentációhoz

A kommunikáció kialakításához a társak először csomagokat küldenek „fel” a gyökérkiszolgálók fájára, és ahogy ezek a csomagok áthaladnak a hálózaton, véletlenszerű előremenő csatornák létrehozását kezdeményezik. A fa folyamatosan próbál „magától összeomlani”, hogy optimalizálja magát az általa tárolt útvonaltérképre.

A peer-to-peer kapcsolat létrehozásának mechanizmusa a következő:

Intelligens Ethernet kapcsoló a Föld bolygóhoz

  1. Az A csomópont egy csomagot szeretne küldeni a B csomópontnak, de mivel nem ismeri a közvetlen elérési utat, felfelé küldi az R csomópontnak (hold, a felhasználó gyökérkiszolgálója).
  2. Ha az R csomópont közvetlen kapcsolatban áll a B csomóponttal, akkor oda továbbítja a csomagot. Ellenkező esetben a csomagot felfelé küldi, mielőtt elérné a bolygógyökereket.A bolygógyökerek tudnak minden csomópontról, így a csomag végül eléri a B csomópontot, ha online van.
  3. Az R csomópont egy "rendezvous" nevű üzenetet is küld az A csomópontnak, amely utalásokat tartalmaz arra vonatkozóan, hogyan érheti el a B csomópontot. Eközben a gyökérszerver, amely továbbítja a csomagot a B csomópontnak, "rendezvous" üzenetet küld, amely tájékoztatja arról, hogyan érheti el. elérje az A csomópontot.
  4. Az A és B csomópontok megkapják a találkozási üzeneteiket, és megpróbálnak tesztüzeneteket küldeni egymásnak, hogy megkíséreljék feltörni az útközben talált NAT vagy állapotjelző tűzfalakat. Ha ez működik, akkor közvetlen kapcsolat jön létre, és a csomagok többé nem mennek oda-vissza.

Ha a közvetlen kapcsolat nem létesíthető, a kommunikáció továbbítón keresztül folytatódik, és a közvetlen kapcsolódási kísérletek mindaddig folytatódnak, amíg sikeres eredményt nem érnek el. 

A VL1 további funkciókkal is rendelkezik a közvetlen kapcsolat létrehozásához, beleértve a LAN-társ felfedezést, a port előrejelzését a szimmetrikus IPv4 NAT bejárásához, valamint az explicit portleképezést uPnP és/vagy NAT-PMP használatával, ha elérhető a helyi fizikai LAN-on.

→ Link a dokumentációhoz

▍ A VL2 egy VXLAN-szerű Ethernet hálózati virtualizációs protokoll SDN-kezelési funkciókkal. Ismerős kommunikációs környezet operációs rendszerekhez és alkalmazásokhoz...

A VL1-től eltérően a VL2 hálózatok (VLAN) létrehozása és a csomópontok hozzájuk való csatlakoztatása, valamint ezek kezelése a felhasználó közvetlen részvételét igényli. Ezt egy hálózati vezérlő segítségével tudja megtenni. Lényegében egy normál ZeroTier csomópontról van szó, ahol a vezérlő funkciók vezérlése kétféleképpen történik: vagy közvetlenül, fájlok megváltoztatásával, vagy ahogy a fejlesztő határozottan ajánlja, egy publikált API segítségével. 

A ZeroTier virtuális hálózatok kezelésének ez a módszere nem túl kényelmes az átlagember számára, ezért számos grafikus felhasználói felület létezik:
 

  • Az egyik a fejlesztő ZeroTiertől, nyilvános felhőalapú SaaS-megoldásként elérhető négy előfizetési csomaggal, beleértve az ingyenes, de korlátozott számú felügyelt eszközöket és támogatási szintet.
  • A második egy független fejlesztőtől származik, funkcionalitásában némileg leegyszerűsítve, de privát nyílt forráskódú megoldásként elérhető helyszíni vagy felhőalapú erőforrásokon való használatra.

A VL2 a VL1 tetején van megvalósítva, és az szállítja. Azonban örökli a VL1-végpont titkosítását és hitelesítését, és aszimmetrikus kulcsait is használja a hitelesítő adatok aláírására és ellenőrzésére. A VL1 lehetővé teszi a VL2 megvalósítását anélkül, hogy aggódnia kellene a meglévő fizikai hálózati topológia miatt. Vagyis a kapcsolattal és az útválasztási hatékonysággal kapcsolatos problémák a VL1 problémák. Fontos megérteni, hogy nincs kapcsolat a VL2 virtuális hálózatok és a VL1 útvonalak között. Hasonlóan a vezetékes LAN-ban történő VLAN-multiplexeléshez, két, több hálózati tagságot megosztó csomópontnak továbbra is csak egy VL1-es (virtuális kábel) útvonala lesz közöttük.

Minden VL2 hálózatot (VLAN) egy 64 bites (16 hexadecimális) ZeroTier hálózati cím azonosít, amely tartalmazza a vezérlő 40 bites ZeroTier címét és a vezérlő által létrehozott hálózatot azonosító 24 bites számot.

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

Amikor egy csomópont csatlakozik a hálózathoz, vagy hálózati konfiguráció frissítését kéri, hálózati konfigurációt kérő üzenetet küld (VL1-en keresztül) a hálózati vezérlőnek. A vezérlő ezután a csomópont VL1-címe alapján megkeresi azt a hálózaton, és elküldi neki a megfelelő tanúsítványokat, hitelesítő adatokat és konfigurációs információkat. A VL2 virtuális hálózatok szempontjából a VL1 ZeroTier címek egy hatalmas globális virtuális switch portszámaiként is felfoghatók.

A hálózati vezérlők által az adott hálózat tagcsomópontjainak kiadott összes hitelesítő adatot aláírják a vezérlő titkos kulcsával, így a hálózat összes résztvevője ellenőrizni tudja azokat. A hitelesítő adatokhoz a vezérlő által generált időbélyegek tartoznak, amelyek lehetővé teszik a viszonylagos összehasonlítást anélkül, hogy hozzá kellene férniük a gazdagép helyi rendszerórájához. 

A hitelesítési adatokat csak a tulajdonosaik kapják meg, majd elküldik azoknak a társaknak, akik kommunikálni szeretnének a hálózat többi csomópontjával. Ez lehetővé teszi, hogy a hálózat hatalmas méretekre skálázzon anélkül, hogy nagy mennyiségű hitelesítő adatot kellene gyorsítótáraznia a csomópontokon, vagy folyamatosan kapcsolatba kellene lépnie a hálózati vezérlővel.

A ZeroTier hálózatok támogatják a multicast terjesztést egy egyszerű közzétételi/előfizetési rendszeren keresztül.

Link a dokumentációhoz

Amikor egy csomópont csoportos üzenetszórást kíván fogadni egy adott terjesztési csoporthoz, hirdeti a csoport tagságát a hálózat többi tagjának, amellyel kommunikál, valamint a hálózati vezérlőnek. Amikor egy csomópont csoportos küldést kíván küldeni, egyidejűleg hozzáfér a legutóbbi publikációk gyorsítótárához, és időnként további publikációkat kér.

A műsorszórást (Ethernet ff: ff: ff: ff: ff: ff) a rendszer multicast csoportként kezeli, amelyre minden résztvevő előfizet. Hálózati szinten letiltható a forgalom csökkentése érdekében, ha nincs rá szükség. 

A ZeroTier valódi Ethernet switch-et emulál. Ez a tény lehetővé teszi számunkra, hogy elvégezzük a létrehozott virtuális hálózatok összekapcsolása más Ethernet hálózatokkal (vezetékes LAN, WiFi, virtuális hátlap stb.) adatkapcsolati szinten - normál Ethernet híd segítségével.

Ahhoz, hogy hídként működjön, a hálózati vezérlőnek ki kell jelölnie egy gazdagépet. Ezt a sémát biztonsági okokból valósították meg, mivel a normál hálózati gazdagépek nem küldhetnek forgalmat a MAC-címükön kívül más forrásból. A hídként kijelölt csomópontok a csoportos küldési algoritmus egy speciális módját is használják, amely agresszívebben és célzottabban lép kapcsolatba velük a csoportos előfizetések, valamint az összes broadcast forgalom és ARP-kérés replikációja során. 

A switch képes nyilvános és ad-hoc hálózatok létrehozására, QoS mechanizmusra és hálózati szabályszerkesztőre is.

▍Csomópont:

ZeroTier One egy laptopokon, asztali számítógépeken, szervereken, virtuális gépeken és konténereken futó szolgáltatás, amely a VPN-klienshez hasonlóan virtuális hálózati porton keresztül biztosít kapcsolatot a virtuális hálózattal. 

A szolgáltatás telepítése és elindítása után csatlakozhat a virtuális hálózatokhoz a 16 számjegyű címek használatával. Minden hálózat virtuális hálózati portként jelenik meg a rendszeren, amely ugyanúgy viselkedik, mint egy hagyományos Ethernet-port.

A ZeroTier One jelenleg a következő operációs rendszerekhez és rendszerekhez érhető el.

OS:

  • Microsoft Windows - MSI telepítő x86/x64
  • MacOS - PKG telepítő
  • Apple iOS - Alkalmazásbolt
  • Android - A Play Áruház
  • Linux - DEB/RPM
  • FreeBSD - FreeBSD csomag

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

más:

  • Dokkmunkás - docker fájl
  • OpenWRT - közösségi port
  • Alkalmazás beágyazása - SDK (libzt)

Összefoglalva a fentieket, szeretném megjegyezni, hogy a ZeroTier egy kiváló és gyors eszköz a fizikai, virtuális vagy felhőbeli erőforrások közös helyi hálózatba való kombinálására, amely képes VLAN-okra osztani, és nincs egyetlen hibapont sem. .

Ennyi az elméleti rész a ZeroTier for Habr-ról szóló első cikk formátumában – valószínűleg ennyi! A következő cikkben egy ZeroTier-re épülő virtuális hálózati infrastruktúra létrehozását tervezem a gyakorlatban bemutatni, ahol egy privát nyílt forráskódú GUI sablonnal rendelkező VDS-t használnak majd hálózati vezérlőként. 

Kedves olvasók! Használ ZeroTier technológiát a projektjei során? Ha nem, milyen eszközöket használ az erőforrások hálózatba hozásához?

Intelligens Ethernet kapcsoló a Föld bolygóhoz

Forrás: will.com

Hozzászólás