Adakah mungkin untuk menggabungkan beberapa saluran Internet menjadi satu? Terdapat banyak salah tanggapan dan mitos mengenai topik ini; walaupun jurutera rangkaian berpengalaman sering tidak tahu bahawa ini mungkin. Dalam kebanyakan kes, pengagregatan pautan tersilap dipanggil pengimbangan pada tahap NAT atau failover. Tetapi penjumlahan sebenar membenarkan melancarkan satu sambungan TCP tunggal secara serentak ke atas semua saluran Internet, sebagai contoh, penyiaran video supaya jika mana-mana saluran Internet terganggu, siaran tidak akan terganggu.
Terdapat penyelesaian komersil yang mahal untuk siaran video, tetapi peranti sedemikian menelan belanja banyak kilobucks. Artikel ini menerangkan cara mengkonfigurasi pakej OpenMPTCPRouter sumber terbuka percuma dan menangani mitos popular tentang penjumlahan saluran.
Mitos tentang penjumlahan saluran
Terdapat banyak penghala rumah yang menyokong fungsi Multi-WAN. Kadang-kadang pengeluar memanggil saluran ini penjumlahan, yang tidak sepenuhnya benar. Ramai networkers percaya bahawa sebagai tambahan kepada
Mengimbangi pada tahap sambungan IP
Ini adalah cara paling berpatutan dan popular untuk menggunakan beberapa saluran Internet pada masa yang sama. Untuk kesederhanaan, mari bayangkan anda mempunyai tiga penyedia Internet, masing-masing memberikan anda alamat IP sebenar daripada rangkaian mereka. Semua pembekal ini disambungkan ke penghala yang menyokong fungsi Multi-WAN. Ini mungkin OpenWRT dengan pakej mwan3, mikrotik, ubiquiti, atau mana-mana penghala isi rumah yang lain, kerana pilihan sebegitu tidak lagi biasa.
Untuk mensimulasikan keadaan, mari bayangkan bahawa pembekal memberi kami alamat berikut:
WAN1 β 11.11.11.11
WAN2 β 22.22.22.22
WAN2 β 33.33.33.33
Iaitu, menyambung ke pelayan jauh example.com Melalui setiap pembekal, pelayan jauh akan melihat tiga pelanggan IP sumber bebas. Mengimbangi membolehkan anda membahagikan beban merentas saluran dan menggunakan ketiga-tiganya secara serentak. Untuk kesederhanaan, mari bayangkan bahawa kita membahagikan beban sama rata antara semua saluran. Akibatnya, apabila pelanggan membuka tapak dengan tiga imej, dia memuat turun setiap imej melalui pembekal yang berasingan. Di sisi tapak ia kelihatan seperti sambungan daripada tiga IP berbeza.
Apabila mengimbangi pada tahap sambungan, setiap sambungan TCP melalui pembekal yang berasingan.
Mod pengimbangan ini sering menyebabkan masalah kepada pengguna. Sebagai contoh, banyak tapak mengikat kuki dan token dengan ketat kepada alamat IP pelanggan, dan jika ia tiba-tiba berubah, permintaan itu ditolak atau pelanggan dilog keluar dari tapak. Ini sering diterbitkan semula dalam sistem bank pelanggan dan tapak lain dengan peraturan sesi pengguna yang ketat. Berikut ialah contoh ilustrasi yang mudah: fail muzik di VK.com hanya tersedia dengan kunci sesi yang sah, yang terikat pada IP, dan pelanggan yang menggunakan pengimbangan sedemikian sering tidak memainkan audio kerana permintaan tidak melalui pembekal yang sesi terikat.
Apabila memuat turun torrents, pengimbangan tahap sambungan merumuskan lebar jalur semua saluran
Pengimbangan ini membolehkan anda mendapatkan penjumlahan kelajuan saluran Internet apabila menggunakan berbilang sambungan. Sebagai contoh, jika setiap tiga pembekal mempunyai kelajuan 100 Megabit, maka apabila memuat turun torrents kita akan mendapat 300 Megabit. Kerana torrent membuka banyak sambungan, yang diedarkan di kalangan semua pembekal dan akhirnya menggunakan keseluruhan saluran.
Adalah penting untuk memahami bahawa satu sambungan TCP tunggal akan sentiasa melalui hanya satu pembekal. Iaitu, jika kita memuat turun satu fail besar melalui HTTP, maka sambungan ini akan dibuat melalui salah satu pembekal, dan jika sambungan dengan pembekal ini terputus, muat turun juga akan terputus.
Satu sambungan akan sentiasa menggunakan satu saluran Internet sahaja
Ini juga berlaku untuk siaran video. Jika anda menyiarkan penstriman video ke beberapa jenis Twitch bersyarat, maka pengimbangan pada tahap sambungan IP tidak akan memberikan apa-apa faedah tertentu, kerana strim video akan disiarkan dalam satu sambungan IP. Dalam kes ini, jika pembekal WAN 3 mula menghadapi masalah dengan komunikasi, seperti kehilangan paket atau kelajuan yang berkurangan, maka anda tidak akan dapat bertukar serta-merta kepada pembekal lain. Siaran itu perlu dihentikan dan disambung semula.
Penjumlahan saluran benar
Penjumlahan saluran sebenar membolehkan untuk menjalankan satu sambungan ke Twitch bersyarat melalui semua pembekal sekaligus dengan cara yang jika mana-mana pembekal rosak, sambungan tidak akan terganggu. Ini adalah masalah yang sangat sukar yang masih tidak mempunyai penyelesaian yang optimum. Ramai orang tidak tahu bahawa ini mungkin!
Daripada ilustrasi sebelumnya, kami ingat bahawa pelayan Twitch bersyarat boleh menerima aliran video daripada kami daripada hanya satu alamat IP sumber, yang bermaksud ia mesti sentiasa malar untuk kami, tanpa mengira penyedia yang gagal dan yang mana yang berfungsi. Untuk mencapai matlamat ini, kami memerlukan pelayan penjumlahan yang akan menamatkan semua sambungan kami dan menggabungkannya menjadi satu.
Pelayan penjumlahan mengagregatkan semua saluran ke dalam satu terowong. Semua sambungan berasal dari alamat pelayan penjumlahan
Dalam skim ini, semua pembekal digunakan, dan melumpuhkan mana-mana daripada mereka tidak akan menyebabkan kehilangan komunikasi dengan pelayan Twitch. Pada asasnya, ini adalah terowong VPN khas, di bawah tudungnya terdapat beberapa saluran Internet sekaligus. Tugas utama skim sedemikian adalah untuk mendapatkan saluran komunikasi berkualiti tinggi. Jika salah satu pembekal mula mengalami masalah, kehilangan paket, peningkatan kelewatan, maka ini tidak boleh menjejaskan kualiti komunikasi dalam apa cara sekalipun, kerana beban akan diagihkan secara automatik ke saluran lain yang lebih baik yang tersedia.
Penyelesaian Komersial
Masalah ini telah lama merisaukan mereka yang menyiarkan acara secara langsung dan tidak mempunyai akses kepada Internet berkualiti tinggi. Untuk tugas sedemikian, terdapat beberapa penyelesaian komersil, sebagai contoh, syarikat Teradek membuat penghala yang begitu dahsyat di mana pek modem USB dimasukkan:
Penghala untuk siaran video dengan fungsi penjumlahan saluran
Peranti sedemikian biasanya mempunyai keupayaan terbina dalam untuk menangkap isyarat video melalui HDMI atau SDI. Bersama penghala, langganan kepada perkhidmatan penjumlahan saluran dijual, serta memproses strim video, mentranskodkannya dan menyampaikannya lagi. Harga peranti sedemikian bermula dari $2k dengan satu set modem, serta langganan berasingan kepada perkhidmatan tersebut.
Kadang-kadang ia kelihatan agak menakutkan:
Menyediakan OpenMPTCPRouter
Protokol
Cara OpenMPTCPRouter berfungsi
Menyediakan pelayan ringkasan
Pelayan penjumlahan terletak di Internet dan menamatkan sambungan dari semua saluran penghala pelanggan menjadi satu. Alamat IP pelayan ini akan menjadi alamat luaran apabila mengakses Internet melalui OpenMPTCPRouter.
Untuk tugas ini kami akan menggunakan pelayan VPS pada Debian 10.
Keperluan untuk pelayan penjumlahan:
- MPTCP tidak berfungsi pada virtualisasi OpenVZ
- Ia sepatutnya boleh memasang kernel Linux anda sendiri
Pelayan digunakan dengan melaksanakan satu arahan. Skrip akan memasang kernel dengan sokongan mptcp dan semua pakej yang diperlukan. Skrip pemasangan tersedia untuk Ubuntu dan Debian.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
Hasil daripada pemasangan pelayan yang berjaya.
Kami menyimpan kata laluan, kami memerlukannya untuk mengkonfigurasi penghala pelanggan, dan but semula. Adalah penting untuk diingat bahawa selepas pemasangan, SSH akan tersedia pada port 65222. Selepas but semula, kita perlu memastikan bahawa kita but dengan kernel baharu
uname -a
Linux test-server.local 4.19.67-mptcp
Kami melihat inskripsi mptcp di sebelah nombor versi, yang bermaksud kernel telah dipasang dengan betul.
Menyediakan penghala pelanggan
Pada
Bahagian openmptcprouter ini adalah berdasarkan OpenWRT, menggunakan LuCI sebagai antara muka, biasa kepada sesiapa sahaja yang pernah menemui OpenWRT. Pengedaran beratnya kira-kira 50MB!
Sebagai bangku ujian, saya akan menggunakan Raspberry Pi dan beberapa modem USB dengan pengendali berbeza: MTS dan Megafon. Saya rasa saya tidak perlu memberitahu anda cara menulis imej pada kad SD.
Pada mulanya, port Ethernet dalam Raspberry Pi dikonfigurasikan sebagai lan dengan alamat IP statik 192.168.100.1. Untuk mengelakkan mengutak-atik wayar di atas meja, saya menyambungkan Raspberry Pi ke titik akses WiFi dan menetapkan penyesuai WiFi komputer kepada alamat statik 192.168.100.2. Pelayan DHCP tidak didayakan secara lalai, jadi anda mesti menggunakan alamat statik.
Kini anda boleh log masuk ke antara muka web
Apabila anda log masuk buat kali pertama, sistem akan meminta anda menetapkan kata laluan root; SSH akan tersedia dengan kata laluan yang sama.
Dalam tetapan LAN, anda boleh menetapkan subnet yang dikehendaki dan membolehkan pelayan DHCP.
Saya menggunakan modem yang ditakrifkan sebagai antara muka Ethernet USB dengan pelayan DHCP yang berasingan, jadi ini memerlukan pemasangan
Seterusnya anda perlu mengkonfigurasi antara muka WAN. Pada mulanya, sistem mencipta dua antara muka maya WAN1 dan WAN2. Mereka perlu diberikan peranti fizikal, dalam kes saya ini adalah nama antara muka modem USB.
Untuk mengelakkan kekeliruan dengan nama antara muka, saya mengesyorkan melihat mesej dmesg semasa menyambung melalui SSH.
Memandangkan modem saya sendiri bertindak sebagai penghala, dan mereka sendiri mempunyai pelayan DHCP, saya terpaksa menukar tetapan julat rangkaian dalaman mereka dan melumpuhkan pelayan DHCP, kerana pada mulanya kedua-dua modem mengeluarkan alamat dari rangkaian yang sama, dan ini menyebabkan konflik.
OpenMPTCPRouter memerlukan alamat antara muka WAN adalah statik, jadi kami menghasilkan subnet untuk modem dan mengkonfigurasinya dalam sistem β openmptcprouter β menu tetapan antara muka. Di sini anda perlu menentukan alamat IP dan kunci pelayan yang diperoleh semasa pemasangan pelayan penjumlahan.
Jika persediaan berjaya, gambar yang serupa akan muncul pada halaman status. Ia dapat dilihat bahawa penghala dapat mencapai pelayan penjumlahan dan kedua-dua saluran berfungsi seperti biasa.
Mod lalai ialah shadowsocks + mptcp. Ini adalah proksi yang membungkus semua sambungan dalam dirinya sendiri. Ia pada mulanya dikonfigurasikan untuk memproses TCP sahaja, tetapi UDP juga boleh didayakan.
Jika tiada ralat pada halaman status, persediaan boleh dianggap selesai.
Dengan sesetengah pembekal, situasi mungkin timbul apabila bendera mptcp dipotong di sepanjang laluan trafik, maka ralat berikut akan muncul:
Dalam kes ini, anda boleh menggunakan mod pengendalian yang berbeza, tanpa menggunakan MPTCP, lebih lanjut mengenai perkara ini
Kesimpulan
Projek OpenMPTCPRouter sangat menarik dan penting, kerana ia mungkin satu-satunya penyelesaian komprehensif terbuka kepada masalah penjumlahan saluran. Segala-galanya sama ada tertutup rapat dan proprietari, atau hanya modul berasingan yang tidak dapat difahami oleh orang biasa. Pada peringkat pembangunan semasa, projek itu masih agak kasar, dokumentasinya sangat lemah, banyak perkara yang tidak diterangkan. Tetapi pada masa yang sama ia masih berfungsi. Saya berharap ia akan terus berkembang, dan kami akan mendapat penghala isi rumah yang akan dapat menggabungkan saluran dengan betul di luar kotak.
Ikuti pembangun kami di Instagram
Sumber: www.habr.com