สองเส้นอินเทอร์เน็ตทำให้ VPN พร้อมใช้งานมากขึ้นได้ และทำให้เร็วขึ้นสำหรับงานบางประเภท แต่กลไกเป็นตัวกำหนดว่าจะเกิดอย่างไหน การมีเส้นทางเริ่มต้นสองเส้นไม่ได้แปลว่าเชื่อมรวมกัน และอุโมงค์ที่บรรทุกการเชื่อมต่อภายในหลายพันรายการก็ยังเป็นโฟลว์ภายนอกเดียว การตั้งชื่อคำสัญญาก่อนคือความต่างระหว่างการออกแบบกับความผิดหวังราคาแพง ตารางด้านล่างแยกตัวเลือกตามสิ่งที่แต่ละแบบต้องการที่ปลายทางไกล และสิ่งที่การสูญเสียลิงก์ทำกับการถ่ายโอน

สามคำสัญญา และมีเพียงอย่างเดียวที่ต้องมีคู่ค้า

การสลับเมื่อล้มเหลวทำให้เส้นทางพร้อมใช้เมื่อลิงก์ที่ต้องการหายไป การกระจายด้วยแฮชโฟลว์กระจายโฟลว์อิสระไปยังอัปลิงก์ทั้งสอง การรวมโฟลว์เดียวทำให้การถ่ายโอนหนึ่งรายการใช้ลิงก์ทั้งสองพร้อมกัน สิ่งเหล่านี้เป็นผลิตภัณฑ์ต่างกันที่มีข้อกำหนดต่างกัน และมีเพียงอย่างสุดท้ายที่ต้องได้รับความร่วมมือจากสิ่งนอกเราเตอร์ของคุณ

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

ไม่มีอะไรในตารางนั้นเป็นเหตุผลให้ซื้อเส้นที่สอง สิ่งที่ตารางทำคือป้องกันไม่ให้การออกแบบสลับถูกราวกับเป็นการเชื่อมรวม

ทำไมอุโมงค์จึงดูเหมือนโฟลว์เดียวสำหรับเราเตอร์

เราเตอร์ที่กระจายโหลดจะแฮชที่อยู่ต้นทางและปลายทางพร้อมพอร์ต แล้วส่งโฟลว์ทั้งหมดไปยังที่ที่แฮชชี้ อุโมงค์ VPN คือโฟลว์หนึ่งเช่นนั้นจากมุมมองของเราเตอร์ ไม่ว่าอะไรจะทำงานอยู่ข้างใน การเชื่อมต่อภายในไม่เคยไปถึงการตัดสินใจของแฮช เพราะส่วนหัวภายนอกกำหนดเส้นทางไว้แล้ว นั่นคือเหตุผลที่อัปลิงก์เส้นที่สองเพิ่มความจุรวมเป็นสองเท่าให้ผู้ใช้จำนวนมากได้ และไม่เปลี่ยนอะไรในการถ่ายโอนใหญ่ของผู้ใช้คนเดียว

อุโมงค์แยกสองอันให้ผู้สมัครสองรายได้ แต่ยังต้องมีนโยบายที่ตั้งใจซึ่งจัดสรรทราฟฟิกและรักษาการตอบกลับไว้บนเส้นทางที่คำขอเดินทางไป การกำหนดเส้นทางแบบอสมมาตรเป็นผลลัพธ์ปกติของการข้ามขั้นตอนนั้น ขั้นต่ำคือนโยบายที่ระบุโฟลว์ ลิงก์ที่ต้องการ และลิงก์สำรอง

การเชื่อมรวมอีเทอร์เน็ตไม่ข้ามผู้ให้บริการที่ไม่เกี่ยวข้อง เพราะปลายทางไกลต้องเข้าร่วมในโปรโตคอลการรวมลิงก์ การเชื่อมรวมข้ามผู้ให้บริการอินเทอร์เน็ตสองรายเป็นโครงการวิจัย เว้นแต่จะมีปลายทางที่ให้ความร่วมมือ

สิ่งที่ TCP หลายเส้นทางต้องการที่ปลายทั้งสอง

