Dua talian internet boleh menjadikan VPN lebih tersedia, dan boleh menjadikannya lebih pantas untuk sesetengah beban kerja, tetapi mekanismelah yang menentukan yang mana satu berlaku. Penghala dengan dua laluan lalai tidak diikat, dan terowong yang membawa beribu-ribu sambungan dalaman masih satu aliran luar. Menamakan janji dahulu ialah perbezaan antara reka bentuk dan kekecewaan yang mahal. Jadual di bawah memisahkan pilihan mengikut apa yang diperlukan setiap satu di hujung jauh dan apa yang dilakukan kehilangan pautan terhadap pemindahan.

Tiga janji, dan hanya satu memerlukan rakan kongsi

Failover mengekalkan laluan tersedia apabila pautan pilihan hilang. Pengimbangan hash aliran menyebarkan aliran bebas ke kedua-dua uplink. Pengagregatan satu aliran membolehkan satu pemindahan menggunakan kedua-dua pautan serentak. Itu produk berbeza dengan keperluan berbeza, dan hanya yang terakhir memerlukan kerjasama daripada sesuatu di luar penghala anda.

MechanismFar-end requirementEffect on one transferWhat breaks under a link loss
Packet-spraying overlayA cooperating endpoint that reassembles the streamPackets can spread across both linksReordering and buffering on the surviving path; its own recovery logic decides what continues
MPTCP subflowsA peer or proxy that accepts subflowsSubflows can share one connectionSurviving subflows continue if the peer keeps them alive
Flow-hash balancingNothing new; the existing tunnel endpoint is enoughOne outer flow still follows one linkFlows hashed onto the dead link move; established sessions break
Link failoverNothing newOne path at a time; the second link sits idleThe session stalls or restarts on the other link

Tiada apa-apa dalam jadual itu menjadi sebab membeli talian kedua. Apa yang dilakukannya ialah menghalang reka bentuk failover daripada dinilai seolah-olah ia pengikatan.

Mengapa terowong kelihatan seperti satu aliran kepada penghala

Penghala yang mengimbangkan beban menghash alamat sumber dan destinasi bersama port, kemudian menghantar seluruh aliran ke tempat hash menunjuk. Terowong VPN ialah satu aliran sedemikian dari sudut pandangan penghala, apa pun yang berjalan di dalamnya. Sambungan dalaman tidak pernah sampai ke keputusan hash, kerana pengepala luar sudah menentukan laluan. Itulah sebabnya uplink kedua boleh menggandakan jumlah kapasiti untuk ramai pengguna dan tidak mengubah apa-apa pada pemindahan besar seorang pengguna.

Dua terowong berasingan boleh memberi anda dua calon, tetapi ia masih memerlukan dasar yang disengajakan yang memperuntukkan trafik dan mengekalkan balasan pada laluan yang membawa permintaan. Penghalaan tidak simetri ialah hasil biasa apabila langkah itu dilangkau. Minimumnya ialah dasar yang menamakan aliran, pautan pilihan dan pautan sandaran.

Pengikatan Ethernet tidak melintasi pembekal yang tidak berkaitan, kerana hujung jauh mesti menyertai protokol pengagregatan. Pengikatan merentas dua ISP ialah projek penyelidikan kecuali wujud titik akhir yang bekerjasama.

Apa yang diperlukan TCP berbilang laluan di kedua-dua hujung

Dokumentasi Linux tentang Multipath TCP menerangkan beberapa subaliran yang tergolong dalam satu sambungan. Sokongan kernel di satu hujung tidak mengubah apa-apa dengan sendirinya, kerana rakan juga mesti menerima subaliran itu. Proksi di sisi jauh ialah susunan biasa yang lain, dan ia menjadi komponen dengan kapasiti serta ketersediaan sendiri yang perlu dirancang. Logik yang sama menyingkirkan jawapan mudah untuk WireGuard, yang pengangkutannya UDP: MPTCP menumbuhkan subaliran TCP dan tidak boleh mengagregat terowong itu tanpa sesuatu yang lain dalam reka bentuk.

Semak sama ada ciri kernel diaktifkan sebelum mereka bentuk di sekelilingnya, kerana banyak distribusi menghantarnya dalam keadaan mati. Ketiga-tiga arahan ini menjawabnya dalam satu minit.

sysctl net.mptcp.enabled
ss -M | head
ip mptcp limits show

Pilih daripada beban kerja, bukan daripada risalah

Jika beban kerja ialah banyak sesi bebas, pengimbangan hash aliran boleh menambah kapasiti tanpa kerjasama di hujung jauh. Jika ia satu pemindahan besar, hanya reka bentuk pengagregatan akan membantu, dan reka bentuk itu memerlukan rakan yang bekerjasama. Jika keperluannya ialah kerja berterusan apabila pautan mati, jawapannya failover dan daya pemprosesan satu pemindahan tidak relevan.

Tulis keperluan dalam satu ayat dengan kata kerja di dalamnya: satu sandaran selesai dua kali lebih pantas, atau pautan yang putus tidak menamatkan sesi. Matlamat kabur menghasilkan reka bentuk yang tiada siapa boleh terima atau tolak. Kemudian tentukan apa hujung jauh dibenarkan menjadi, kerana pilihan termurah selalunya yang tidak menuntut apa-apa baharu di sana. Kekangan itu menghapuskan kebanyakan dakwaan risalah sebelum mesyuarat pertama.

Kekalkan ketiga-tiga janji berasingan dalam dokumen keperluan. Reka bentuk yang mendakwa ketiga-tiganya biasanya menyampaikan satu dan secara senyap menganggap yang lain. Bahagian seterusnya menguji yang mana benar-benar disampaikan.

Uji satu pemindahan dan banyak, kemudian tarik satu pautan

Bandingkan satu pemindahan berterusan dengan beberapa pemindahan selari ke destinasi yang sama, dan rekod kehilangan, kelewatan serta penggunaan setiap pautan. Keuntungan hanya dengan sesi selari menunjukkan taburan aliran, bukan pengagregatan satu aliran. Uji kehilangan satu uplink secara berasingan, kerana kapasiti semasa kedua-dua pautan berfungsi tidak berkata apa-apa tentang failover untuk sesi yang sudah terbentuk. Rekod laluan, soket dan pembilang penghantaran semula sebelum dan selepas setiap ujian.

ip route show default
ip route get 10.80.0.5
mtr -n -c 20 -r 10.80.0.5

Apabila pemindahan tunggal masih menggunakan satu uplink, reka bentuk itu melakukan tepat apa yang tersirat oleh hash aliran. Apabila pemindahan selari merebak ke kedua-duanya, pengimbangan berfungsi dan pengagregatan tidak. Rekod janji mana antara ketiga-tiganya yang benar-benar dipatuhi oleh reka bentuk, dan perbualan kapasiti seterusnya bermula dengan bukti, bukan dakwaan vendor.

Artikel berkaitan