Sakelar Ethernet Cerdas untuk Planet Bumi

Sakelar Ethernet Cerdas untuk Planet Bumi
“Anda dapat menciptakan solusi (menyelesaikan masalah) dengan beberapa cara, namun metode yang paling mahal dan/atau populer tidak selalu yang paling efektif!”

Preamble

Sekitar tiga tahun yang lalu, dalam proses mengembangkan model pemulihan data bencana jarak jauh, saya menemui satu kendala yang tidak segera saya sadari - kurangnya informasi tentang solusi orisinal baru untuk virtualisasi jaringan di sumber komunitas. 

Algoritma untuk model yang dikembangkan direncanakan sebagai berikut: 

  1. Seorang pengguna jarak jauh yang menghubungi saya, yang komputernya pernah menolak untuk boot, menampilkan pesan “disk sistem tidak terdeteksi/tidak diformat,” memuatnya menggunakan USB asli. 
  2. Selama proses boot, sistem secara otomatis terhubung ke jaringan lokal pribadi yang aman, yang selain berisi stasiun kerja administrator, dalam hal ini laptop, dan node NAS. 
  3. Kemudian saya terhubung - baik untuk menyadarkan kembali partisi disk, atau untuk mengekstrak data dari sana.

Awalnya, saya menerapkan model ini menggunakan server VPN pada router lokal di jaringan yang saya kendalikan, kemudian pada VDS sewaan. Namun, seperti yang sering terjadi dan menurut hukum pertama Chisholm, jika hujan maka jaringan penyedia Internet akan mati, maka perselisihan antar badan usaha akan menyebabkan penyedia layanan kehilangan “energi”…

Oleh karena itu, saya memutuskan untuk merumuskan terlebih dahulu persyaratan dasar yang harus dipenuhi oleh alat yang diperlukan. Yang pertama adalah desentralisasi. Kedua, mengingat saya memiliki beberapa USB kehidupan, masing-masing memiliki jaringan terisolasi yang terpisah. Dan ketiga, koneksi cepat ke jaringan berbagai perangkat dan pengelolaannya yang sederhana, termasuk jika laptop saya juga menjadi korban hukum yang disebutkan di atas.

Berdasarkan hal ini dan setelah menghabiskan dua setengah bulan melakukan penelitian praktis tentang beberapa opsi yang tidak terlalu sesuai, saya, dengan risiko dan risiko saya sendiri, memutuskan untuk mencoba alat lain dari startup yang tidak saya kenal pada waktu itu bernama ZeroTier. Yang tidak pernah saya sesali di kemudian hari.

Selama liburan Tahun Baru ini, mencoba memahami apakah situasi konten telah berubah sejak momen yang tak terlupakan itu, saya melakukan audit selektif atas ketersediaan artikel tentang topik ini, menggunakan Habr sebagai sumber. Untuk query “ZeroTier” di hasil pencarian hanya ada tiga artikel yang menyebutkannya, dan tidak ada satupun yang setidaknya memiliki deskripsi singkat. Padahal di antara mereka terdapat terjemahan artikel yang ditulis oleh pendiri ZeroTier, Inc. — Adam Ierymenko.

Hasilnya mengecewakan dan mendorong saya untuk mulai membicarakan ZeroTier secara lebih rinci, menyelamatkan “pencari” modern dari keharusan menempuh rute yang sama dengan yang saya ambil.

Jadi siapa kamu?

Pengembang memposisikan ZeroTier sebagai saklar Ethernet cerdas untuk planet Bumi. 

“Ini adalah hypervisor jaringan terdistribusi yang dibangun di atas jaringan peer-to-peer (P2P) global yang aman secara kriptografis. Sebuah alat yang mirip dengan saklar SDN perusahaan, dirancang untuk mengatur jaringan virtual melalui jaringan fisik, baik lokal maupun global, dengan kemampuan untuk menghubungkan hampir semua aplikasi atau perangkat.”

Ini lebih merupakan deskripsi pemasaran, sekarang tentang fitur teknologi.

▍Kernel: 

ZeroTier Network Hypervisor adalah mesin virtualisasi jaringan yang berdiri sendiri yang mengemulasi jaringan Ethernet, mirip dengan VXLAN, di atas jaringan peer-to-peer (P2P) terenkripsi global.