เอกสาร Multipath TCP ของ Linux อธิบายโฟลว์ย่อยหลายรายการที่เป็นของการเชื่อมต่อเดียว การสนับสนุนของเคอร์เนลที่ปลายหนึ่งไม่เปลี่ยนอะไรโดยลำพัง เพราะคู่ตรงข้ามก็ต้องยอมรับโฟลว์ย่อยเหล่านั้นด้วย พร็อกซีที่ฝั่งไกลเป็นการจัดวางทั่วไปอีกแบบ และกลายเป็นองค์ประกอบที่มีความจุและความพร้อมใช้งานของตัวเองที่ต้องวางแผน ตรรกะเดียวกันตัดคำตอบง่ายๆ สำหรับ WireGuard ออก เพราะการขนส่งเป็น UDP: MPTCP เพิ่มโฟลว์ย่อย TCP และไม่สามารถรวมอุโมงค์นั้นได้หากไม่มีสิ่งอื่นในการออกแบบ

ตรวจสอบว่าคุณลักษณะของเคอร์เนลเปิดอยู่หรือไม่ก่อนออกแบบโดยรอบ เพราะดิสทริบิวชันหลายตัวส่งมาโดยปิดไว้ สามคำสั่งนี้ตอบได้ในหนึ่งนาที

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

เลือกจากภาระงาน ไม่ใช่จากโบรชัวร์

หากภาระงานเป็นเซสชันอิสระจำนวนมาก การกระจายด้วยแฮชโฟลว์เพิ่มความจุได้โดยไม่ต้องมีความร่วมมือที่ปลายทางไกล หากเป็นการถ่ายโอนใหญ่หนึ่งรายการ มีเพียงการออกแบบรวมลิงก์ที่จะช่วยได้ และการออกแบบนั้นต้องมีคู่ที่ให้ความร่วมมือ หากข้อกำหนดคือให้งานดำเนินต่อเมื่อลิงก์ตาย คำตอบคือการสลับ และทรูพุตของการถ่ายโอนเดียวไม่เกี่ยวข้อง

เขียนข้อกำหนดเป็นประโยคเดียวที่มีคำกริยาอยู่ในนั้น: สำรองหนึ่งชุดเสร็จเร็วเป็นสองเท่า หรือลิงก์ที่ล้มไม่ยุติเซสชัน เป้าหมายที่คลุมเครือสร้างการออกแบบที่ไม่มีใครยอมรับหรือปฏิเสธได้ จากนั้นตัดสินใจว่าปลายทางไกลเป็นอะไรได้ เพราะตัวเลือกที่ถูกที่สุดมักเป็นตัวที่ไม่ต้องการสิ่งใหม่ที่นั่น ข้อจำกัดนั้นกำจัดข้ออ้างในโบรชัวร์ส่วนใหญ่ก่อนการประชุมครั้งแรก

แยกคำสัญญาทั้งสามไว้ในเอกสารข้อกำหนด การออกแบบที่อ้างทั้งสามมักส่งมอบอย่างหนึ่งและสมมติอีกสองอย่างเงียบๆ ส่วนถัดไปทดสอบว่าส่งมอบสิ่งใดจริง

ทดสอบการถ่ายโอนหนึ่งและหลายรายการ แล้วดึงลิงก์ออก

เปรียบเทียบการถ่ายโอนต่อเนื่องหนึ่งรายการกับการถ่ายโอนแบบขนานหลายรายการไปยังปลายทางเดียวกัน และบันทึกการสูญเสีย ความหน่วง และการใช้ลิงก์แต่ละเส้น หากได้ประโยชน์เฉพาะกับเซสชันแบบขนาน นั่นชี้ไปที่การกระจายโฟลว์ ไม่ใช่การรวมโฟลว์เดียว ทดสอบการสูญเสียอัปลิงก์หนึ่งเส้นแยกต่างหาก เพราะความจุขณะที่ลิงก์ทั้งสองทำงานไม่บอกอะไรเกี่ยวกับการสลับสำหรับเซสชันที่สร้างไว้แล้ว บันทึกเส้นทาง ซ็อกเก็ต และตัวนับการส่งซ้ำก่อนและหลังการทดสอบแต่ละครั้ง

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

เมื่อการถ่ายโอนเดียวยังใช้อัปลิงก์หนึ่งเส้น การออกแบบกำลังทำสิ่งที่แฮชโฟลว์บ่งบอกอย่างถูกต้อง เมื่อการถ่ายโอนแบบขนานกระจายไปทั้งสองเส้น การกระจายทำงานแต่การรวมไม่ทำงาน บันทึกว่าการออกแบบรักษาคำสัญญาข้อใดจริง และการสนทนาเรื่องความจุครั้งถัดไปจะเริ่มจากหลักฐาน ไม่ใช่ข้ออ้างของผู้ขาย

บทความที่เกี่ยวข้อง