VPN หลุดหลังต่ออายุ DHCP? เปรียบเทียบที่อยู่
การต่ออายุมักคงที่อยู่เดิม ตรวจที่อยู่ เกตเวย์ ตัวแก้ชื่อ และสถานะเส้นทางของไคลเอนต์รอบ ๆ การหลุดก่อนโทษสัญญาเช่า
การต่ออายุสัญญาเช่ากับความล้มเหลวของ VPN ปรากฏร่วมกันในบันทึกบ่อยพอที่ผู้คนจะสรุปว่าอย่างหนึ่งทำให้อีกอย่างหนึ่งเกิดขึ้น ความบังเอิญทางเวลานั้นจริง แต่ความเป็นเหตุเป็นผลมักไม่จริง การต่ออายุคือคำขอแบบยูนิแคสต์ไปยังเซิร์ฟเวอร์ที่ออกสัญญาเช่า เพื่อขอใช้การผูกเดิมต่อ และเซิร์ฟเวอร์สามารถขยายเวลาได้โดยที่ไคลเอนต์ไม่ต้องเปลี่ยนแม้แต่ที่อยู่เดียว การตรวจค่าของไคลเอนต์เองรอบ ๆ เหตุการณ์จะแยกสัญญาเช่าที่ต่ออายุอย่างเงียบ ๆ ออกจากเครือข่ายที่เปลี่ยนจริงใต้ทันเนลที่กำลังทำงาน
เริ่มจากไคลเอนต์ที่หลุด
เปิดบันทึกการเชื่อมต่อของไคลเอนต์ก่อน แล้วบันทึกเวลาที่หลุดให้ละเอียดถึงวินาที จากนั้นเปิดบันทึกเครือข่ายของระบบปฏิบัติการในนาทีเดียวกัน และอ่านตามลำดับว่าอินเทอร์เฟซทำอะไร ลำดับนี้คือการสอบสวนทั้งหมด เหตุการณ์ DHCP ก่อนการตัดการเชื่อมต่อ การตัดการเชื่อมต่อก่อนเหตุการณ์ DHCP และสองเหตุการณ์ที่ไม่มีอะไรคั่นกลางคือข้อค้นพบที่ต่างกันสามแบบ บรรทัดบันทึกที่เอ่ยถึงเพียงสัญญาเช่าขณะทันเนลกำลังเชื่อมต่อใหม่แล้วคือเครื่องประดับ ไม่ใช่หลักฐาน
เขียนเส้นเวลาระหว่างทำไปด้วยแทนที่จะจำไว้ในหัว เวลาประทับจากเครื่องมือต่างกันแทบไม่ตรงกันเป๊ะ และความคลาดเคลื่อนนั้นเองบางครั้งก็คือคำอธิบาย
เปรียบเทียบค่าสี่ค่าที่อยู่รอบเหตุการณ์
ค่าสี่ค่าอธิบายด้านโลคอลของการเชื่อมต่อได้ดีพอจะจับการเปลี่ยนแปลงจริง ที่อยู่ของอินเทอร์เฟซ เกตเวย์เริ่มต้น รายการตัวแก้ชื่อ และสถานะการทำงานของอินเทอร์เฟซ เก็บค่าเหล่านี้ภายในหนึ่งนาทีหลังหลุด แล้วเทียบกับการเก็บภาพตอนที่ทันเนลยังปกติ
ip -4 -brief addr show dev wlan0
ip -4 route show default
resolvectl status | grep -A3 'DNS Servers'
journalctl -u NetworkManager --since -10m --no-pager | grep -i dhcp
ที่อยู่ไม่เปลี่ยน เกตเวย์ไม่เปลี่ยน แต่รายการตัวแก้ชื่อเปลี่ยน ชี้ไปที่การแก้ชื่อมากกว่าการกำหนดเส้นทาง และทันเนลอาจรอดอยู่ขณะที่แอปพลิเคชันหาโฮสต์ไม่เจอ เกตเวย์ที่เปลี่ยนหมายถึงเส้นทางออกจากเครือข่ายโลคอลย้ายไป ซึ่งพอจะทำให้เส้นทางที่ชี้ไปยังเกตเวย์เดิมใช้ไม่ได้ หากค่าทั้งสี่ตรงกับภาพตอนปกติ สัญญาเช่าไม่ใช่สาเหตุของคุณ และตรรกะการเชื่อมต่อใหม่ของไคลเอนต์เองก็กลายเป็นหัวข้อ เก็บภาพเปรียบเทียบขณะที่ยังเห็นความผิดพลาดอยู่ เพราะภาพปกติที่เก็บหลังรีบูตมีประวัติที่อยู่ต่างกันและจะไม่ตรงกัน
การต่ออายุเปลี่ยนอะไรได้และเปลี่ยนอะไรไม่ได้
RFC 2131 อธิบายการต่ออายุว่าเป็นคำขอไปยังเซิร์ฟเวอร์เดิมที่ครึ่งหนึ่งของเวลาสัญญาเช่า พร้อมการผูกใหม่กับเซิร์ฟเวอร์ใดก็ได้ที่เจ็ดในแปดหากความพยายามแรกไม่ได้รับคำตอบ ทั้งสองขั้นไม่จำเป็นให้ไคลเอนต์ได้ที่อยู่ต่างออกไป และเซิร์ฟเวอร์ที่ให้ความร่วมมือมักขยายการผูกที่มีอยู่ การเปลี่ยนที่อยู่จริงมักมาเส้นทางอื่น เซิร์ฟเวอร์ปฏิเสธการต่ออายุ ไคลเอนต์สูญเสียสถานะและเริ่มใหม่ หรือเครือข่ายย้ายอุปกรณ์ไปอีกเซกเมนต์
ด้านสาธารณะของการเชื่อมต่อเปลี่ยนได้โดยไม่มีการเปลี่ยนแปลงโลคอลใด ๆ หลังการแปลระดับผู้ให้บริการ ที่อยู่ที่ peer ของ VPN เห็นอาจถูกจัดสรรใหม่โดยไม่ขึ้นกับสิ่งที่สัญญาเช่าโลคอลทำ และการจัดสรรใหม่นั้นดูเหมือนความล้มเหลวของเครือข่ายโลคอลจากภายในไคลเอนต์ การเทียบที่อยู่ที่รายงานในเครื่องกับการสังเกตจากฝั่ง peer เป็นวิธีเดียวที่จะแยกสองสิ่งนั้น
เมื่อไคลเอนต์ปรับตัวไม่ได้
ไคลเอนต์ที่ผูกการรับส่งกับที่อยู่เก่า แคชเส้นทางที่ล้าสมัยไปยัง peer หรือบันทึกอัตลักษณ์อินเทอร์เฟซไว้อาจยังลองเส้นทางที่ไม่มีอยู่แล้วซ้ำ ๆ นั่นคือข้อบกพร่องในการปรับตัว และเห็นได้เป็นการส่งซ้ำไปยังที่อยู่ที่โฮสต์ไปไม่ถึงอีกต่อไป ไคลเอนต์บางตัวจัดการเรื่องนี้โดยการออกแบบ เช่น WireGuard อัปเดตปลายทางของ peer เมื่อแพ็กเก็ตที่ผ่านการรับรองความถูกต้องมาถูกต้องมาจากแหล่งใหม่
การรีสตาร์ตด้วยมือที่ทำให้บริการกลับมาเป็นเบาะแสว่าการปรับตัวล้มเหลวตรงไหน ไม่ใช่หลักฐานว่าสัญญาเช่ากับทันเนลเข้ากันไม่ได้ คงนโยบายบล็อกไว้ระหว่างทดสอบ ไม่อย่างนั้นการทดสอบเองจะกลายเป็นการหยุดให้บริการด้วยสาเหตุอื่น บันทึกว่าไคลเอนต์ฟื้นเองหรือไม่ ใช้เวลานานเท่าไร และลองที่อยู่ไหนอีกครั้ง ลำดับนั้นบอกคุณได้มากกว่าเหตุผลการตัดการเชื่อมต่อที่แสดงในอินเทอร์เฟซ
ทำเหตุการณ์ซ้ำก่อนจะโทษมัน
สร้างสภาวะซ้ำแทนการรอตารางเวลา ปล่อยและต่ออายุสัญญาเช่า หรือบังคับให้เกิดเหตุการณ์ควบคุมที่เทียบเท่า แล้วดูว่าทันเนลรอดหรือไม่ ในเครือข่ายที่มีการจัดการ ประสานการเปลี่ยนที่อยู่ใด ๆ กับเจ้าของเครือข่าย เพราะการกำหนดแบบคงที่ตามอำเภอใจอาจชนกับอุปกรณ์ที่ถือที่อยู่นั้นอยู่แล้ว
หลังการแก้ไขที่ได้รับการสนับสนุน ให้ทำเหตุการณ์เดิมซ้ำแล้วทดสอบแอปพลิเคชันและการค้นหาชื่อ เพราะทันเนลที่เชื่อมต่อใหม่ได้แต่ทำให้ DNS เสียผ่านการทดสอบที่อ่อนกว่าสิ่งที่สำคัญ รายงานการเปลี่ยนแปลงเฉพาะที่คุณสังเกตพร้อมเวลาประทับ แทนที่จะระบุสัญญาเช่าตามกำหนดเป็นสาเหตุ ความต่างระหว่างรายงานสองฉบับคือคนถัดไปทำซ้ำความผิดพลาดได้หรือได้แค่ข่าวลือ