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

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

สำรองข้อมูลที่คืนค่าภายหลังไม่ใช่สำรองของปัจจุบัน

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

ชื่อไฟล์สำรองเดียวที่คงที่ทำให้แย่ลง เหตุการณ์เชื่อมต่อครั้งหลังอาจคัดลอกไฟล์ที่ถูกแก้ไขแล้วทับไฟล์ที่ถือว่าเป็นต้นฉบับ ฐานการกู้คืนจึงเลื่อนไปทางหน้าตาของไฟล์ ณ เหตุการณ์ครั้งล่าสุด

ทุกเหตุการณ์คือการแจ้งเตือน ไม่ใช่ธุรกรรม

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

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

ให้เจ้าของแก่ทุกการแมป

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

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

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

เมื่อ DNS แบบมีเงื่อนไขคือความต้องการจริง

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

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

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

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