สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

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

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

ตำนานเกี่ยวกับการสรุปช่อง

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

ปรับสมดุลที่ระดับการเชื่อมต่อ IP

นี่เป็นวิธีที่ประหยัดและได้รับความนิยมมากที่สุดในการใช้ช่องอินเทอร์เน็ตหลายช่องในเวลาเดียวกัน เพื่อความง่าย ลองจินตนาการว่าคุณมีผู้ให้บริการอินเทอร์เน็ตสามราย ซึ่งแต่ละรายให้ที่อยู่ IP จริงจากเครือข่ายของตนแก่คุณ ผู้ให้บริการทั้งหมดเหล่านี้เชื่อมต่อกับเราเตอร์ที่รองรับฟังก์ชัน Multi-WAN นี่อาจเป็น OpenWRT พร้อมแพ็คเกจ mwan3, mikrotik, ubiquiti หรือเราเตอร์ในครัวเรือนอื่น ๆ เนื่องจากตัวเลือกดังกล่าวไม่ใช่เรื่องแปลกอีกต่อไป

เพื่อจำลองสถานการณ์ ลองจินตนาการว่าผู้ให้บริการให้ที่อยู่ต่อไปนี้แก่เรา:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

นั่นคือการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล example.com เซิร์ฟเวอร์ระยะไกลจะเห็นไคลเอนต์ IP ต้นทางอิสระสามตัวผ่านผู้ให้บริการแต่ละราย การปรับสมดุลทำให้คุณสามารถแบ่งโหลดระหว่างช่องต่างๆ และใช้ทั้งสามช่องพร้อมกันได้ เพื่อความง่าย ลองจินตนาการว่าเราแบ่งโหลดระหว่างทุกช่องเท่าๆ กัน ด้วยเหตุนี้ เมื่อลูกค้าเปิดเว็บไซต์ที่มีภาพสามภาพ เขาจะดาวน์โหลดภาพแต่ละภาพผ่านผู้ให้บริการที่แยกจากกัน ฝั่งไซต์ดูเหมือนว่ามีการเชื่อมต่อจาก IP ที่แตกต่างกันสามรายการ

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
เมื่อปรับสมดุลที่ระดับการเชื่อมต่อ การเชื่อมต่อ TCP แต่ละรายการจะต้องผ่านผู้ให้บริการที่แยกกัน

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
เมื่อดาวน์โหลดทอร์เรนต์ การปรับสมดุลระดับการเชื่อมต่อจะรวมแบนด์วิดท์ของทุกช่องสัญญาณ

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

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
การเชื่อมต่อเดียวจะใช้ช่องทางอินเทอร์เน็ตเพียงช่องทางเดียวเสมอ

สิ่งนี้ก็เป็นจริงสำหรับการออกอากาศวิดีโอเช่นกัน หากคุณกำลังออกอากาศวิดีโอสตรีมมิ่งไปยัง Twitch แบบมีเงื่อนไขบางประเภท การปรับสมดุลที่ระดับการเชื่อมต่อ IP จะไม่ให้ประโยชน์ใด ๆ เป็นพิเศษ เนื่องจากสตรีมวิดีโอจะออกอากาศภายในการเชื่อมต่อ IP เดียว ในกรณีนี้ หากผู้ให้บริการ WAN 3 เริ่มประสบปัญหาในการสื่อสาร เช่น แพ็กเก็ตสูญหายหรือความเร็วลดลง คุณจะไม่สามารถเปลี่ยนไปใช้ผู้ให้บริการรายอื่นได้ทันที การออกอากาศจะต้องหยุดและเชื่อมต่อใหม่

สรุปช่องทรู

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

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
เซิร์ฟเวอร์รวมจะรวมทุกช่องสัญญาณไว้ในอุโมงค์เดียว การเชื่อมต่อทั้งหมดมาจากที่อยู่เซิร์ฟเวอร์สรุป

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

