Suis Ethernet Pintar untuk Planet Bumi

Suis Ethernet Pintar untuk Planet Bumi
"Anda boleh mencipta penyelesaian (menyelesaikan masalah) dalam beberapa cara, tetapi kaedah yang paling mahal dan/atau popular tidak selalunya yang paling berkesan!"

Mukadimah

Kira-kira tiga tahun yang lalu, dalam proses membangunkan model jauh untuk pemulihan data bencana, saya menghadapi satu halangan yang tidak segera disedari - kekurangan maklumat mengenai penyelesaian asal baharu untuk virtualisasi rangkaian dalam sumber komuniti. 

Algoritma untuk model yang dibangunkan telah dirancang seperti berikut: 

  1. Pengguna jauh yang menghubungi saya, yang komputernya pernah enggan boot, memaparkan mesej "cakera sistem tidak dikesan/tidak diformat," memuatkannya menggunakan USB hayat. 
  2. Semasa proses but, sistem secara automatik menyambung ke rangkaian tempatan persendirian yang selamat, yang sebagai tambahan kepada dirinya sendiri mengandungi stesen kerja pentadbir, dalam kes ini komputer riba, dan nod NAS. 
  3. Kemudian saya menyambung - sama ada untuk menghidupkan semula partition cakera, atau untuk mengekstrak data dari sana.

Pada mulanya, saya melaksanakan model ini menggunakan pelayan VPN pada penghala tempatan dalam rangkaian di bawah kawalan saya, kemudian pada VDS yang disewa. Tetapi, seperti yang sering berlaku dan mengikut undang-undang pertama Chisholm, jika hujan, rangkaian penyedia Internet akan turun, maka pertikaian antara entiti perniagaan akan menyebabkan penyedia perkhidmatan kehilangan "tenaga"...

Oleh itu, saya memutuskan untuk terlebih dahulu merumuskan keperluan asas yang mesti dipenuhi oleh alat yang diperlukan. Yang pertama ialah desentralisasi. Kedua, memandangkan saya mempunyai beberapa USB kehidupan ini, setiap daripadanya mempunyai rangkaian terpencil yang berasingan. Nah, ketiga, sambungan pantas ke rangkaian pelbagai peranti dan pengurusan mudahnya, termasuk sekiranya komputer riba saya turut menjadi mangsa undang-undang yang disebutkan di atas.

Berdasarkan ini dan setelah menghabiskan dua setengah bulan dalam penyelidikan praktikal beberapa pilihan yang tidak begitu sesuai, saya, atas risiko dan risiko saya sendiri, memutuskan untuk mencuba alat lain dari permulaan yang tidak saya kenali pada masa itu bernama ZeroTier. Yang tidak pernah saya sesali kemudian hari.

Semasa cuti Tahun Baru ini, cuba memahami sama ada situasi dengan kandungan telah berubah sejak detik yang tidak dapat dilupakan itu, saya menjalankan audit terpilih untuk ketersediaan artikel mengenai topik ini, menggunakan Habr sebagai sumber. Untuk pertanyaan "ZeroTier" dalam hasil carian terdapat hanya tiga artikel yang menyebutnya, dan tidak ada satu pun dengan sekurang-kurangnya penerangan ringkas. Dan ini walaupun fakta bahawa di antara mereka terdapat terjemahan artikel yang ditulis oleh pengasas ZeroTier, Inc. sendiri. β€” Adam Ierymenko.

Hasilnya mengecewakan dan mendorong saya untuk mula bercakap tentang ZeroTier dengan lebih terperinci, menyelamatkan "pencari" moden daripada perlu melalui laluan yang sama yang saya ambil.

Jadi apa awak?

Pembangun meletakkan ZeroTier sebagai suis Ethernet pintar untuk planet Bumi. 

β€œIa adalah hipervisor rangkaian teragih yang dibina di atas rangkaian peer-to-peer (P2P) global yang selamat secara kriptografi. Alat yang serupa dengan suis SDN korporat, direka untuk mengatur rangkaian maya melalui rangkaian fizikal, tempatan dan global, dengan keupayaan untuk menyambungkan hampir mana-mana aplikasi atau peranti.”

Ini lebih kepada penerangan pemasaran, kini mengenai ciri teknologi.

▍Kernel: 