Protokol yang digunakan di ZeroTier adalah asli, meskipun tampilannya mirip dengan VXLAN dan IPSec dan terdiri dari dua lapisan yang secara konseptual terpisah namun terkait erat: VL1 dan VL2.

Tautan ke dokumentasi

▍VL1 adalah lapisan transport dasar peer-to-peer (P2P), semacam “kabel virtual”.

“Pusat data global memerlukan 'lemari kabel global'.”

Dalam jaringan konvensional, L1 (OSI Layer 1) mengacu pada kabel aktual atau radio nirkabel yang membawa data dan chip perangkat transceiver fisik yang memodulasi dan mendemodulasi data. VL1 adalah jaringan peer-to-peer (P2P) yang melakukan hal yang sama, menggunakan enkripsi, otentikasi, dan trik jaringan lainnya untuk mengatur kabel virtual sesuai kebutuhan.

Selain itu, ia melakukan ini secara otomatis, cepat dan tanpa keterlibatan pengguna yang meluncurkan node ZeroTier baru.

Untuk mencapai hal ini, VL1 diatur mirip dengan sistem nama domain. Inti dari jaringan adalah sekelompok server root yang memiliki ketersediaan tinggi, yang perannya mirip dengan server nama root DNS. Saat ini, server root utama (planet) berada di bawah kendali pengembang - ZeroTier, Inc. dan disediakan sebagai layanan gratis. 

Namun, dimungkinkan untuk membuat server root khusus (luns) yang memungkinkan Anda untuk:

  • mengurangi ketergantungan pada infrastruktur ZeroTier, Inc.; Tautan ke dokumentasi
  • meningkatkan produktivitas dengan meminimalkan penundaan; 
  • tetap bekerja seperti biasa jika koneksi internet terputus.

Awalnya, node diluncurkan tanpa koneksi langsung satu sama lain. 

Setiap rekan di VL1 memiliki alamat ZeroTier 40-bit (10 heksadesimal) unik, yang, tidak seperti alamat IP, merupakan pengidentifikasi terenkripsi yang tidak berisi informasi perutean. Alamat ini dihitung dari bagian publik dari pasangan kunci publik/pribadi. Alamat node, kunci publik, dan kunci privat bersama-sama membentuk identitasnya.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Mengenai enkripsi, ini adalah alasannya untuk artikel tersendiri.

Tautan ke dokumentasi

Untuk membangun komunikasi, peers pertama-tama mengirimkan paket “ke atas” pohon server root, dan ketika paket-paket ini berjalan melalui jaringan, mereka memulai pembuatan saluran penerusan secara acak di sepanjang jalan. Pohon tersebut terus-menerus mencoba untuk “runtuh dengan sendirinya” untuk mengoptimalkan dirinya sendiri untuk peta rute yang disimpannya.

Mekanisme pembentukan koneksi peer-to-peer adalah sebagai berikut:

Sakelar Ethernet Cerdas untuk Planet Bumi

  1. Node A ingin mengirim paket ke Node B, tetapi karena tidak mengetahui jalur langsungnya, ia mengirimkannya secara upstream ke Node R (bulan, server root pengguna).
  2. Jika node R mempunyai koneksi langsung dengan node B, maka node tersebut meneruskan paket ke sana. Jika tidak, ia mengirimkan paket ke hulu sebelum mencapai akar planet. Akar planet mengetahui semua node, sehingga paket pada akhirnya akan mencapai node B jika sedang online.
  3. Node R juga mengirimkan pesan yang disebut "rendezvous" ke node A, yang berisi petunjuk bagaimana paket tersebut dapat mencapai node B. Sementara itu, server root, yang meneruskan paket ke node B, mengirimkan "rendezvous" yang memberitahukannya tentang bagaimana paket tersebut dapat mencapai node B. mencapai simpul A.
  4. Node A dan B menerima pesan pertemuan mereka dan mencoba untuk mengirim pesan uji satu sama lain dalam upaya untuk melanggar NAT atau firewall stateful yang ditemui di sepanjang jalan. Jika ini berhasil, maka koneksi langsung akan terjalin, dan paket tidak lagi bolak-balik.