โซลูชั่นเชิงพาณิชย์

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
เราเตอร์สำหรับการออกอากาศวิดีโอพร้อมฟังก์ชันการรวมช่อง

อุปกรณ์ดังกล่าวมักจะมีความสามารถในตัวในการจับสัญญาณวิดีโอผ่าน HDMI หรือ SDI นอกจากเราเตอร์แล้ว ยังมีการขายการสมัครใช้บริการสรุปช่อง รวมถึงการประมวลผลสตรีมวิดีโอ การแปลงรหัส และการถ่ายทอดเพิ่มเติม ราคาของอุปกรณ์ดังกล่าวเริ่มต้นที่ 2 ดอลลาร์สหรัฐฯ พร้อมชุดโมเด็ม รวมถึงการสมัครสมาชิกบริการแยกต่างหาก

บางครั้งมันก็ดูน่ากลัวมาก:

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

การตั้งค่า OpenMPTCPRouter

มาตรการ MP-TCP (MultiPath TCP) ถูกคิดค้นเพื่อให้สามารถเชื่อมต่อผ่านหลายช่องทางพร้อมกัน ตัวอย่างเช่นของเขา รองรับ iOS และสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน WiFi และผ่านเครือข่ายเซลลูล่าร์ได้พร้อมกัน สิ่งสำคัญคือต้องเข้าใจว่านี่ไม่ใช่การเชื่อมต่อ TCP สองรายการที่แยกจากกัน แต่เป็นการเชื่อมต่อเดียวที่สร้างขึ้นบนสองช่องทางพร้อมกัน เพื่อให้ทำงานได้ เซิร์ฟเวอร์ระยะไกลต้องรองรับ MPTCP ด้วย

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
OpenMPTCPRouter ทำงานอย่างไร

การตั้งค่าเซิร์ฟเวอร์สรุป

เซิร์ฟเวอร์รวมตั้งอยู่บนอินเทอร์เน็ตและยุติการเชื่อมต่อจากทุกช่องทางของเราเตอร์ไคลเอนต์เป็นหนึ่งเดียว ที่อยู่ IP ของเซิร์ฟเวอร์นี้จะเป็นที่อยู่ภายนอกเมื่อเข้าถึงอินเทอร์เน็ตผ่าน OpenMPTCPRouter

สำหรับงานนี้ เราจะใช้เซิร์ฟเวอร์ VPS บน Debian 10

ข้อกำหนดสำหรับเซิร์ฟเวอร์สรุป:

  • MPTCP ไม่ทำงานบนการจำลองเสมือนของ OpenVZ
  • ควรสามารถติดตั้งเคอร์เนล Linux ของคุณเองได้

เซิร์ฟเวอร์ถูกปรับใช้โดยการดำเนินการหนึ่งคำสั่ง สคริปต์จะติดตั้งเคอร์เนลที่รองรับ mptcp และแพ็คเกจที่จำเป็นทั้งหมด สคริปต์การติดตั้งพร้อมใช้งานสำหรับ Ubuntu และ Debian

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

ผลลัพธ์ของการติดตั้งเซิร์ฟเวอร์สำเร็จ

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

เราบันทึกรหัสผ่าน เราจะต้องใช้รหัสผ่านเพื่อกำหนดค่าเราเตอร์ไคลเอนต์ และรีบูต สิ่งสำคัญคือต้องจำไว้ว่าหลังการติดตั้ง SSH จะพร้อมใช้งานบนพอร์ต 65222 หลังจากรีบูตเราต้องแน่ใจว่าเราบูทด้วยเคอร์เนลใหม่

uname -a 
Linux test-server.local 4.19.67-mptcp

เราเห็นคำจารึก mptcp ถัดจากหมายเลขเวอร์ชัน ซึ่งหมายความว่าเคอร์เนลได้รับการติดตั้งอย่างถูกต้อง

การตั้งค่าเราเตอร์ไคลเอนต์

