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

เขียนสัญญานั้นก่อนเลือกผลิตภัณฑ์ มันมีสี่ส่วน คือ สตรีมที่ VPN ได้รับ วิธีที่ผู้ให้บริการกู้คืนข้อมูลที่หายไป ตัวตนปลายทางใดที่อยู่รอดเมื่อเส้นทางเปลี่ยน และระบบทั้งหมดทำงานอย่างไรเมื่อเส้นทางล้มเหลว

อาการ: ลิงก์ขึ้นแล้ว เซสชันยังขาด

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

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

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

หลักประกันที่หนึ่ง: สตรีมไบต์ระดับการเชื่อมต่อ

ถ้า VPN ต้องการสตรีมเรียงลำดับที่เชื่อถือได้ ผู้ให้บริการต้องระบุช่วงไบต์เหนือเส้นทางแต่ละเส้น การเชื่อมต่อ TCP ข้างใต้แต่ละอันนับเฉพาะเซกเมนต์ของตัวเอง ผู้รับจึงไม่สามารถเรียงลำดับข้ามเส้นทางด้วยตัวเลขเหล่านั้นเพียงอย่างเดียว

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

บน Linux MPTCP เป็น opt-in ต่อซ็อกเก็ตผ่าน IPPROTO_MPTCP เมื่อการเจรจาไม่สามารถใช้พฤติกรรมหลายเส้นทางได้ ทางเลือกสำรองที่บันทึกไว้คือ TCP ธรรมดา ซึ่งหมายความว่าแอปพลิเคชันอาจทำงานต่อบนเส้นทางเดียวโดยไม่เคยใช้เส้นที่สอง ตรวจสอบว่าซ็อกเก็ตที่ติดตั้งไว้เจรจาพฤติกรรมใดจริงๆ แทนที่จะถือว่าการตั้งค่าเคอร์เนลมีผล

หลักประกันที่สอง: การเรียงลำดับ การทำซ้ำ และการกู้คืน

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

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

การทำซ้ำต้องมีกฎของตัวเอง การส่งเพย์โหลดเดียวกันบนทั้งสองเส้นทางอาจปรับปรุงความหน่วง แต่ผู้รับต้องระงับสำเนาก่อนถึง VPN ชั้นการทำซ้ำที่เรียงลำดับใหม่หรือเล่นแพ็กเก็ตซ้ำอาจกระตุ้น anti-replay ของ IPsec ซึ่งเป็นทางเลือกต่อ security association และตรวจหมายเลขลำดับ หรือซ่อนปัญหาไว้จนอุโมงค์ล้ม

หลักประกันที่สาม: ตัวตนปลายทางและการเข้าร่วมเส้นทาง

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

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

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

หลักประกันที่สี่: พฤติกรรมที่จำกัดเมื่อล้มเหลว

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

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

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

ยอมรับผู้ให้บริการด้วยแผนการทดสอบ

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

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

เก็บเมทริกซ์ที่ลงนามไว้กับการติดตั้ง มันบอกวิศวกรคนถัดไปว่าพฤติกรรมใดถูกสัญญาไว้ การรวมเส้นทางใดถูกทดสอบ และโหมดล้มเหลวใดยังไม่รองรับ โดยไม่ต้องเดาอีกรอบจากไฟสถานะลิงก์

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