VPN ตัดการเชื่อมต่อทุกช่วงเวลาเดิมหรือไม่? จับคู่ตัวจับเวลา
การหลุดในช่วงเวลาคงที่เป็นลายนิ้วมือ ก่อนจะเปลี่ยนอะไร ให้เปรียบเทียบการต่ออายุคีย์ของอุโมงค์ ตัวจับเวลาว่างของ NAT สัญญาเช่า DHCP และขีดจำกัดบัญชี
อุโมงค์ที่ตายทุกสิบห้านาที หรือทุกชั่วโมงในนาทีเดียวกัน บอกคุณว่าตัวจับเวลาบางตัวหมดอายุ ไม่ใช่ว่าเครือข่ายไม่เสถียร ขั้นตอนที่มีประโยชน์คือจดช่วงเวลาไว้แล้วเทียบกับตัวจับเวลาสี่ตัวที่สร้างรูปแบบนี้ การเปลี่ยนเวลาหมดก่อนการเปรียบเทียบนั้นมักย้ายความผิดพลาดโดยไม่อธิบาย ทำให้ครั้งต่อไปอ่านยากกว่าครั้งแรก การวัดใช้เวลาสิบนาทีและแทนที่การเดาทั้งสัปดาห์
เปลี่ยนช่วงเวลาให้เป็นตัวเลข
เก็บเหตุการณ์ห้าหรือหกครั้งแล้วคำนวณช่องว่างระหว่างกัน ไม่ใช่ช่องว่างจากต้นวัน การหลุดเวลา 09:12, 10:12 และ 11:12 คือเส้นแบ่งรายชั่วโมง การหลุดเวลา 09:12, 09:27 และ 09:42 คือสิบห้านาทีจากการเชื่อมต่อที่สำเร็จครั้งล่าสุด ปัดผลลัพธ์ไปยังตัวจับเวลาที่เป็นไปได้มากที่สุด ไม่ใช่ไปยังนาทีที่ใกล้ที่สุด
บันทึกสองช่วงเวลาต่อเหตุการณ์ คือเมื่อทราฟฟิกเคลื่อนไหวครั้งล่าสุด และเมื่อไคลเอนต์รายงานการตัดการเชื่อมต่อ สองสิ่งนี้ต่างกันเมื่ออุโมงค์ตายอย่างเงียบ ๆ และไคลเอนต์รู้ตัวเฉพาะตอนส่งครั้งถัดไป และความต่างนี้เองที่แยกเวลาหมดการว่างจากการล้มเหลวแบบแข็ง ไคลเอนต์ที่รู้ตัวช้าจะทำให้หน้าต่างการว่างที่คุณวัดดูใหญ่ขึ้น
สังเกตว่าการเชื่อมต่อใหม่เป็นอัตโนมัติหรือไม่ ไคลเอนต์ที่เชื่อมต่อใหม่ในไม่กี่วินาทีจะทำให้ช่วงเวลายังเห็นได้ในบันทึกและอยู่นอกรายงานผู้ใช้ นี่คือเหตุผลที่ความล้มเหลวเหล่านี้มักถูกอธิบายว่าเกิดขึ้นเป็นครั้งคราวไม่ใช่เป็นคาบ มันยังซ่อนเหตุการณ์จากคนที่ใช้แล็ปท็อปด้วย
ตัวจับเวลาสี่ตัวที่ดูคล้ายกัน
เกือบทุกการล่มของอุโมงค์ที่เกิดซ้ำมาจากหนึ่งในนี้ การต่ออายุคีย์ของโปรโตคอล การหมดอายุของการแมปที่ว่าง เหตุการณ์ DHCP หรืออินเทอร์เฟซ หรือนโยบายบัญชี สิ่งเหล่านี้ต่างกันที่ว่ามีทราฟฟิกไหลหรือไม่ และบันทึกพูดอะไรที่เส้นแบ่ง
ลายเซ็นด้านล่างคุ้มค่าที่จะเรียนรู้ เพราะช่วยให้คุณปฏิเสธคำอธิบายสามข้อจากบันทึกเพียงบรรทัดเดียว:
| Timer | Typical trigger | What the log shows at the boundary |
|---|---|---|
| Protocol rekey | Traffic present, fixed interval | Negotiation lines, sometimes a failure |
| NAT or firewall idle | No traffic for minutes | Silence, then a timeout on send |
| DHCP lease or link change | Half the lease, or a radio event | Address or interface churn |
| Account session limit | Wall-clock hours since login | Clean disconnect, server-side reason |
แถวแรกคือกลไกความปลอดภัยที่ทำหน้าที่ของมัน และแถวที่สองคืออุปกรณ์กลางที่ลืมสถานะ การสับสนทั้งสองจะนำไปสู่การทำให้การต่ออายุคีย์อ่อนลงหรือการไล่ตามกฎไฟร์วอลล์ที่ไม่เคยเกี่ยวข้อง
ไม่ว่างกับว่างบอกคุณว่าครึ่งไหน
ทำการเปรียบเทียบแบบควบคุมด้วยทราฟฟิกต่อเนื่อง เช่นสตรีมยาวไปยังโฮสต์ภายในอุโมงค์ และดูว่าช่วงเวลาเปลี่ยนหรือไม่ ถ้าการหลุดหายไปขณะข้อมูลไหล ตัวจับเวลาอ้างอิงจากการว่าง
ถ้ามันทนทราฟฟิกต่อเนื่องได้ สาเหตุเป็นของการต่ออายุคีย์ สัญญาเช่า หรือนโยบาย การทดสอบเดียวนี้ตัดผู้สมัครครึ่งหนึ่งในการสังเกตประมาณหนึ่งชั่วโมง และไม่เสียค่าใช้จ่ายใด ๆ นอกจากความสนใจ
รักษาเครือข่ายการเข้าถึงให้ไม่เปลี่ยนแปลงระหว่างการทดสอบ การสลับระหว่าง Wi-Fi และ Ethernet กลางการเปรียบเทียบจะนำเหตุการณ์อินเทอร์เฟซที่คุณพยายามแยกจากตัวจับเวลาเข้ามาพอดี
จับคู่บรรทัดบันทึกกับเส้นแบ่ง
อ่านบันทึกของไคลเอนต์และเซิร์ฟเวอร์รอบเวลาที่บันทึกไว้ ไม่ใช่ทั้งไฟล์ การต่ออายุคีย์แสดงการเจรจา การหมดอายุของการว่างไม่แสดงอะไรจนถึงแพ็กเก็ตถัดไป การเปลี่ยนสัญญาเช่าแสดงงานด้านที่อยู่ ขีดจำกัดนโยบายมักแสดงการตัดการเชื่อมต่อเชิงบริหารที่สะอาด
คำสั่งเหล่านี้ดึงหน้าต่างที่เกี่ยวข้องจากแต่ละแหล่ง:
grep -iE "reneg|TLS Error|Inactivity" /var/log/openvpn.log | tail -20
journalctl -u NetworkManager --since "-90 min" | grep -iE "dhcp|link"
wg showถ้าทั้งสามแหล่งตรงกันเรื่องเวลาคุณก็รู้เจ้าของตัวจับเวลา ถ้ามีเฉพาะบันทึกของไคลเอนต์ เซิร์ฟเวอร์อาจไม่ใช่ฝ่ายที่จบเซสชัน
ซ่อมขั้นตอน ไม่ใช่ไอคอน
เจ้าของแต่ละรายมีการซ่อมที่รองรับหนึ่งอย่าง ความล้มเหลวของการต่ออายุคีย์ต้องมีข้อเสนอที่เข้ากันได้ทั้งสองฝั่ง การหมดอายุของการว่างต้องมีสัญญาณคงชีวิตหรือความคาดหวังการว่างที่สั้นลงภายในขอบเขตที่เส้นทางอนุญาต เหตุการณ์สัญญาเช่าต้องแก้การตั้งค่าอินเทอร์เฟซหรือพลังงาน ขีดจำกัดบัญชีเป็นการตัดสินใจเชิงนโยบาย ไม่ใช่บั๊ก
การปิดการต่ออายุคีย์หรือการยืนยันตัวตนเพื่อให้ไอคอนเขียวเป็นการแลกการหลุดที่มองเห็นได้กับจุดอ่อนที่มองไม่เห็น และทำให้คุณบอกไม่ได้ว่าอุโมงค์เจรจาคีย์ใหม่ครั้งล่าสุดเมื่อไร ทดสอบระยะเวลาเดิมอีกครั้งหลังจากนั้นและเก็บเวลาไว้ เพื่อให้เหตุการณ์ถัดไปเทียบกับครั้งนี้ได้แทนการเริ่มใหม่