Jika sambungan langsung tidak dapat dibuat, komunikasi akan dilanjutkan melalui relai, dan upaya sambungan langsung akan dilanjutkan hingga hasil yang berhasil tercapai. 

VL1 juga memiliki fitur lain untuk membangun konektivitas langsung, termasuk penemuan rekan LAN, prediksi port untuk traversal NAT IPv4 simetris, dan pemetaan port eksplisit menggunakan uPnP dan/atau NAT-PMP jika tersedia di LAN fisik lokal.

→ Tautan ke dokumentasi

▍VL2 adalah protokol virtualisasi jaringan Ethernet mirip VXLAN dengan fungsi manajemen SDN. Lingkungan komunikasi yang familier untuk OS dan aplikasi...

Berbeda dengan VL1, pembuatan jaringan VL2 (VLAN) dan menghubungkan node ke jaringan tersebut, serta mengelolanya, memerlukan partisipasi langsung dari pengguna. Dia dapat melakukan ini dengan menggunakan pengontrol jaringan. Intinya, ini adalah node ZeroTier biasa, di mana fungsi pengontrol dikontrol dengan dua cara: baik secara langsung, dengan mengubah file, atau, seperti yang sangat disarankan oleh pengembang, menggunakan API yang dipublikasikan. 

Metode pengelolaan jaringan virtual ZeroTier ini sangat tidak nyaman bagi kebanyakan orang, jadi ada beberapa GUI:
 

  • Satu dari pengembang ZeroTier, tersedia sebagai solusi SaaS cloud publik dengan empat paket berlangganan, termasuk gratis, namun terbatas dalam jumlah perangkat yang dikelola dan tingkat dukungan
  • Yang kedua berasal dari pengembang independen, fungsinya agak disederhanakan, tetapi tersedia sebagai solusi sumber terbuka pribadi untuk digunakan di sumber daya lokal atau cloud.

VL2 diimplementasikan di atas VL1 dan diangkut olehnya. Namun, ia mewarisi enkripsi dan autentikasi titik akhir VL1, dan juga menggunakan kunci asimetrisnya untuk menandatangani dan memverifikasi kredensial. VL1 memungkinkan Anda mengimplementasikan VL2 tanpa mengkhawatirkan topologi jaringan fisik yang ada. Artinya, masalah konektivitas dan efisiensi routing adalah masalah VL1. Penting untuk dipahami bahwa tidak ada koneksi antara jaringan virtual VL2 dan jalur VL1. Mirip dengan multiplexing VLAN di LAN kabel, dua node yang berbagi beberapa keanggotaan jaringan hanya akan memiliki satu jalur VL1 (kabel virtual) di antara keduanya.

Setiap jaringan VL2 (VLAN) diidentifikasi dengan alamat jaringan ZeroTier 64-bit (16 heksadesimal), yang berisi alamat ZeroTier 40-bit pengontrol dan nomor 24-bit yang mengidentifikasi jaringan yang dibuat oleh pengontrol tersebut.

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

Ketika sebuah node bergabung dengan jaringan atau meminta pembaruan konfigurasi jaringan, ia mengirimkan pesan permintaan konfigurasi jaringan (melalui VL1) ke pengontrol jaringan. Pengontrol kemudian menggunakan alamat VL1 node untuk menemukannya di jaringan dan mengirimkan sertifikat, kredensial, dan informasi konfigurasi yang sesuai. Dari sudut pandang jaringan virtual VL2, alamat VL1 ZeroTier dapat dianggap sebagai nomor port pada saklar virtual global yang sangat besar.

Semua kredensial yang dikeluarkan oleh pengontrol jaringan ke node anggota jaringan tertentu ditandatangani dengan kunci rahasia pengontrol sehingga semua peserta jaringan dapat memverifikasinya. Kredensial memiliki stempel waktu yang dihasilkan oleh pengontrol, memungkinkan perbandingan relatif tanpa harus mengakses jam sistem lokal host. 

Kredensial dikeluarkan hanya untuk pemiliknya dan kemudian dikirim ke rekan yang ingin berkomunikasi dengan node lain di jaringan. Hal ini memungkinkan jaringan untuk menskalakan ke ukuran yang sangat besar tanpa perlu menyimpan kredensial dalam jumlah besar pada node atau terus-menerus menghubungi pengontrol jaringan.

