NetworkManager เปิดเผยพร็อพเพอร์ตีเดียว, vpn.persistent, และผู้คนขอให้มันตอบคำถามที่แตกต่างกันสี่ข้อพร้อมกัน เอกสารต้นทางของมันระมัดระวัง: ความคงอยู่มีผลเมื่อบริการ VPN รองรับและโปรไฟล์เปิดใช้งาน และจากนั้นการเชื่อมต่อถูกขอให้อยู่รอดผ่านการเปลี่ยนแปลงของลิงก์และการหยุดชะงักจนกว่าจะตัดการเชื่อมต่ออย่างชัดเจน เอกสารเดียวกันยังแสดงว่าพร็อพเพอร์ตีมีค่าเริ่มต้นเป็น false ซึ่งไม่ใช่สิ่งที่แผนการกู้คืนส่วนใหญ่อาศัย อ่านมันเป็นคำขอให้ลอง ไม่ใช่คำสัญญาว่าจะได้ผลลัพธ์

การตั้งค่าสัญญาอะไรจริง ๆ

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

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

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

สี่คำถามที่ถูกรวมเป็นหนึ่ง

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

การกู้คืนถามว่าเกิดอะไรขึ้นเมื่อลิงก์เปลี่ยนหรือหายไป และนั่นคือคำถามแคบ ๆ ที่ vpn.persistent จัดการ ความมีชีวิตถามว่าไคลเอนต์สามารถรู้ได้หรือไม่ว่าปลายทางไกลหยุดตอบ และพฤติกรรม keepalive หรือการรีสตาร์ทของ OpenVPN ตอบแทน; กลไกทั้งสองมักถูกอธิบายด้วยคำเดียวกันและนำไปใช้ในที่ต่างกัน ทดสอบแยกกันด้วยเครื่องมือต่างกัน มิฉะนั้นคุณจะถือว่าพฤติกรรมหนึ่งเป็นของอีกพฤติกรรมหนึ่ง

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

รายการตรวจสอบที่แยกคำถามเหล่านั้น

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

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

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

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

การยืนยันตัวตนเป็นส่วนหนึ่งของการกู้คืน

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

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

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

ความคงอยู่ไม่ใช่ kill switch

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

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

บันทึกทั้งสองครึ่งในบันทึกการกู้คืน: VPN พยายามทำอะไร และทราฟฟิกแอปพลิเคชันใดได้รับอนุญาตในขณะที่การพยายามดำเนินอยู่

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