ZeroTier Network Hypervisor ialah enjin virtualisasi rangkaian yang berdiri sendiri yang meniru rangkaian Ethernet, serupa dengan VXLAN, di samping rangkaian peer-to-peer (P2P) yang disulitkan global.

Protokol yang digunakan dalam ZeroTier adalah asli, walaupun rupanya serupa dengan VXLAN dan IPSec dan terdiri daripada dua lapisan yang berasingan secara konsep, tetapi berkait rapat: VL1 dan VL2.

β†’ Pautan ke dokumentasi

▍VL1 ialah lapisan pengangkutan peer-to-peer (P2P) asas, sejenis "kabel maya".

"Pusat data global memerlukan 'almari global' kabel."

Dalam rangkaian konvensional, L1 (OSI Layer 1) merujuk kepada kabel sebenar atau radio wayarles yang membawa data dan cip peranti transceiver fizikal yang memodulasi dan menyahmodulatkannya. VL1 ialah rangkaian peer-to-peer (P2P) yang melakukan perkara yang sama, menggunakan penyulitan, pengesahan dan helah rangkaian lain untuk mengatur kabel maya mengikut keperluan.

Selain itu, ia melakukan ini secara automatik, cepat dan tanpa penglibatan pengguna melancarkan nod ZeroTier baharu.

Untuk mencapai matlamat ini, VL1 dianjurkan sama seperti sistem nama domain. Di tengah-tengah rangkaian adalah sekumpulan pelayan akar yang sangat tersedia, yang peranannya serupa dengan pelayan nama akar DNS. Pada masa ini, pelayan akar utama (planet) berada di bawah kawalan pembangun - ZeroTier, Inc. dan disediakan sebagai perkhidmatan percuma. 

Walau bagaimanapun, adalah mungkin untuk mencipta pelayan akar tersuai (luns) yang membolehkan anda:

  • mengurangkan pergantungan kepada infrastruktur ZeroTier, Inc.; Pautan ke dokumentasi
  • meningkatkan produktiviti dengan meminimumkan kelewatan; 
  • teruskan berfungsi seperti biasa jika sambungan Internet terputus.

Pada mulanya, nod dilancarkan tanpa sambungan langsung antara satu sama lain. 

Setiap rakan sebaya pada VL1 mempunyai alamat ZeroTier 40-bit (10 heksadesimal) unik, yang, tidak seperti alamat IP, ialah pengecam yang disulitkan yang tidak mengandungi maklumat penghalaan. Alamat ini dikira daripada bahagian awam pasangan kunci awam/peribadi. Alamat nod, kunci awam dan kunci peribadi bersama-sama membentuk identitinya.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Bagi penyulitan, ini adalah sebab untuk artikel berasingan.

β†’ Pautan ke dokumentasi

Untuk mewujudkan komunikasi, rakan sebaya mula-mula menghantar paket "ke atas" pokok pelayan akar, dan semasa paket ini bergerak melalui rangkaian, mereka memulakan penciptaan rawak saluran hadapan di sepanjang jalan. Pokok itu sentiasa cuba "runtuh dengan sendirinya" untuk mengoptimumkan dirinya untuk peta laluan yang disimpannya.

Mekanisme untuk mewujudkan sambungan peer-to-peer adalah seperti berikut:

Suis Ethernet Pintar untuk Planet Bumi

  1. Nod A mahu menghantar paket ke Nod B, tetapi kerana ia tidak mengetahui laluan terus, ia menghantarnya ke hulu ke Node R (bulan, pelayan akar pengguna).
  2. Jika nod R mempunyai sambungan terus dengan nod B, ia memajukan paket ke sana. Jika tidak, ia menghantar paket ke hulu sebelum sampai ke akar planet. Akar planet mengetahui tentang semua nod, jadi paket akhirnya akan mencapai nod B jika ia berada dalam talian.
  3. Nod R juga menghantar mesej yang dipanggil "rendezvous" ke nod A, yang mengandungi petunjuk tentang cara ia boleh mencapai nod B. Sementara itu, pelayan root, yang memajukan paket ke nod B, menghantar "rendezvous" memberitahunya tentang bagaimana ia boleh mencapai nod A.
  4. Nod A dan B menerima mesej pertemuan mereka dan cuba menghantar mesej ujian antara satu sama lain dalam percubaan untuk melanggar mana-mana NAT atau tembok api stateful yang ditemui di sepanjang jalan. Jika ini berfungsi, maka sambungan terus diwujudkan, dan paket tidak lagi berulang-alik.

