Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

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 LACP dan penjumlahan pada lapisan L2, tidak ada agregasi saluran lain. Saya sering mendengar bahwa hal ini umumnya tidak mungkin dilakukan oleh orang-orang yang bekerja di bidang telekomunikasi. Oleh karena itu, mari kita coba memahami mitos-mitos populer.

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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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:

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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:

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

Menyiapkan OpenMPTCPRouter

Protokol MP-TCP (MultiPath TCP) diciptakan untuk kemampuan terhubung pada beberapa saluran sekaligus. Misalnya miliknya mendukung iOS dan sekaligus dapat terhubung ke server jarak jauh melalui WiFi dan melalui jaringan seluler. Penting untuk dipahami bahwa ini bukan dua koneksi TCP yang terpisah, tetapi satu koneksi yang dibuat melalui dua saluran sekaligus. Agar ini berfungsi, server jarak jauh juga harus mendukung MPTCP.

BukaMPTCPRouter adalah proyek router perangkat lunak sumber terbuka yang memungkinkan Anda untuk benar-benar menjumlahkan saluran. Penulis menyatakan bahwa proyek tersebut dalam status versi alpha, namun sudah dapat digunakan. Ini terdiri dari dua bagian - server penjumlahan, yang terletak di Internet dan router, yang terhubung dengan beberapa penyedia Internet dan perangkat klien: komputer, telepon. Router khusus dapat berupa Raspberry Pi, beberapa router WiFi, atau komputer biasa. Ada rakitan siap pakai untuk berbagai platform, yang sangat nyaman.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

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 situs web proyek Build siap pakai tersedia untuk beberapa platform, seperti Raspberry Pi, Banana Pi, router Lynksys, dan mesin virtual.
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!

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

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 192.168.100.1

Saat pertama kali login, sistem akan meminta Anda untuk mengatur kata sandi root, SSH akan tersedia dengan kata sandi yang sama.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter
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 paket tambahan. Prosedurnya sama dengan konfigurasi modem di OpenWRT biasa, jadi saya tidak akan membahasnya di sini.

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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

Jika pengaturan berhasil, gambar serupa akan muncul di halaman status. Terlihat bahwa router mampu menjangkau server penjumlahan dan kedua saluran berfungsi dengan baik.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

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:

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

Dalam hal ini, Anda dapat menggunakan mode operasi lain, tanpa menggunakan MPTCP, lebih lanjut tentang ini di sini.

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.

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

Ikuti pengembang kami di Instagram

Penjumlahan sebenarnya dari saluran Internet - OpenMPTCPRouter

Sumber: www.habr.com

Tambah komentar