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

สองรูปแบบการกู้คืน หนึ่งเงื่อนไขชี้ขาด

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

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

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

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

สิ่งที่แบ็กอัปไม่ได้กู้คืน

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

What changedRestored by a configuration backupNeeds its own action
Service unit or startup orderingPartly, if the unit file was includedPackage state and enabled links
Kernel module or interface supportNoKernel or module rollback, or a boot-time decision
Peer or device authorizationOnly if the backup predates the revocationA deliberate decision about which peers return
Firewall rules applied outside the configOnly if they were capturedReplaying and verifying each rule

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

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

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

จุดตรวจสอบ อัปเดต แล้วตรวจสอบจากภายนอก

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

systemctl list-units --type=service | grep -E 'openvpn|wg-quick'
ss -lunp | grep -E ':51820|:1194'
journalctl -u wg-quick@wg0 --since '-10 min'

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

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

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

เมื่อมันล้มเหลว จงใช้เส้นทางที่คุณทดสอบแล้ว

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

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

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

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

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