На เว็บไซต์โครงการ โครงสร้างสำเร็จรูปพร้อมใช้งานสำหรับบางแพลตฟอร์ม เช่น Raspberry Pi, Banana Pi, เราเตอร์ Lynksys และเครื่องเสมือน
openmptcprouter ส่วนนี้ใช้ OpenWRT โดยใช้ LuCI เป็นอินเทอร์เฟซ ซึ่งคุ้นเคยกับใครก็ตามที่เคยพบ OpenWRT การแจกจ่ายมีน้ำหนักประมาณ 50MB!

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

ในฐานะม้านั่งทดสอบ ฉันจะใช้ Raspberry Pi และโมเด็ม USB หลายตัวที่มีโอเปอเรเตอร์ต่างกัน: MTS และ Megafon ฉันไม่คิดว่าจะต้องบอกวิธีเขียนภาพลงในการ์ด SD

เริ่มแรก พอร์ตอีเธอร์เน็ตใน Raspberry Pi ได้รับการกำหนดค่าเป็น lan พร้อมที่อยู่ IP แบบคงที่ 192.168.100.1. เพื่อหลีกเลี่ยงการยุ่งกับสายไฟบนโต๊ะ ฉันจึงเชื่อมต่อ Raspberry Pi กับจุดเข้าใช้งาน WiFi และตั้งค่าอแด็ปเตอร์ WiFi ของคอมพิวเตอร์ให้เป็นที่อยู่คงที่ 192.168.100.2. เซิร์ฟเวอร์ DHCP ไม่ได้เปิดใช้งานตามค่าเริ่มต้น ดังนั้นคุณต้องใช้ที่อยู่แบบคงที่

ตอนนี้คุณสามารถเข้าสู่เว็บอินเตอร์เฟสได้แล้ว 192.168.100.1

เมื่อคุณเข้าสู่ระบบเป็นครั้งแรก ระบบจะขอให้คุณตั้งรหัสผ่านรูท โดย SSH จะสามารถใช้ได้ด้วยรหัสผ่านเดียวกัน

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter
ในการตั้งค่า LAN คุณสามารถตั้งค่าเครือข่ายย่อยที่ต้องการและเปิดใช้งานเซิร์ฟเวอร์ DHCP

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

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

เพื่อหลีกเลี่ยงความสับสนกับชื่ออินเทอร์เฟซ ฉันขอแนะนำให้ดูข้อความ dmesg ในขณะที่เชื่อมต่อผ่าน SSH

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

OpenMPTCPRouter ต้องการให้ที่อยู่อินเทอร์เฟซ WAN เป็นแบบคงที่ ดังนั้นเราจึงสร้างซับเน็ตสำหรับโมเด็มและกำหนดค่าในระบบ → openmptcprouter → เมนูการตั้งค่าอินเทอร์เฟซ ที่นี่คุณจะต้องระบุที่อยู่ IP และรหัสเซิร์ฟเวอร์ที่ได้รับระหว่างการติดตั้งเซิร์ฟเวอร์สรุป

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

โหมดเริ่มต้นคือ shadowsocks + mptcp นี่คือพร็อกซีที่รวมการเชื่อมต่อทั้งหมดไว้ภายในตัวมันเอง ในตอนแรกได้รับการกำหนดค่าให้ประมวลผลเฉพาะ TCP แต่สามารถเปิดใช้งาน UDP ได้เช่นกัน

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

ในกรณีนี้ คุณสามารถใช้โหมดการทำงานอื่นโดยไม่ต้องใช้ MPTCP เพิ่มเติมเกี่ยวกับเรื่องนี้ ที่นี่.

ข้อสรุป

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

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

ติดตามนักพัฒนาของเราบน Instagram

สรุปช่องอินเทอร์เน็ตทรู - OpenMPTCPRouter

ที่มา: will.com

เพิ่มความคิดเห็น