WireGuard 5G สาขา: ให้สาขาเป็นฝ่ายโทรหาศูนย์กลาง
เมื่อสาขาโทรหาศูนย์กลาง ศูนย์กลางไม่จำเป็นต้องค้นหาที่อยู่มือถือที่เปลี่ยนแปลงเลย กำหนดค่า ตรวจสอบ แล้วดูว่าสิ่งนี้ไม่แก้ปัญหาอะไร
การชี้สาขาไปยังศูนย์กลางเป็นครึ่งที่ง่ายของดีไซน์นี้ เมื่อสาขาอยู่หลังที่อยู่มือถือที่เปลี่ยนแปลงและศูนย์กลางมีชื่อที่มั่นคง ศูนย์กลางจะเรียนรู้สาขาจากทราฟฟิกที่ผ่านการรับรอง แทนที่จะเรียนรู้จากบันทึกที่คุณต้องคอยอัปเดต สัญญานั้นง่ายมาก: สาขาเป็นฝ่ายเริ่มเสมอ
กำหนดค่าอย่างตั้งใจ แล้วตรวจสอบส่วนที่ผู้คนคิดว่าทำงานได้ ทั้งสองขั้นใช้เวลาไม่กี่นาที และดีไซน์แบบนี้มักล้มเหลวในขั้นที่สอง
ฝ่ายใดถือปลายทางที่มั่นคง
การกำหนดค่าของสาขาระบุปลายทางและกุญแจสาธารณะของศูนย์กลาง การกำหนดค่าของศูนย์กลางระบุกุญแจสาธารณะของสาขาและคำนำหน้าภายในที่อนุญาต และอาจไม่มีปลายทางเลย เพราะตัวตนมาจากกุญแจ ไม่ใช่จากที่อยู่ต้นทางของแพ็กเก็ตสุดท้าย ความไม่สมมาตรนี้คือกลไกทั้งหมด และมันกำจัดปัญหาการค้นหาทั้งชั้นออกจากฝั่งศูนย์กลาง
เมื่อสาขาส่งแพ็กเก็ตที่ผ่านการรับรอง ศูนย์กลางจะบันทึกต้นทางที่แพ็กเก็ตมาจากและใช้การแมปนั้นตอบกลับ การเปลี่ยนหมายเลขลิงก์มือถือจึงไม่เสียอะไรเลยนอกจากแฮนด์เชคครั้งถัดไป และทุกองค์ประกอบที่คุณไม่ต้องการแล้วคือสิ่งที่ไม่สามารถล้มเหลวระหว่างการสลับได้ คุณสมบัตินี้ควรทดสอบระหว่างการเปลี่ยนแปลงที่วางแผนไว้ ไม่ใช่ระหว่างเหตุการณ์ ทำสิ่งนี้ขณะที่มีคนดูทั้งสองฝั่งพร้อมกันได้
ให้การกำหนดค่าที่ทนต่อการเปลี่ยนหมายเลขแก่สาขา
เก็บปลายทางและ keepalive ไว้ที่สาขา และเก็บรายการเพื่อนในศูนย์กลางโดยไม่มีที่อยู่ที่กำหนดตายตัว keepalive ทำให้การแมปที่แปลแล้วเปิดอยู่ยาวนานพอให้ศูนย์กลางส่งทราฟฟิกที่ไม่ได้รับคำขอหลังช่วงไม่ใช้งาน
[Peer]
PublicKey = HUB_PUBLIC_KEY_BASE64
Endpoint = hub.example.net:51820
AllowedIPs = 10.60.0.0/24, 10.60.10.0/24
PersistentKeepalive = 25
ยี่สิบห้าวินาทีคือตัวอย่างที่มักถูกอ้างถึงสำหรับการรักษาการแมป NAT ให้คงอยู่ ไม่ใช่ข้อกำหนดสำหรับทุกเพื่อน ตั้งค่าตามเวลาหมดอายุของการแมปที่คุณสังเกตจริง และจำไว้ว่ามันสร้างทราฟฟิกบนลิงก์ที่มีจำกัดข้อมูลตราบใดที่อินเทอร์เฟซเปิดอยู่
ที่ศูนย์กลาง คำนำหน้าที่อนุญาตของเพื่อนสาขาต้องครอบคลุมทุกสิ่งที่สาขาจะส่ง คำนำหน้าที่หายไป ทำงานเหมือนความล้มเหลวในการกำหนดเส้นทางที่ปลายไกล และไม่สร้างคำเตือนบนฝั่งใดเลย จึงควรตรวจสอบก่อนแพ็กเก็ตจริงตัวแรก เปรียบเทียบคำนำหน้าที่อนุญาตของศูนย์กลางกับที่อยู่ของอินเทอร์เฟซสาขาก่อนการเชื่อมต่อครั้งแรก
ตรวจสอบการแมปและการสลับเมื่อล้มเหลว
ยืนยันว่าแฮนด์เชคเสร็จสมบูรณ์ ศูนย์กลางแสดงปลายทางปัจจุบันของสาขา และที่อยู่ภายในของสาขาเข้าถึงได้ผ่านอุโมงค์ นี่คือเส้นฐาน และควรบันทึกไว้ก่อนที่ใครจะแตะลิงก์มือถือ สองบรรทัดของเอาต์พุตก็เพียงพอ เก็บไว้ในตั๋วพร้อมการประทับเวลา
wg show wg0
wg show wg0 latest-handshakes
ip route show default
ping -c 3 10.60.10.1
จากนั้นทดสอบความล้มเหลวที่ดีไซน์นี้มีไว้สำหรับ ถอด WAN หลักออกและยืนยันว่าเส้นทางพื้นฐานของสาขาไปยังศูนย์กลางออกผ่านอินเทอร์เฟซมือถือแล้ว อุโมงค์ไม่สามารถซ่อมแซมเส้นทางกายภาพที่ขาดได้ ดังนั้นเส้นทางภายนอกที่ยังชี้ไปยังอัปลิงก์ที่ตายแล้วจะทำให้เกิดการหมดเวลาแฮนด์เชคซึ่งดูเหมือนปัญหาของศูนย์กลางทุกประการ
ถ้าเส้นทางภายนอกถูกผูกไว้อย่างชัดเจนหรือถูกกำหนดเส้นทางตามนโยบาย การสลับเมื่อล้มเหลวต้องรวมมันไว้ด้วย ช่องว่างระหว่างดีไซน์ที่อ่านถูกต้องกับดีไซน์ที่ทนต่อเหตุขัดข้องมักเป็นสิ่งเดียวที่ขาดหาย
สิ่งที่ดีไซน์นี้ไม่แก้
ไม่มีอะไรที่นี่อนุญาตการเชื่อมต่อขาเข้าสู่สาขา ถ้ามีบางสิ่งในสำนักงานใหญ่ต้องโทรหาที่ตั้งมือถือ ทิศทางของอุโมงค์ผิดสำหรับข้อกำหนดนั้น และ DNS แบบไดนามิกอัปเดตเพียงชื่อ การแปลของผู้ให้บริการ นโยบายขาเข้า และการรีเฟรชปลายทางโดยไคลเอนต์ยังคงขวางอยู่ และบันทึกที่เปลี่ยนไปไม่สามารถเปิด NAT ระดับผู้ให้บริการได้
เก็บคำนำหน้าของสาขาให้แตกต่างจากทุกไซต์อื่น และจำกัดสิ่งที่เกตเวย์ของมันจะส่งต่อ ปลายทางที่มั่นคงของศูนย์กลางทำให้การค้นหาง่ายขึ้น และไม่ทำอะไรเลยสำหรับการออกแบบเส้นทาง การวางแผนที่อยู่ หรือคำถามว่าเส้นทางแอปพลิเคชันใดทนต่อการสลับ
เขียนสี่สิ่งลงในรันบุ๊ก: ใครเริ่ม คำนำหน้าใดได้รับอนุญาต keepalive ยาวเท่าใด และเกิดอะไรขึ้นเมื่อลิงก์หลักล่ม บรรทัดเหล่านี้คือสิ่งที่ผู้ดูแลระบบในอนาคตต้องการจริง ๆ เวลาตีสาม