จาก Access Server สู่ Community OpenVPN: สิ่งใดต้องสร้างใหม่
Access Server เก็บนโยบาย ส่วน Community OpenVPN ให้คุณเขียนเอง จัดทำแผนที่ตัวตน เส้นทาง และการเพิกถอน ก่อนคัดลอกใบรับรองแม้แต่ใบเดียว
Access Server และ Community OpenVPN พูดโปรโตคอลเดียวกันและแทบจะไม่มีอย่างอื่นที่เหมือนกัน การจับมือ การเจรจาไซเฟอร์ และระนาบข้อมูลของอุโมงค์นั้นเข้ากันได้ ไคลเอนต์จึงมักเชื่อมต่อกับทั้งสองได้โดยไม่ต้องแก้โปรไฟล์ สิ่งที่ต่างคือใครเป็นเจ้าของการกำหนดค่า: ผลิตภัณฑ์หนึ่งมีชั้นการจัดการที่เขียนและบังคับใช้นโยบาย อีกผลิตภัณฑ์ให้ไฟล์กำหนดค่าและชุดฮุกแก่คุณแล้วรอให้คุณตัดสินใจ
ความต่างนั้นคือแผนการย้ายระบบ ทุกสิ่งที่ผลิตภัณฑ์เก่าตัดสินใจแทนคุณต้องกลายเป็นการตัดสินใจที่ชัดเจนที่ใดที่หนึ่งในการติดตั้งใหม่
จุดที่การติดตั้งทั้งสองไม่สามารถใช้แทนกันได้อีก
ใน Access Server อินเทอร์เฟซผู้ดูแลระบบบนเว็บเป็นเจ้าของผู้ใช้ กลุ่ม สิทธิ์ต่อผู้ใช้ การออกใบรับรอง และชุดโปรไฟล์ที่คนหนึ่งดาวน์โหลด ดีมอนที่อยู่ข้างใต้ถูกกำหนดค่าโดยชั้นนั้น บริการที่ทำงานอยู่จึงเป็นผลของสถานะที่จัดเก็บไว้ซึ่งคุณแทบไม่แก้ด้วยมือ ใน Community OpenVPN ไฟล์กำหนดค่าคือสถานะ: มันระบุผู้รับฟัง ผู้ออกใบรับรอง ฮุกตรวจสอบสิทธิ์ และทุกตัวเลือกที่ส่งออกไป และไม่มีสิ่งใดเขียนมันใหม่แทนคุณ เครื่อง TLS เดียวกันจึงอยู่ภายใต้รูปแบบความเป็นเจ้าของสองแบบที่ต่างกันมาก
แผนที่สั้นๆ ทำให้ช่องว่างเป็นรูปธรรม ผู้ใช้และกลุ่มมีอยู่เฉพาะในฐานข้อมูลเก่าจนกว่าคุณจะสร้างใหม่ ชุดโปรไฟล์กลายเป็นไฟล์กำหนดค่าบวกใบรับรองที่คุณแจกจ่ายเอง สิทธิ์ต่อผู้ใช้กลายเป็นคำสั่งใน client-config-dir อินเทอร์เฟซผู้ดูแลกลายเป็นกระบวนการที่คุณเลือกสำหรับการออกใบรับรองและการแก้ไขไฟล์
เขียนแผนที่นั้นก่อนแตะเซิร์ฟเวอร์ ทุกแถวที่คุณเติมไม่ได้คือคุณสมบัติที่คุณกำลังจะเสียไป และการเสียไปอย่างเงียบๆ คือหนทางที่การย้ายระบบกลายเป็นเหตุขัดข้องในอีกสองสัปดาห์
ตัวตนไม่ย้ายไปกับไฟล์ใบรับรอง
ใบรับรองจากผู้ออกเดิมอาจถูกแยกวิเคราะห์อย่างถูกต้องในบริการใหม่และยังเป็นตัวตนที่ผิด เพราะผลิตภัณฑ์เก่าจับคู่ใบรับรองเหล่านั้นกับสถานะบัญชีที่ระบบใหม่มองไม่เห็น ก่อนอื่นตัดสินว่าการติดตั้งใหม่ตรวจสอบสิทธิ์ด้วยใบรับรองอย่างเดียว ด้วยปลั๊กอินที่ไปถึง PAM หรือ RADIUS หรือด้วยการผสม แล้วตรวจสอบว่าแต่ละทางเลือกคงคุณสมบัติที่คุณต้องการ ใบรับรองที่ใช้ร่วมกันโดยไม่มีตัวตนต่อผู้ใช้คือข้อมูลรับรองเดียวสำหรับทุกคนที่ถือมัน การเพิกถอนต้องทำงานตั้งแต่วันแรก ซึ่งใน Community OpenVPN หมายถึงไฟล์ CRL ที่ crl-verify อ้างถึงบวกกระบวนการที่สร้างมันใหม่
วางแผนการลงทะเบียนก่อนการเปลี่ยนผ่าน ไม่ใช่หลัง การมีใบรับรองใหม่ เส้นทางการเพิกถอนที่ทดสอบแล้ว และวิธีที่เขียนไว้สำหรับปิดใช้งานคนหนึ่งเป็นเงื่อนไขเบื้องต้น ไม่ใช่งานติดตามผล หากการตรวจสอบหลายปัจจัยมาจากการผสานรวมของผลิตภัณฑ์เก่า ให้ระบุตัวแทนอย่างชัดเจน เพราะปลั๊กอินที่ไม่ได้ติดตั้งจะล้มเหลวแบบปิดในจังหวะที่แย่ที่สุด
การกำหนดเส้นทางและการแก้ชื่อตามผู้เขียนการกำหนดค่า
เส้นทาง การตั้งค่า DNS และพฤติกรรมอุโมงค์เต็มเป็นตัวเลือกที่ถูกส่งในทั้งสองผลิตภัณฑ์ แต่มีเพียงตัวเดียวที่คำนวณให้คุณ ใน Community OpenVPN คุณเขียนคำสั่ง push เอง ตัดสินว่า redirect-gateway เป็นของเซิร์ฟเวอร์หรือไคลเอนต์ และยืนยันว่ามีการส่งต่อและ NAT บนโฮสต์ การจับมือที่เสร็จแล้วไม่ได้บอกอะไรเกี่ยวกับการส่งต่อ การแปลที่อยู่ หรือเส้นทางที่ไคลเอนต์ได้รับจริง
พฤติกรรมต่อไคลเอนต์ต้องใช้ client-config-dir บวกไฟล์ที่ตั้งชื่อตาม common name ของใบรับรองไคลเอนต์ และคู่ไซต์ถึงไซต์ต้องมีรายการ iroute สำหรับคำนำหน้าที่อยู่ข้างหลัง หากตั้งชื่อผิด ตัวเลือกจะถูกเพิกเฉยโดยไม่มีข้อผิดพลาด ทดสอบกับไคลเอนต์ที่ไม่ใช่การผลิตหนึ่งตัวในพูลที่อยู่ของมันเอง แล้วอ่านที่อยู่ที่ได้รับ เส้นทางที่ได้รับ และการตั้งค่าตัวแก้ชื่อที่มันลงเอย
จัดลำดับการเปลี่ยนผ่านให้บริการเก่ากลับมาได้
รันผู้รับฟังใหม่บนพอร์ตหรือที่อยู่อื่น และให้ตัวเก่ายังให้บริการทราฟฟิกขณะที่คุณพิสูจน์ตัวแทน สองดีมอนบนซ็อกเก็ตเดียวไม่ใช่แผนการย้อนกลับ
ย้ายทีละกลุ่ม พร้อมใบรับรอง พูล และเส้นทางของกลุ่มนั้น และซ้อมเส้นทางกลับแทนที่จะค้นพบมันระหว่างเหตุการณ์ การย้อนกลับที่ทำงานเฉพาะเมื่อหยุดบริการใหม่ก่อนยังเป็นการย้อนกลับ แต่ต้องทดสอบตอนที่ไม่มีอะไรลุกเป็นไฟ
สุดท้าย ระบุคุณสมบัติที่ไม่มีสิ่งที่เทียบเท่าโดยตรงและตัดสินชะตาของแต่ละอย่างเป็นลายลักษณ์อักษร: การดาวน์โหลดโปรไฟล์ด้วยตนเอง ธงสิทธิ์ต่อผู้ใช้ อินเทอร์เฟซผู้ดูแลเอง การรายงานการเชื่อมต่อสด การแทนที่ด้วยกระบวนการทำมือที่เขียนไว้เป็นคำตอบที่ชอบธรรม การปล่อยแถวให้ว่างไม่ใช่
งานเสร็จเมื่อคนที่ไม่เคยเห็นพอร์ทัลเก่าสามารถลงทะเบียน เชื่อมต่อ ไปถึงที่อยู่ภายในที่ตั้งใจ และถูกเพิกถอนอย่างสะอาด ทุกอย่างก่อนหน้านั้นคือการเตรียมการ