Saklar Ethernet Cerdas untuk Planet Bumi


"Ada beberapa cara untuk membuat solusi (untuk memecahkan masalah), tetapi, tidak selalu cara yang paling mahal dan / atau populer - yang paling efektif!"

Pembukaan


Sekitar tiga tahun yang lalu, dalam proses pengembangan model pemulihan bencana jarak jauh, saya menghadapi satu kendala yang tidak terdeteksi - kurangnya informasi tentang solusi asli baru untuk virtualisasi jaringan dalam sumber-sumber komunitas.

-> Panduan praktis untuk membangun jaringan virtual. Bagian 1

Algoritma model yang dikembangkan direncanakan sebagai berikut:

  1. Seorang pengguna jarak jauh yang menghubungi saya dan yang komputernya pernah menolak untuk boot dengan pesan "disk sistem tidak terdeteksi / tidak diformat" memuatnya menggunakan USB kehidupan.
  2. Selama proses boot, sistem secara otomatis terhubung ke jaringan area lokal pribadi yang aman, selain itu ada workstation administrator, dalam hal ini laptop, dan simpul NAS.
  3. Lalu saya menghubungkan - baik untuk menghidupkan kembali partisi disk, atau untuk mengeluarkan data dari sana.

Awalnya, saya menerapkan model ini menggunakan server VPN pada router lokal di jaringan saya, kemudian pada VDS sewaan. Tapi, seperti yang sering terjadi menurut hukum Chisholm pertama, maka hujan akan berlalu - penyedia Internet akan "jatuh", perselisihan entitas bisnis - penyedia energi akan menghilang dari penyedia layanan ...

Karena itu, saya memutuskan untuk terlebih dahulu merumuskan persyaratan dasar yang harus dipenuhi oleh alat yang diperlukan. Yang pertama adalah desentralisasi. Yang kedua - mengingat bahwa saya memiliki beberapa USB kehidupan seperti itu, maka untuk masing-masing ada jaringan yang terpisah. Dan yang ketiga adalah koneksi cepat berbagai perangkat ke jaringan dan pengelolaannya yang sederhana, termasuk dalam kasus laptop saya juga menjadi korban hukum yang disebutkan di atas.

Berdasarkan hal ini dan menghabiskan dua setengah bulan untuk penelitian praktis dari beberapa opsi yang tidak cocok, saya, dengan risiko dan risiko saya sendiri, memutuskan untuk mencoba alat lain dari startup yang tidak saya kenal yang kemudian saya sebut - ZeroTier. Yang kemudian tidak pernah menyesal.

Dalam liburan Tahun Baru ini, mencoba memahami apakah situasi dengan konten telah berubah sejak saat yang tak terlupakan, saya melakukan audit selektif untuk ketersediaan artikel tentang topik ini, dengan mengambil sumber - Habr. Atas permintaan "ZeroTier" dalam hasil pencarian yang hanya ada tiga artikel dengan menyebutkannya, dan tidak satu pun, setidaknya dengan penjelasan singkat tapi deskripsi. Dan ini terlepas dari kenyataan bahwa di antara mereka ada terjemahan dari artikel yang ditulis oleh pendiri ZeroTier, Inc. - Adam Ierymenko .

Hasilnya mengecewakan dan mendorong saya untuk mulai berbicara tentang ZeroTier lebih terinci, menyelamatkan “pencari” modern dari kebutuhan untuk mengikuti rute yang sama yang saya ikuti.

Jadi apa kamu


Pengembang menempatkan ZeroTier sebagai switch Ethernet yang cerdas untuk planet Bumi.

“Ini adalah hypervisor jaringan terdistribusi berdasarkan jaringan peer-to-peer (P2P) global yang aman secara kriptografis. Alat seperti SDN perusahaan yang dirancang untuk mengatur jaringan virtual di atas 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 mandiri yang mengemulasi jaringan Ethernet, mirip dengan VXLAN, melalui jaringan peer-to-peer (P2P) terenkripsi global.

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

Tautan ke dokumentasi

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


"Pusat data global membutuhkan" kabinet global "dengan kabel."

Dalam jaringan konvensional, L1 (OSI layer 1) mengacu pada kabel aktual atau saluran radio nirkabel di mana data ditransmisikan, dan chip fisik dari perangkat penerima pancar yang memodulasi dan mendemodulasi mereka. 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 melibatkan pengguna yang meluncurkan simpul ZeroTier baru.