Jika sambungan langsung tidak dapat diwujudkan, komunikasi akan diteruskan melalui geganti, dan percubaan sambungan terus akan diteruskan sehingga hasil yang berjaya dicapai. 

VL1 juga mempunyai ciri lain untuk mewujudkan sambungan langsung, termasuk penemuan rakan sebaya LAN, ramalan port untuk lintasan IPv4 NAT simetri dan pemetaan port eksplisit menggunakan uPnP dan/atau NAT-PMP jika tersedia pada LAN fizikal tempatan.

β†’ Pautan ke dokumentasi

▍VL2 ialah protokol virtualisasi rangkaian Ethernet seperti VXLAN dengan fungsi pengurusan SDN. Persekitaran komunikasi biasa untuk OS dan aplikasi...

Tidak seperti VL1, mencipta rangkaian VL2 (VLAN) dan menyambungkan nod kepada mereka, serta mengurusnya, memerlukan penyertaan langsung daripada pengguna. Dia boleh melakukan ini menggunakan pengawal rangkaian. Pada dasarnya, ia adalah nod ZeroTier biasa, di mana fungsi pengawal dikawal dalam dua cara: sama ada secara langsung, dengan menukar fail, atau, seperti yang disyorkan oleh pembangun, menggunakan API yang diterbitkan. 

Kaedah mengurus rangkaian maya ZeroTier ini tidak begitu mudah untuk orang biasa, jadi terdapat beberapa GUI:
 

  • Satu daripada pembangun ZeroTier, tersedia sebagai penyelesaian SaaS awan awam dengan empat pelan langganan, termasuk percuma, tetapi terhad dalam bilangan peranti terurus dan tahap sokongan
  • Yang kedua adalah daripada pembangun bebas, agak dipermudahkan dalam fungsi, tetapi tersedia sebagai penyelesaian sumber terbuka peribadi untuk digunakan di premis atau sumber awan.

VL2 dilaksanakan di atas VL1 dan diangkut olehnya. Walau bagaimanapun, ia mewarisi penyulitan dan pengesahan titik akhir VL1, dan juga menggunakan kunci asimetrinya untuk menandatangani dan mengesahkan kelayakan. VL1 membolehkan anda melaksanakan VL2 tanpa perlu risau tentang topologi rangkaian fizikal sedia ada. Iaitu, masalah dengan sambungan dan kecekapan penghalaan adalah masalah VL1. Adalah penting untuk memahami bahawa tiada sambungan antara rangkaian maya VL2 dan laluan VL1. Sama seperti pemultipleksan VLAN dalam LAN berwayar, dua nod yang berkongsi berbilang keahlian rangkaian masih hanya mempunyai satu laluan VL1 (kabel maya) di antara mereka.

Setiap rangkaian VL2 (VLAN) dikenal pasti dengan alamat rangkaian ZeroTier 64-bit (16 heksadesimal), yang mengandungi alamat ZeroTier 40-bit pengawal dan nombor 24-bit yang mengenal pasti rangkaian yang dibuat oleh pengawal itu.

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

Apabila nod menyertai rangkaian atau meminta kemas kini konfigurasi rangkaian, ia menghantar mesej permintaan konfigurasi rangkaian (melalui VL1) kepada pengawal rangkaian. Pengawal kemudian menggunakan alamat VL1 nod untuk mencarinya pada rangkaian dan menghantar sijil, bukti kelayakan dan maklumat konfigurasi yang sesuai. Dari sudut pandangan rangkaian maya VL2, alamat VL1 ZeroTier boleh dianggap sebagai nombor port pada suis maya global yang besar.

Semua bukti kelayakan yang dikeluarkan oleh pengawal rangkaian kepada nod ahli rangkaian tertentu ditandatangani dengan kunci rahsia pengawal supaya semua peserta rangkaian boleh mengesahkannya. Bukti kelayakan mempunyai cap masa yang dijana oleh pengawal, membenarkan perbandingan relatif tanpa perlu mengakses jam sistem tempatan hos. 

