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

อ่านบรรทัดนั้นก่อนแตะตัวจับเวลาใด ๆ

ความเชื่อผิด: มีบางอย่างในเส้นทางบล็อกอุโมงค์

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

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

อ่านเหตุผลของการตัดการเชื่อมต่อก่อนตัวจับเวลา

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

ควรเปลี่ยนการตั้งค่าเกตเวย์หลังจากสี่การทดสอบนี้เท่านั้น

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