ทำไมอุโมงค์ Azure OpenVPN จึงหลุดทุกประมาณหกสิบวินาที
อุโมงค์ที่หลุดทุกหกสิบวินาทีได้จับมือเสร็จแล้ว จึงไม่มีอะไรปิดกั้น อ่านเหตุผลของการตัดการเชื่อมต่อก่อน แล้วเปรียบเทียบตัวจับเวลาทั้งสองของ keepalive
อุโมงค์จับมือเสร็จ ส่งข้อมูลประมาณหนึ่งนาที แล้วเชื่อมต่อใหม่ ลำดับนี้ตัดผู้ต้องสงสัยตามปกติออก เพราะไฟร์วอลล์ที่บล็อกพอร์ตจะหยุดการจับมือ ไม่ใช่เซสชัน สิ่งที่คุณมีคือความเห็นไม่ตรงกันเรื่องความมีชีวิต: ฝ่ายหนึ่งตัดสินว่าอีกฝ่ายเงียบไปแล้วและรื้ออุโมงค์ที่ทำงานอยู่ บรรทัดในบันทึกบอกว่าฝ่ายไหน และมันเป็นตัวเลือกวิธีแก้
อ่านบรรทัดนั้นก่อนแตะตัวจับเวลาใด ๆ
ความเชื่อผิด: มีบางอย่างในเส้นทางบล็อกอุโมงค์
ถ้าพอร์ตถูกบล็อก การเชื่อมต่อจะล้มเหลวตั้งแต่ต้นและล้มเหลวต่อเนื่อง วงจรที่เกิดซ้ำหมายถึงข้อความควบคุมยังไหลอยู่ เซสชันกำลังถูกสร้าง และมีบางอย่างในช่วงท้ายของการสนทนาที่หมดอายุซ้ำ ๆ การบล็อกสร้างความเงียบ ส่วนสิ่งนี้สร้างจังหวะ
จังหวะคือเบาะแสที่มีประโยชน์ ตัวจับเวลาสร้างมัน การสูญเสียแพ็กเก็ตแทบไม่สร้าง
อ่านเหตุผลของการตัดการเชื่อมต่อก่อนตัวจับเวลา
OpenVPN ตั้งชื่อเหตุผลของมัน และแต่ละชื่อชี้ไปยังระบบย่อยที่ต่างกัน Session invalidated: KEEPALIVE_TIMEOUT คือตัวจับเวลาที่หมดอายุ ดังนั้นเปรียบเทียบค่า ping และ ping-restart ที่ทั้งสองปลาย AUTH_FAILED คือข้อมูลรับรองหรือสถานะใบรับรอง และการเปลี่ยนตัวจับเวลาไม่ช่วย ข้อผิดพลาด TLS หมายความว่าทั้งสองฝ่ายไม่เคยไปถึงขั้น keepalive เลย
บันทึกเวลาที่เชื่อมต่อ เวลาที่ตัดการเชื่อมต่อ และช่วงเวลาคงที่ถึงระดับวินาทีหรือไม่ การวัดเพียงครั้งเดียวนี้แยกตารางที่กำหนดไว้จากความบังเอิญ
ช่วงเวลาที่คงที่คือตัวจับเวลา ช่วงเวลาที่เลื่อนไหลน่าจะเป็นปัญหาของเส้นทางหรือเซสชันที่ถูกย้าย
ตัวจับเวลา keepalive สองตัวที่ไม่เคยตกลงกันได้
โปรไฟล์ที่ส่งออกจากพอร์ทัล บางครั้งยังมีบรรทัดอย่าง keepalive หรือ ping-restart ที่คัดลอกจากแม่แบบเซิร์ฟเวอร์ชุมชน เกตเวย์ทำการตรวจจับคู่ที่ตายแล้วของตัวเองและบังคับความคาดหวังของตัวเอง และตารางทั้งสองไม่จำเป็นต้องตรงกัน เมื่อไม่ตรงกัน ไคลเอนต์จะเริ่มใหม่ตามตารางที่เกตเวย์ไม่เคยตกลงด้วย
ค่าสองค่าไม่ใช่การควบคุมเดียวกัน ping คือความถี่ที่ไคลเอนต์ส่งเสียงสะท้อน และ ping-restart คือระยะเวลาที่รอโดยไม่ได้ยินอะไรก่อนจะรื้ออุโมงค์ โปรไฟล์ที่ตั้ง ping-restart สั้นและเกตเวย์ที่ตอบช้าจะเริ่มใหม่ทุกช่วงเงียบ ซึ่งเป็นรูปร่างของวงจรหนึ่งนาทีพอดี
การเปลี่ยนแปลงน้อยที่สุดฝั่งไคลเอนต์คือทำให้ตัวจับเวลาเป็นกลางที่ระดับบนสุดของโปรไฟล์ นอกบล็อกแบบอินไลน์ทุกบล็อก:
keepalive 0 0บันทึก โหลดโปรไฟล์ใหม่ เชื่อมต่อใหม่ เซสชันที่อยู่ในหน่วยความจำแล้วจะเก็บค่าเดิมไว้ นี่คือเหตุผลที่การแก้ไขบางครั้งดูเหมือนไม่ได้ทำอะไร
ชื่อใบรับรองอาจเลื่อนไปอยู่ใต้เท้าคุณ
การรับรองด้วยใบรับรอง Azure ขึ้นอยู่กับว่าไคลเอนต์เชื่อถือชื่อที่เกตเวย์นำเสนอในวันนี้หรือไม่ บรรทัด verify-x509-name ในการดาวน์โหลดเก่าอาจตรึงชื่อที่การสร้างเกตเวย์ใหม่หรือการต่ออายุใบรับรองเปลี่ยนไปแล้วตั้งแต่ตอนนั้น และความไม่ตรงกันจะปรากฏเป็นวงจรเชื่อมต่อใหม่ ไม่ใช่ข้อผิดพลาดที่ชัดเจน การลบบรรทัดนี้คืนการเชื่อมต่อ ซึ่งทำให้เป็นเครื่องมือวินิจฉัยที่ดีและการแก้ไขถาวรที่ไม่ดี เพราะมันลบการตรวจสอบออกด้วย เมื่ออุโมงค์อยู่ตัวแล้ว ให้คืนบรรทัดด้วยชื่อที่เกตเวย์นำเสนอจริง
ทดสอบไคลเอนต์รุ่นที่สองบนเครื่องเดียวกันก่อนแก้ไขเกตเวย์ ถ้าตัวหนึ่งวนซ้ำและอีกตัวอยู่ตัว ปัญหาไม่ใช่โปรไฟล์
จะเปลี่ยนอะไร และตามลำดับใด
จากนั้นตรวจสอบเซสชันที่ถูกย้าย อุปกรณ์สองเครื่องที่ใช้ใบรับรองร่วมกันสามารถดันกันออกได้ และผลลัพธ์ดูเป็นระยะเพราะทั้งสองฝ่ายยังเชื่อมต่อใหม่ เปรียบเทียบบันทึกเซสชันแบบจุดถึงไซต์ของตัวตนเดียวกันที่ปรากฏซ้ำแล้วซ้ำอีก
จากนั้นทดสอบเส้นทางว่างโดยเดินข้อมูลต่อเนื่องหลายนาที ถ้าการหลุดหยุดขณะข้อมูลไหล ตัวจับเวลาที่สำคัญเป็นของอุปกรณ์ NAT หรือตัวกระจายโหลดบนเส้นทาง ไม่ใช่ของ OpenVPN
ควรเปลี่ยนการตั้งค่าเกตเวย์หลังจากสี่การทดสอบนี้เท่านั้น