Bukti kelayakan dikeluarkan hanya kepada pemiliknya dan kemudian dihantar kepada rakan sebaya yang ingin berkomunikasi dengan nod lain pada rangkaian. Ini membolehkan rangkaian menskalakan kepada saiz yang besar tanpa perlu menyimpan sejumlah besar bukti kelayakan pada nod atau sentiasa menghubungi pengawal rangkaian.

Rangkaian ZeroTier menyokong pengedaran multicast melalui sistem penerbitan/langganan yang mudah.

β†’ Pautan ke dokumentasi

Apabila nod ingin menerima siaran berbilang siaran untuk kumpulan pengedaran tertentu, ia mengiklankan keahlian dalam kumpulan itu kepada ahli rangkaian lain yang berkomunikasi dengannya dan kepada pengawal rangkaian. Apabila nod ingin menghantar multicast, ia secara serentak mengakses cache penerbitan terkini dan secara berkala meminta penerbitan tambahan.

Siaran (Ethernet ff: ff: ff: ff: ff: ff) dianggap sebagai kumpulan berbilang siaran di mana semua peserta melanggan. Ia boleh dilumpuhkan pada peringkat rangkaian untuk mengurangkan trafik jika tidak diperlukan. 

ZeroTier meniru suis Ethernet sebenar. Fakta ini membolehkan kita melaksanakan menggabungkan rangkaian maya yang dicipta dengan rangkaian Ethernet lain (LAN berwayar, WiFi, satah belakang maya, dll.) pada peringkat pautan data - menggunakan jambatan Ethernet biasa.

Untuk bertindak sebagai jambatan, pengawal rangkaian mesti menetapkan hos seperti itu. Skim ini dilaksanakan atas sebab keselamatan, kerana hos rangkaian biasa tidak dibenarkan menghantar trafik daripada sumber selain alamat MAC mereka. Nod yang ditetapkan sebagai jambatan juga menggunakan mod khas algoritma multicast, yang berinteraksi dengannya dengan lebih agresif dan menyasarkan semasa langganan kumpulan dan replikasi semua trafik siaran dan permintaan ARP. 

Suis juga mempunyai keupayaan untuk mencipta rangkaian awam dan ad-hoc, mekanisme QoS dan editor peraturan rangkaian.

▍Nod:

ZeroTier One ialah perkhidmatan yang dijalankan pada komputer riba, desktop, pelayan, mesin maya dan bekas yang menyediakan sambungan ke rangkaian maya melalui port rangkaian maya, serupa dengan klien VPN. 

Setelah perkhidmatan dipasang dan dimulakan, anda boleh menyambung ke rangkaian maya menggunakan alamat 16 digit mereka. Setiap rangkaian muncul sebagai port rangkaian maya pada sistem, yang berkelakuan sama seperti port Ethernet biasa.

ZeroTier One kini tersedia untuk OS dan sistem berikut.

OS:

  • Microsoft Windows - Pemasang MSI x86/x64
  • MacOS - Pemasang PKG
  • Apple IOS - Stor aplikasi
  • Android - Kedai mainan
  • Linux - DEB/RPM
  • FreeBSD - Pakej FreeBSD

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Π”Ρ€ΡƒΠ³ΠΈΠ΅:

  • buruh pelabuhan - fail docker
  • OpenWRT - pelabuhan komuniti
  • Pembenaman apl - SDK (libzt)

Untuk meringkaskan semua perkara di atas, saya akan ambil perhatian bahawa ZeroTier ialah alat yang sangat baik dan pantas untuk menggabungkan sumber fizikal, maya atau awan anda ke dalam rangkaian tempatan biasa, dengan keupayaan untuk membahagikannya kepada VLAN dan ketiadaan satu titik kegagalan. .

Itu sahaja untuk bahagian teori dalam format artikel pertama tentang ZeroTier untuk Habr - mungkin itu sahaja! Dalam artikel seterusnya, saya merancang untuk menunjukkan secara praktikal penciptaan infrastruktur rangkaian maya berdasarkan ZeroTier, di mana VDS dengan templat GUI sumber terbuka peribadi akan digunakan sebagai pengawal rangkaian. 

Pembaca yang dihormati! Adakah anda menggunakan teknologi ZeroTier dalam projek anda? Jika tidak, apakah alatan yang anda gunakan untuk merangkaian sumber anda?

Suis Ethernet Pintar untuk Planet Bumi

Sumber: www.habr.com

Tambah komen