Jaringan ZeroTier mendukung distribusi multicast melalui sistem terbitkan/berlangganan sederhana.

Tautan ke dokumentasi

Ketika sebuah node ingin menerima siaran multicast untuk grup distribusi tertentu, node tersebut mengumumkan keanggotaan grup tersebut kepada anggota jaringan lain yang berkomunikasi dengannya dan ke pengontrol jaringan. Ketika sebuah node ingin mengirim multicast, ia secara bersamaan mengakses cache publikasi terbarunya dan secara berkala meminta publikasi tambahan.

Siaran (Ethernet ff: ff: ff: ff: ff: ff) diperlakukan sebagai grup multicast tempat semua peserta berlangganan. Ini dapat dinonaktifkan di tingkat jaringan untuk mengurangi lalu lintas jika tidak diperlukan. 

ZeroTier mengemulasi saklar Ethernet asli. Fakta ini memungkinkan kita untuk melaksanakannya menggabungkan jaringan virtual yang dibuat dengan jaringan Ethernet lainnya (LAN kabel, WiFi, virtual backplane, dll.) pada tingkat tautan data - menggunakan jembatan Ethernet biasa.

Untuk bertindak sebagai jembatan, pengontrol jaringan harus menunjuk sebuah host. Skema ini diterapkan untuk alasan keamanan, karena host jaringan normal tidak diperbolehkan mengirimkan lalu lintas dari sumber selain alamat MAC mereka. Node yang ditunjuk sebagai jembatan juga menggunakan mode khusus dari algoritma multicast, yang berinteraksi dengannya secara lebih agresif dan tertarget selama langganan grup dan replikasi semua lalu lintas siaran dan permintaan ARP. 

Switch juga memiliki kemampuan untuk membuat jaringan publik dan ad-hoc, mekanisme QoS dan editor aturan jaringan.

▍ Simpul:

Tingkat Nol Satu adalah layanan yang berjalan di laptop, desktop, server, mesin virtual, dan container yang menyediakan koneksi ke jaringan virtual melalui port jaringan virtual, mirip dengan klien VPN. 

Setelah layanan diinstal dan dimulai, Anda dapat terhubung ke jaringan virtual menggunakan alamat 16 digitnya. Setiap jaringan muncul sebagai port jaringan virtual pada sistem, yang berperilaku seperti port Ethernet biasa.

ZeroTier One saat ini tersedia untuk OS dan sistem berikut.

OS:

  • Microsoft Windows - Penginstal MSI x86/x64
  • MacOS - Pemasang PKG
  • apple iOS - Toko aplikasi
  • Android — Mainkan Toko
  • Linux - DEB/RPM
  • FreeBSD - Paket FreeBSD

NAS:

  • NAS Synology
  • QNAP NAS
  • WD MyCloud NAS

Другие:

  • Buruh pelabuhan - berkas buruh pelabuhan
  • OpenWRT - pelabuhan komunitas
  • Penyematan aplikasi - SDK (libzt)

Untuk meringkas semua hal di atas, saya ingin mencatat bahwa ZeroTier adalah alat yang luar biasa dan cepat untuk menggabungkan sumber daya fisik, virtual, atau cloud Anda ke dalam jaringan lokal umum, dengan kemampuan untuk membaginya menjadi VLAN dan tidak adanya satu titik kegagalan. .

Sekian bagian teoretis dalam format artikel pertama tentang ZeroTier untuk Habr - mungkin itu saja! Pada artikel berikutnya, saya berencana untuk mendemonstrasikan dalam praktik pembuatan infrastruktur jaringan virtual berdasarkan ZeroTier, di mana VDS dengan templat GUI sumber terbuka pribadi akan digunakan sebagai pengontrol jaringan. 

Pembaca yang terhormat Apakah Anda menggunakan teknologi ZeroTier dalam proyek Anda? Jika tidak, alat apa yang Anda gunakan untuk membangun jaringan sumber daya Anda?

Sakelar Ethernet Cerdas untuk Planet Bumi

Sumber: www.habr.com

Tambah komentar