לפני מספר ימים דיברנו כאן בבלוג על Firezone, שהיא תוכנת שירות מצוינת ליצירת שרתי VPN מבוססי WireGuard.
ועכשיו, בהזדמנות זו, נדבר על כלי עזר דומה מאוד בשם "Headscale", שהוא פרויקט שפותח כמימוש קוד פתוח של רכיב שרת ה- VPN של Tailscale , המאפשר לך ליצור רשתות VPN דמויות Tailscale במקום שלך, מבלי להיות קשור לשירותי צד שלישי.
Tailscale מאפשר שילוב של מספר שרירותי של מארחים מפוזרים גיאוגרפית לרשת , הבנויה בתמונה של רשת רשת, שבה כל צומת מתקשר עם צמתים אחרים ישירות (P2P) או דרך צמתים שכנים, מבלי להעביר תעבורה דרך שרתים חיצוניים מרכזיים של ספק ה-VPN.
בנוסף לתמיכה בבקרת ניתוב וגישה מבוססת ACL , ואפשרות הקמת ערוצי תקשורת תחת תנאי שימוש של תרגום כתובות רשת (NAT), המערכת תומכת במנגנוני STUN, ICE ו-DERP (בדומה ל-TURN, אך מבוססים על HTTPS). אם ערוץ התקשורת בין צמתים מסוימים חסום, הרשת יכולה לנתב מחדש את התעבורה דרך צמתים אחרים.
Tailscale שונה מפרויקט Nebula , שנועד גם הוא ליצור רשתות VPN מבוזרות עם ניתוב רשת, תוך שימוש בפרוטוקול Wireguard לארגון העברת נתונים בין צמתים, בעוד ש-Nebula משתמש בפיתוחים מפרויקט Tinc, המשתמש באלגוריתם AES-256 להצפנת חבילות GSM (Wireguard משתמש בהצפנת ChaCha20, אשר בבדיקות מדגים ביצועים ותגובתיות גבוהים יותר).
פרויקט דומה נוסף, Innernet, מפותח בנפרד, ובו פרוטוקול Wireguard משמש גם הוא להחלפת נתונים בין צמתים. בניגוד ל-Tailscale ול-Nebula, Innernet משתמש במערכת הפרדת גישה שונה המבוססת על רשימות ACL; תוויות אינן מקושרות לצמתים ולתת-רשתות בודדות כדי להפריד ולבודד טווחי כתובות IP שונים, כמו ברשתות אינטרנט קונבנציונליות.
כמו כן, Innernet משתמשת ב- Rust במקום ב- Go וראוי להזכיר כי Innernet 1.5 עם תמיכה משופרת ב- NAT חוצה פורסמה לפני מספר ימים. יש גם פרוייקט Netmaker, המאפשר לך לחבר רשתות עם טופולוגיות שונות באמצעות Wireguard, אך הקוד שלו מסופק תחת ה- SSPL (Server Side Public License), שאינו פתוח בשל הימצאות דרישות מפלה.
Tailscale מופץ באמצעות מודל freemium, המציע גישה חופשית ליחידים וגישה בתשלום לעסקים ולצוותים. רכיבי הלקוח של Tailscale, למעט היישומים הגרפיים עבור Windows ו-macOS, מפותחים כפרויקטים בקוד פתוח תחת רישיון BSD.
תוכנת השרתים של Tailscale, אשר מאמתת לקוחות חדשים , מתאמת ניהול מפתחות ומארגנת תקשורת בין צמתים, היא קניינית. פרויקט Headscale מטפל בבעיה זו ומספק יישום בקוד פתוח שאינו תלוי ברכיבי שרת Tailscale.
Headscale לוקח על עצמו את הפונקציות של חילופי מפתחות ציבוריים בין צמתים וגם מבצע פעולות של הקצאת כתובות IP וחלוקת טבלת ניתוב בין צמתים.
בצורתו הנוכחית, Headscale מיישם את כל התכונות העיקריות של שרת ניהול, למעט תמיכה ב-MagicDNS ו-Smart DNS. באופן ספציפי, הוא תומך ברישום צמתים (כולל דרך האינטרנט), התאמת הרשת להוספה או הסרה של צמתים, יצירת רשתות משנה באמצעות מרחבי שמות (מה שמאפשר יצירת VPN עבור משתמשים מרובים), ארגון גישה משותפת של צמתים לתת-רשתות במרחבי שמות שונים, בקרת ניתוב (כולל הקצאת צמתים יוצאים לגישה לעולם החיצון), גישה משותפת דרך רשימות ACL וביצוע DNS.
קוד Headscale כתוב ב- Go ומופץ תחת רישיון BSD. הפרויקט מפותח על ידי חואן פונט מסוכנות החלל האירופית.
לבסוף, אם אתם מעוניינים ללמוד עוד, תוכלו למצוא פרטים נוספים בקישור הבא.