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

การออกแบบที่อ่านง่ายจะระบุเจ้าของของแต่ละโฟลว์ แทนที่จะอธิบายเครื่องว่าเป็นบทบาท

ปิด ส่งต่อ แปล

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

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

ใครเป็นเจ้าของอะแดปเตอร์และพูล

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

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

เก็บต้นทางไว้หรือเขียนใหม่

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

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

อธิบายโฟลว์ในประโยคเดียว

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

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

เมื่อประโยคเริ่มไม่ชัด การเพิ่มชั้นการแปลอีกชั้นแทบไม่เคยทำให้ชัดขึ้น การเอาออกหนึ่งชั้นมักทำให้ชัดขึ้น

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