เข้าใจสิ่งที่ถูกประสานงาน
คอนโทรลเพลนจัดการการลงทะเบียนโหนดและกระจายข้อมูลเครือข่าย ทราฟฟิกข้อมูลอาจใช้การเชื่อมต่อแบบเพียร์โดยตรงหรือรีเลย์ขึ้นอยู่กับการเชื่อมต่อ การรันตัวประสานงานไม่ได้หมายความว่าทุกแพ็กเก็ตผ่านมันไป
ทำให้การลงทะเบียนเป็นไปอย่างตั้งใจ
ปกป้อง API สำหรับผู้ดูแลระบบ และใช้วิธีการลงทะเบียนที่มีอายุสั้นหรือกำหนดขอบเขตอย่างเหมาะสม ลบอุปกรณ์ที่สูญหายหรือเลิกใช้งาน ความสามารถในการเข้าร่วมเมชไม่ควรหมายถึงการเข้าถึงทุกบริการ
ตรวจสอบ ACL และเส้นทาง
ใช้กฎสิทธิ์น้อยที่สุดระหว่างผู้ใช้และโหนด เส้นทางซับเน็ตที่ประกาศและโหนดทางออกขยายเครือข่ายที่เข้าถึงได้และต้องได้รับการอนุมัติอย่างชัดเจน ทดสอบทราฟฟิกที่ถูกปฏิเสธอย่างระมัดระวังเช่นเดียวกับทราฟฟิกที่ได้รับอนุญาต
เก็บวัสดุกู้คืนไว้
สำรองข้อมูลการกำหนดค่า สถานะ และคีย์ตามขั้นตอนของเวอร์ชันที่รองรับ เก็บวิธีดูแล VPS ในกรณีที่เมชล้มเหลว ตรวจสอบความเข้ากันได้ของไคลเอนต์และบันทึกการอัปเกรดก่อนเปลี่ยนคอนโทรลเพลน
การลงทะเบียน การกำหนดเส้นทาง และนโยบายเป็นการตรวจสอบแยกกัน
Headscale ประสานงานไคลเอนต์ Tailscale ที่เข้ากันได้ การเชื่อมต่อโดยตรงและเส้นทางรีเลย์ DERP มีพฤติกรรมเครือข่ายที่แตกต่างกัน เราเตอร์ซับเน็ตประกาศช่วงหนึ่ง เซิร์ฟเวอร์ควบคุมอนุมัติ และไคลเอนต์ต้องยอมรับเส้นทาง เปิดใช้งานการส่งต่อบนโหนดเส้นทางและรักษาช่วงที่ประกาศให้แคบ เส้นทางที่อนุมัติแล้วยังต้องมีนโยบายการเข้าถึงที่จำกัดว่าใครสามารถใช้ปลายทางและพอร์ตใดได้
- ตรวจสอบรายการเส้นทางของเซิร์ฟเวอร์ควบคุม
- ทดสอบจากอุปกรณ์ที่ได้รับอนุญาต
- ทำการทดสอบเดิมซ้ำจากอุปกรณ์ที่ควรถูกปฏิเสธ
headscale nodes list-routesเอกสารอย่างเป็นทางการ: เส้นทาง Headscale
อย่าวางเส้นทางการกู้คืนเพียงเส้นทางเดียวไว้ในเมช
เก็บวิธีที่สองในการเข้าถึงคอนโซลเซิร์ฟเวอร์หรือเส้นทางผู้ดูแลระบบที่จำกัดอย่างเข้มงวด ทดสอบว่าเกิดอะไรขึ้นเมื่อผู้ประสานงาน รีเลย์ หรือไคลเอนต์ไม่พร้อมใช้งาน รักษาสถานะคอนโทรลเพลนและคีย์ตามเวอร์ชันที่ติดตั้ง เมชส่วนตัวสามารถทำให้การเข้าถึงง่ายขึ้น แต่ไม่ควรกลายเป็นการพึ่งพาที่ไม่มีเอกสารซึ่งขัดขวางการซ่อมแซมตัวเอง
กำหนดตัวตนของคอนโทรลเพลนและเส้นทางการกู้คืน
เลือกชื่อ HTTPS ที่มั่นคง เลือกเวอร์ชัน Headscale ที่ได้รับการสนับสนุน และไคลเอนต์ Tailscale ที่เข้ากันได้ อ่านตัวอย่างการกำหนดค่าที่มาพร้อมกับเวอร์ชันนั้นโดยเฉพาะ การกำหนดค่าที่คัดลอกมาจากเวอร์ชันอื่นอาจไม่ผ่านการตรวจสอบหรืออาจกำหนดนโยบายที่แตกต่างออกไปโดยไม่แจ้งให้ทราบ เก็บฐานข้อมูล control-plane และคีย์ที่จำเป็นไว้อย่างถาวร รักษา API สำหรับผู้ดูแลระบบให้เป็นส่วนตัว และเก็บคอนโซลแยกหรือเส้นทาง SSH ที่จำกัดไว้ เพื่อให้การสูญเสียเมชไม่ทำให้ตัวประสานงานของเมชซ่อมแซมไม่ได้
- ใช้ใบรับรองที่ถูกต้องสำหรับชื่อ control-plane สาธารณะ
- ตั้งคีย์การลงทะเบียนให้มีอายุสั้นและกำหนดขอบเขตอย่างเหมาะสม
- ถือว่าการออกแบบรีเลย์และเนมสเปซ DNS เป็นตัวเลือกที่ชัดเจน
เอกสารอย่างเป็นทางการ: การติดตั้งคอนเทนเนอร์ Headscale
ลงทะเบียนอุปกรณ์หนึ่งเครื่องก่อนประกาศเครือข่าย
เริ่มเซิร์ฟเวอร์โดยใช้คำแนะนำจากต้นทางและลงทะเบียนผู้ใช้/อุปกรณ์ทดสอบหนึ่งรายการผ่านวิธีการลงทะเบียนที่ระบุไว้ ยืนยันว่าอุปกรณ์เข้าถึง URL ควบคุมที่คาดไว้และปรากฏภายใต้ตัวตนที่ตั้งใจ ตรวจสอบสถานะไคลเอนต์และทดสอบบริการส่วนตัวหนึ่งรายการก่อนเพิ่มเส้นทาง exit-node หรือซับเน็ต เส้นทาง DERP สามารถรักษาการเชื่อมต่อไว้ได้เมื่อไม่มีเส้นทางตรง แต่ไม่ได้บ่งชี้ว่าตัวประสานงานกำลังส่งต่อทุกแพ็กเก็ต
- เริ่มต้นด้วยอุปกรณ์และบริการที่คุณสามารถถอดออกได้อย่างปลอดภัย
- ตรวจสอบว่าทราฟฟิกเพียร์เป็นแบบโดยตรงหรือผ่านรีเลย์
- ปกป้องรีเลย์และปลายทางการควบคุมตามการปรับใช้ที่เลือก
เอกสารอย่างเป็นทางการ: เอกสารอ้างอิงการติดตั้งใช้งาน Headscale
อนุมัติการกำหนดเส้นทางและการอนุญาตแยกจากกัน
สำหรับการเข้าถึงซับเน็ต ให้เปิดใช้งานการส่งต่อบนโหนดเส้นทาง ประกาศช่วงที่แคบ อนุมัติบนเซิร์ฟเวอร์ควบคุม และตรวจสอบให้แน่ใจว่าไคลเอนต์ปลายทางยอมรับมัน หลีกเลี่ยงเครือข่ายที่ทับซ้อนกันซึ่งทำให้เส้นทางขากลับกำกวม เส้นทางที่อนุมัติแล้วไม่ใช่นโยบายการเข้าถึง: กำหนดว่าใครสามารถเชื่อมต่อกับปลายทางและพอร์ตใด รวมถึงอุปกรณ์แขก ทดสอบการเชื่อมต่อที่อนุญาตและการเชื่อมต่อที่ถูกปฏิเสธเหมือนกันก่อนขยายเมช
# Run on the control server; syntax follows the installed release:
headscale nodes list-routes
# Client-side inspection:
tailscale statusเอกสารอย่างเป็นทางการ: ซับเน็ตและเส้นทางออกของ Headscale
หาเลเยอร์ที่เสียก่อนเปลี่ยนนโยบาย
หากการลงทะเบียนล้มเหลว ให้ตรวจสอบ DNS, HTTPS และเซิร์ฟเวอร์ URL หากอุปกรณ์เข้าร่วมแต่เข้าถึงซับเน็ตไม่ได้ ให้ตรวจสอบการประกาศ การอนุมัติ การยอมรับเส้นทางของไคลเอนต์ การส่งต่อ และเส้นทางขากลับ หากเฉพาะบริการเดียวล้มเหลว ให้ตรวจสอบที่อยู่ผูก (bind address) ไฟร์วอลล์ของโฮสต์ และนโยบายเมช รักษาการสำรองฐานข้อมูล/การกำหนดค่าให้สอดคล้องกัน และทดสอบการอัปเกรดเวอร์ชันด้วยไคลเอนต์แบบใช้แล้วทิ้งก่อนเปลี่ยนคอนโทรลเพลนเพียงตัวเดียว