Apakah mungkin menggabungkan beberapa saluran Internet menjadi satu? Ada banyak kesalahpahaman dan mitos seputar topik ini, bahkan teknisi jaringan berpengalaman pun sering kali tidak mengetahui bahwa hal ini mungkin terjadi. Dalam kebanyakan kasus, agregasi tautan secara keliru disebut sebagai penyeimbangan atau failover NAT. Tapi penjumlahan sebenarnya memungkinkan menjalankan satu koneksi TCP secara bersamaan melalui semua saluran Internet, misalnya siaran video sehingga jika ada saluran Internet yang terputus maka siarannya tidak akan terganggu.
Ada solusi komersial yang mahal untuk penyiaran video, namun perangkat semacam itu menghabiskan banyak biaya. Artikel ini menjelaskan konfigurasi OpenMPTCPRouter paket terbuka dan gratis, dan membahas mitos populer tentang penjumlahan saluran.
Mitos tentang menjumlahkan saluran
Ada banyak router rumah yang mendukung fungsi Multi-WAN. Terkadang produsen menyebut saluran ini sebagai penjumlahan, yang tidak sepenuhnya benar. Banyak penggiat jejaring percaya bahwa selain itu
Menyeimbangkan pada tingkat koneksi IP
Ini adalah cara paling terjangkau dan populer untuk memanfaatkan beberapa saluran Internet secara bersamaan. Untuk mempermudah, bayangkan Anda memiliki tiga ISP, masing-masing memberi Anda alamat IP asli dari jaringan mereka. Semua penyedia ini terhubung ke router dengan dukungan fungsi Multi-WAN. Ini bisa berupa OpenWRT dengan paket mwan3, mikrotik, ubiquiti, atau router rumah tangga lainnya, karena sekarang opsi ini sudah tidak asing lagi.
Untuk menyimulasikan situasinya, bayangkan penyedia memberi kami alamat berikut:
WAN1 β 11.11.11.11
WAN2 β 22.22.22.22
WAN2 β 33.33.33.33
Artinya, menghubungkan ke server jauh example.com melalui masing-masing penyedia, server jarak jauh akan melihat tiga ip sumber independen klien. Penyeimbangan memungkinkan Anda membagi beban di seluruh saluran dan menggunakan ketiganya secara bersamaan. Untuk mempermudah, bayangkan kita membagi beban antara semua saluran secara merata. Akibatnya, ketika klien membuka situs dengan tiga gambar secara kondisional, ia mengunduh setiap gambar melalui penyedia terpisah. Di sisi situs, sepertinya koneksi dari tiga IP berbeda.
Saat menyeimbangkan tingkat koneksi, setiap koneksi TCP melewati penyedia terpisah.
Mode penyeimbangan ini seringkali menimbulkan masalah bagi pengguna. Misalnya, banyak situs yang menghubungkan cookie dan token ke alamat IP klien, dan jika tiba-tiba berubah, permintaan akan dibatalkan atau klien logout dari situs. Hal ini sering direproduksi dalam sistem bank klien dan situs lain dengan aturan sesi pengguna yang ketat. Berikut adalah contoh ilustrasi sederhana: file musik di VK.com hanya tersedia dengan kunci sesi valid yang terikat pada IP, dan klien yang menggunakan penyeimbangan tersebut sering kali tidak memutar audio, karena permintaan tidak melalui penyedia tempat sesi terikat.
Saat mengunduh torrent, keseimbangan pada tingkat koneksi menjumlahkan bandwidth semua saluran
Penyeimbangan ini memungkinkan Anda mendapatkan penjumlahan kecepatan saluran Internet saat menggunakan banyak koneksi. Misalnya, jika masing-masing dari ketiga penyedia tersebut memiliki kecepatan 100 megabit, maka saat mengunduh torrent kita akan mendapatkan 300 megabit. Karena torrent membuka banyak koneksi yang didistribusikan ke semua penyedia dan akhirnya memanfaatkan seluruh saluran.
Penting untuk dipahami bahwa satu koneksi TCP akan selalu melalui satu penyedia saja. Artinya, jika kita mendownload satu file besar melalui HTTP, maka koneksi ini akan dilakukan melalui salah satu penyedia, dan jika koneksi dengan penyedia tersebut terputus, maka download juga akan terputus.
Satu koneksi akan selalu menggunakan hanya satu saluran Internet
Hal ini juga berlaku untuk siaran video. Jika Anda menyiarkan video streaming di Twitch bersyarat, maka penyeimbangan pada tingkat koneksi IP tidak akan memberikan manfaat khusus, karena streaming video akan disiarkan dalam satu koneksi IP. Dalam hal ini, jika penyedia WAN 3 mulai mengalami masalah komunikasi seperti paket hilang atau lambat, maka Anda tidak bisa langsung beralih ke penyedia lain. Siaran harus dihentikan dan dihubungkan kembali.
Penjumlahan saluran yang sebenarnya
Penjumlahan saluran yang sebenarnya memungkinkan untuk memulai satu koneksi ke Twitch bersyarat melalui semua penyedia sekaligus sedemikian rupa sehingga jika salah satu penyedia terputus, koneksi tidak akan terputus. Ini merupakan permasalahan yang sangat sulit dan masih belum memiliki solusi optimal. Banyak yang bahkan tidak tahu bahwa hal ini mungkin!
Dari ilustrasi sebelumnya, kita ingat bahwa server Twitch bersyarat dapat menerima aliran video dari kami hanya dari satu alamat IP sumber, yang berarti harus selalu konstan dengan kami, terlepas dari penyedia mana yang tidak berfungsi dan mana yang berfungsi. Untuk mencapai hal ini, kita memerlukan server penjumlahan yang akan mengakhiri semua koneksi kita dan menggabungkannya menjadi satu.
Server penjumlahan mengumpulkan semua saluran ke dalam satu terowongan. Semua koneksi berasal dari alamat server penjumlahan
Skema ini menggunakan semua penyedia, dan menonaktifkan salah satu dari mereka tidak akan menyebabkan hilangnya komunikasi dengan server Twitch. Sebenarnya, ini adalah terowongan VPN khusus, yang di dalamnya terdapat beberapa saluran Internet sekaligus. Tugas utama skema tersebut adalah mendapatkan saluran komunikasi dengan kualitas terbaik. Jika masalah dimulai dari salah satu penyedia, kehilangan paket, peningkatan penundaan, maka hal ini tidak akan mempengaruhi kualitas komunikasi dengan cara apa pun, karena beban akan secara otomatis didistribusikan ke saluran lain yang lebih baik yang tersedia.
Solusi Komersial
Masalah ini telah lama menjadi kekhawatiran bagi mereka yang menyiarkan acara secara langsung dan tidak memiliki akses internet berkualitas tinggi. Untuk tugas seperti itu, ada beberapa solusi komersial, misalnya, Teradek membuat router raksasa yang memasukkan paket modem USB:
Router video siaran dengan fungsi penjumlahan saluran
Perangkat tersebut biasanya memiliki kemampuan untuk menangkap video melalui HDMI atau SDI. Bersama dengan router, langganan ke layanan penjumlahan saluran dijual, serta pemrosesan aliran video, transkode, dan transmisi ulang lebih lanjut. Harga perangkat tersebut mulai dari $2k dengan satu set modem, ditambah langganan terpisah ke layanan tersebut.
Terkadang ini terlihat cukup menakutkan:
Menyiapkan OpenMPTCPRouter
Protokol
Bagaimana OpenMPTCPRouter bekerja
Pengaturan server peringkasan
Server penjumlahan terletak di Internet dan mengakhiri koneksi dari semua saluran router klien menjadi satu. Alamat IP server ini akan menjadi alamat eksternal saat mengakses Internet melalui OpenMPTCPRouter.
Untuk tugas ini, kami akan menggunakan server VPS di Debian 10.
Persyaratan server penjumlahan:
- MPTCP tidak berfungsi pada virtualisasi OpenVZ
- Kernel Linux Anda sendiri seharusnya dapat diinstal
Server dikerahkan dengan menjalankan satu perintah. Skrip akan menginstal kernel yang mendukung mptcp dan semua paket yang diperlukan. Skrip instalasi tersedia untuk Ubuntu dan Debian.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
Hasil instalasi server berhasil.
Kami menyimpan kata sandi, kami membutuhkannya untuk mengkonfigurasi router klien, dan reboot. Penting untuk diingat bahwa setelah instalasi, SSH akan tersedia pada port 65222. Setelah reboot, kita perlu memastikan bahwa kita boot dengan kernel baru
uname -a
Linux test-server.local 4.19.67-mptcp
Kita melihat tulisan mptcp di sebelah nomor versi, yang berarti kernel telah diinstal dengan benar.
Menyiapkan router klien
Pada
Bagian dari openmptcprouter ini didasarkan pada OpenWRT, menggunakan LuCI sebagai antarmuka, familiar bagi semua orang yang pernah mengenal OpenWRT. Kit distribusi memiliki berat sekitar 50Mb!
Sebagai uji coba, saya akan menggunakan Raspberry Pi dan beberapa modem USB dengan operator berbeda: MTS dan Megafon. Cara menulis gambar ke kartu SD, saya rasa, tidak perlu diceritakan.
Awalnya, port Ethernet di Raspberry Pi dikonfigurasi sebagai lan dengan alamat IP statis. 192.168.100.1. Agar tidak mengacaukan kabel di atas meja, saya menghubungkan Raspberry Pi ke titik akses WiFi dan mengatur alamat statis pada adaptor WiFi komputer 192.168.100.2. Server DHCP tidak diaktifkan secara default, jadi alamat statis harus digunakan.
Sekarang Anda dapat pergi ke antarmuka web
Saat pertama kali login, sistem akan meminta Anda untuk mengatur kata sandi root, SSH akan tersedia dengan kata sandi yang sama.
Dalam pengaturan LAN, Anda dapat mengatur subnet yang diinginkan dan mengaktifkan server DHCP.
Saya menggunakan modem yang didefinisikan sebagai antarmuka ethernet USB dengan server DHCP terpisah, jadi ini memerlukan instalasi
Selanjutnya, Anda perlu mengkonfigurasi antarmuka WAN. Awalnya, dua antarmuka virtual WAN1 dan WAN2 dibuat dalam sistem. Mereka perlu menetapkan perangkat fisik, dalam kasus saya, ini adalah nama antarmuka modem USB.
Agar tidak bingung dengan nama antarmuka, saya menyarankan Anda untuk menonton pesan dmesg saat terhubung melalui SSH.
Karena modem saya sendiri bertindak sebagai router dan memiliki server DHCP, saya harus mengubah pengaturan rentang jaringan internalnya dan menonaktifkan server DHCP, karena awalnya kedua modem mengeluarkan alamat dari jaringan yang sama, dan ini menyebabkan konflik.
OpenMPTCPRouter memerlukan alamat antarmuka WAN yang statis, jadi kami membuat subnet untuk modem dan mengonfigurasinya di menu sistem β openmptcprouter β pengaturan antarmuka. Di sini Anda juga perlu menentukan alamat IP dan kunci server yang diperoleh selama instalasi server penjumlahan.
Jika pengaturan berhasil, gambar serupa akan muncul di halaman status. Terlihat bahwa router mampu menjangkau server penjumlahan dan kedua saluran berfungsi dengan baik.
Mode defaultnya adalah shadowocks + mptcp. Ini adalah proxy yang membungkus semua koneksi dengan sendirinya. Awalnya, ini dikonfigurasi untuk hanya menangani TCP, tetapi Anda juga dapat mengaktifkan UDP.
Jika tidak ada kesalahan pada halaman status, pengaturan dianggap selesai.
Pada beberapa penyedia, situasi mungkin muncul ketika bendera mptcp terpotong di sepanjang jalur lalu lintas, maka akan terjadi kesalahan seperti ini:
Dalam hal ini, Anda dapat menggunakan mode operasi lain, tanpa menggunakan MPTCP, lebih lanjut tentang ini
Kesimpulan
Proyek OpenMPTCPRouter sangat menarik dan penting, karena ini mungkin satu-satunya solusi kompleks terbuka untuk masalah penjumlahan saluran. Segala sesuatu yang lain tertutup rapat dan bersifat eksklusif, atau hanya modul terpisah yang tidak dapat ditangani oleh orang biasa. Pada tahap pengembangan saat ini, proyek ini masih cukup mentah, dokumentasinya sangat buruk, banyak hal yang tidak dijelaskan. Namun pada saat yang sama, ia masih berfungsi. Saya berharap ini akan terus berkembang, dan kita akan mendapatkan router rumah tangga yang dapat menggabungkan saluran secara normal.
Ikuti pengembang kami di Instagram
Sumber: www.habr.com