Untuk mencapai hal ini, VL1 diatur mirip dengan sistem nama domain. Jaringan ini didasarkan pada sekelompok server root yang sangat mudah diakses, yang perannya mirip dengan peran server nama root DNS. Saat ini, server root (planetary) utama dikelola oleh pengembang - ZeroTier, Inc. dan disediakan sebagai layanan gratis.

Namun, dimungkinkan untuk membuat server root kustom (bulan) yang memungkinkan:

  • mengurangi ketergantungan infrastruktur ZeroTier, Inc; Tautan Dokumentasi
  • meningkatkan produktivitas dengan meminimalkan penundaan;
  • terus bekerja seperti biasa jika terjadi kehilangan koneksi internet.

Awalnya, node mulai tanpa koneksi langsung satu sama lain.

Setiap rekan di VL1 memiliki alamat ZeroTier 40-bit (10 digit heksadesimal), yang, tidak seperti alamat IP, adalah pengidentifikasi terenkripsi yang tidak berisi data rute. Alamat ini dihitung dari bagian publik dari pasangan kunci publik / pribadi. Alamat simpul, kunci publik dan kunci pribadi bersama membentuk identitasnya.

Member ID: df56c5621c       |       ZeroTier address of node 

Adapun enkripsi, ini adalah kesempatan untuk artikel terpisah.

Tautan ke dokumentasi

Untuk menjalin komunikasi, rekan-rekan pertama-tama mengirim paket "naik" di sepanjang pohon server root, dan ketika paket-paket ini bergerak melalui jaringan, mereka memulai pembuatan acak saluran langsung di sepanjang jalur ini. Pohon itu terus-menerus berusaha untuk "runtuh sendiri" untuk mengoptimalkan dirinya untuk skema rute yang disimpannya.

Mekanisme pengaturan peer-to-peer adalah sebagai berikut:


  1. Node A ingin mengirim paket ke simpul B, tetapi karena tidak tahu jalur langsung, ia mengirimnya ke arah hulu ke simpul R (bulan, pengguna root server).
  2. Jika node R memiliki koneksi langsung dengan node B, itu meneruskan paket di sana. Jika tidak, ia mengirim paket ke arah hulu sampai mencapai akar planet.akar planet tahu tentang semua node, sehingga akhirnya paket akan mencapai node B jika sedang online.
  3. Node R juga mengirimkan pesan yang disebut "rendezvous" ke node A yang berisi petunjuk tentang bagaimana ia dapat mencapai node B. Sementara itu, server root, yang meneruskan paket ke node B, mengirimkan "rendezvous" yang memberitahukan tentang bagaimana ia dapat mencapai simpul A.
  4. Node A dan B menerima pesan mereka ke pertemuan dan mencoba untuk mengirim pesan uji satu sama lain, mencoba untuk menembus celah di NAT atau firewall stateful yang ditemui di jalan. Jika ini berhasil, maka koneksi langsung dibuat, dan paket tidak lagi pergi "kebun."

Jika koneksi langsung tidak dapat dibangun, koneksi akan berlanjut melalui relai, dan upaya untuk mengarahkan koneksi akan berlanjut sampai hasil positif tercapai.

VL1 juga memiliki fitur-fitur lain untuk membangun koneksi langsung, termasuk penemuan LAN-ke-peer 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 - Protokol virtualisasi mirip VXLAN dengan fitur manajemen SDN. Lingkungan komunikasi yang akrab untuk OS dan aplikasi ...


Tidak seperti VL1, pembuatan jaringan VL2 (VLAN) dan koneksi node ke mereka, serta manajemennya, mengharuskan pengguna untuk berpartisipasi secara langsung. Dia dapat melakukan ini menggunakan pengontrol jaringan. Faktanya, ini adalah simpul ZeroTier biasa di mana fungsi pengontrol dikontrol dalam dua cara: baik secara langsung, dengan mengubah file, atau, seperti yang sangat disarankan pengembang, menggunakan API yang diterbitkan.

Metode mengelola jaringan virtual ZeroTier ini tidak terlalu nyaman bagi orang awam yang sederhana, jadi ada beberapa GUI:

  • Satu dari pengembang ZeroTier, tersedia sebagai solusi cloud publik yang disediakan oleh model SaaS, dengan empat paket berlangganan, termasuk gratis, tetapi terbatas dalam jumlah perangkat yang dikelola dan tingkat dukungan
  • Yang kedua adalah dari pengembang independen, fungsionalitas agak disederhanakan, tetapi tersedia sebagai solusi opensource pribadi, untuk digunakan di tempat atau pada sumber daya cloud.

