پروژه Headscale در حال توسعه یک اجرای باز از مؤلفه سرور شبکه Tailscale VPN است که به شما امکان می دهد شبکه های VPN مشابه Tailscale را در امکانات خود ایجاد کنید، بدون اینکه به خدمات شخص ثالث وابسته باشید. کد Headscale در Go نوشته شده و تحت مجوز BSD توزیع می شود. این پروژه توسط Juan Font از آژانس فضایی اروپا در حال توسعه است.
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، مانند شبکههای اینترنتی معمولی، مبتنی است. علاوه بر این، به جای زبان Go، Innernet از زبان Rust استفاده می کند. سه روز پیش، به روز رسانی Innernet 1.5 با پشتیبانی بهبود یافته پیمایش NAT منتشر شد. همچنین یک پروژه Netmaker وجود دارد که به شما امکان می دهد شبکه ها را با توپولوژی های مختلف با استفاده از Wireguard ترکیب کنید، اما کد آن تحت SSPL (مجوز عمومی سمت سرور) ارائه می شود که به دلیل وجود الزامات تبعیض آمیز باز نیست.
Tailscale با استفاده از مدل freemium توزیع میشود، به معنای استفاده رایگان برای افراد و دسترسی پولی برای مشاغل و تیمها. اجزای سرویس گیرنده Tailscale، به استثنای برنامه های گرافیکی برای ویندوز و macOS، به عنوان پروژه های باز تحت مجوز BSD توسعه یافته اند. نرمافزار سروری که در سمت Tailscale اجرا میشود، اختصاصی است و هنگام اتصال مشتریان جدید، هماهنگی مدیریت کلید و سازماندهی ارتباطات بین گرهها، احراز هویت را فراهم میکند. پروژه Headscale این نقص را برطرف میکند و پیادهسازی مستقل و باز مؤلفههای Backend Tailscale را ارائه میدهد.
Headscale وظایف تبادل کلیدهای عمومی گره ها را بر عهده می گیرد و همچنین عملیات تخصیص آدرس های IP و توزیع جداول مسیریابی بین گره ها را انجام می دهد. در شکل فعلی، Headscale تمام قابلیت های اساسی سرور مدیریت را به استثنای پشتیبانی از MagicDNS و Smart DNS پیاده سازی می کند. به طور خاص، عملکردهای ثبت گره ها (از جمله از طریق وب)، تطبیق شبکه برای افزودن یا حذف گره ها، جداسازی زیرشبکه ها با استفاده از فضاهای نام (یک شبکه VPN می تواند برای چندین کاربر ایجاد شود)، سازماندهی دسترسی مشترک گره ها به زیرشبکه ها در فضاهای نام مختلف. ، کنترل مسیریابی (از جمله تخصیص گره های خروجی برای دسترسی به دنیای خارج)، جداسازی دسترسی از طریق ACL ها و عملیات سرویس DNS.
منبع: opennet.ru