Lapisan VL2 diimplementasikan di atas VL1 dan diangkut olehnya. Pada saat yang sama, ia mewarisi enkripsi dan otentikasi titik akhir tingkat VL1, dan juga menggunakan kunci asimetrisnya untuk menandatangani dan memverifikasi kredensial. Lapisan VL1 memungkinkan Anda untuk mengimplementasikan VL2 tanpa khawatir tentang topologi jaringan fisik yang ada. Artinya, masalah konektivitas dan efisiensi perutean adalah tugas tingkat VL1. Penting untuk dipahami bahwa tidak ada koneksi antara jaringan virtual VL2 dan jalur VL1. Seperti multiplexing VLAN dalam LAN kabel, dua node yang berbagi beberapa keanggotaan jaringan umum masih akan memiliki hanya satu jalur VL1 (kabel virtual) di antara mereka.

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

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

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

Semua kredensial yang dikeluarkan oleh pengontrol jaringan ke node yang berpartisipasi dalam jaringan ini ditandatangani dengan kunci rahasia pengontrol sehingga semua peserta jaringan dapat memverifikasinya. Kredensial memiliki cap waktu yang dibuat oleh pengontrol, yang memungkinkan untuk perbandingan relatif tanpa harus mengakses jam sistem lokal dari node.

Kredensial dikeluarkan hanya untuk pemiliknya, dan kemudian dikirim ke rekan yang ingin bertukar data dengan node lain di jaringan. Hal ini memungkinkan jaringan untuk skala ke ukuran besar tanpa perlu men-cache sejumlah besar kredensial pada node atau terus-menerus mengakses pengontrol jaringan.

Jaringan ZeroTier mendukung multicast melalui sistem penerbitan / berlangganan sederhana.

Tautan ke dokumentasi

Ketika sebuah node ingin menerima pengiriman multicast untuk grup distribusi tertentu, ia mengumumkan keanggotaan dalam grup ini kepada anggota jaringan lain yang terhubung dengannya dan ke pengontrol jaringan. Ketika sebuah node ingin mengirim surat multicast, ia secara bersamaan mengakses cache publikasi terbaru dan secara berkala meminta publikasi tambahan.

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

ZeroTier mengemulasi switch Ethernet nyata. Fakta ini memungkinkan menggabungkan jaringan virtual yang dibuat dengan jaringan Ethernet lainnya (LAN kabel, WiFi, backplane virtual, dll.) Pada tingkat data link menggunakan jembatan Ethernet konvensional.

Untuk bertindak sebagai jembatan, pengontrol jaringan harus menunjuk simpul jaringan seperti itu. Skema ini diimplementasikan untuk alasan keamanan, karena node jaringan biasa tidak diperbolehkan mengirim lalu lintas dari sumber selain alamat MAC mereka. Node yang ditunjuk oleh bridge juga menggunakan mode khusus dari algoritma pengalamatan multicast, yang berinteraksi dengannya lebih agresif dan penuh perhatian selama berlangganan 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.

▍Tidak:


ZeroTier One adalah layanan yang berjalan pada laptop, desktop, server, mesin dan wadah virtual, yang menyediakan koneksi ke jaringan virtual melalui port jaringan virtual, seperti klien VPN.

Setelah menginstal dan memulai layanan, Anda dapat terhubung ke jaringan virtual menggunakan 16 digit alamatnya. Setiap jaringan terlihat seperti port jaringan virtual dalam sistem, yang berperilaku sama dengan port Ethernet biasa.

ZeroTier One saat ini tersedia untuk OS dan sistem berikut.

Sistem operasi:

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

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Lainnya:

  • Docker - file docker
  • OpenWRT - port komunitas
  • Penyematan aplikasi - SDK (libzt)

Untuk meringkas semua hal di atas, saya akan mengatakan bahwa ZeroTier adalah alat yang sangat baik dan cepat untuk menggabungkan sumber daya fisik, virtual atau cloud Anda ke jaringan lokal yang umum, dengan kemungkinan membaginya menjadi VLAN dan tidak adanya satu titik kegagalan.

Di atasnya dengan bagian teoretis dalam format artikel pertama tentang ZeroTier untuk Habr - mungkin semuanya! Pada artikel berikutnya, saya berencana untuk menunjukkan dalam praktik penciptaan infrastruktur jaringan virtual berdasarkan ZeroTier, di mana VDS dengan template GUI open source pribadi akan digunakan sebagai pengontrol jaringan.

Pembaca yang budiman! Apakah Anda menggunakan teknologi ZeroTier dalam proyek Anda? Jika tidak, alat apa yang Anda gunakan untuk menggabungkan sumber daya Anda ke jaringan bersama?

Source: https://habr.com/ru/post/id484178/


All Articles