پرش به محتوای اصلی
پرش به محتوای مقاله

«نسخه‌ای امن از netcat»؛ قابلیت جدید Tailscale برای اتصال نقطه-به-نقطه

·۱۰ شهریور ۱۴۰۵۷ دقیقه مطالعه۱ بازدید
لوگوی پروژه Tailcat: نسخه‌ای متن‌باز از Tailscale بدون وابستگی به زیرساخت اختصاصی Tailscale
لوگوی پروژه Tailcat: نسخه‌ای متن‌باز از Tailscale بدون وابستگی به زیرساخت اختصاصی Tailscale
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جداسازی کامل لایه داده (Data Plane) از لایه کنترل؛ اکنون می‌توان از قابلیت‌های عبور از NAT و رمزنگاری Tailscale بدون داشتن حساب کاربری یا اتصال به سرورهای مدیریتی شرکت استفاده کرد.

تصور کنید می‌خواهید دو ماشین در دو شهر مختلف را به هم متصل کنید، اما هر دو پشت دیوارهای سخت‌گیرانه فایروال‌های شرکتی هستند. در حالت عادی، اتصال دو ماشین دور از هم نیازمند یک رقص پیچیده از تنظیمات قوانین فایروال، فوروارد کردن پورت‌ها (Port Forwarding) یا داشتن یک سرور مدیریت متمرکز است. اما حالا با یک رشته متن ساده، این مسیر در چند ثانیه باز می‌شود.

Tailscale با معرفی tailcat، اصطکاک‌های سنتی شبکه را کنار زده است. این ابزار جدید به کاربران اجازه می‌دهد تا از لایه داده (Data Plane) پیشرفته این شرکت بهره ببرند، بدون اینکه هیچ‌یک از سربارهای اداری مرتبط با یک VPN سنتی را متحمل شوند.

برای درک این موضوع باید تفاوت دو مفهوم کلیدی را بدانیم. برای اکثر کاربران، یک VPN یک تجربه مدیریت‌شده است که شامل ورود به سیستم، SSO (احراز هویت یکپارچه) و سیاست‌های مرکزی است. این همان «لایه کنترل» (Control Plane) است. اما «لایه داده» (Data Plane) — جایی که جابه‌جایی واقعی بایت‌های رمزنگاری‌شده اتفاق می‌افتد — جایی است که جادوی فنی رخ می‌دهد. لایه داده در Tailscale بر پایه رمزنگاری WireGuard، عبور از NAT (تکنیکی برای عبور از مودم‌ها و روترها) و سرورهای رله DERP (نقاط ملاقات تعیین‌شده) بنا شده است تا بتواند از سخت‌ترین فایروال‌ها عبور کند.

در واقع، اگر دو کامپیوتر در دو شهر مختلف داشته باشید که هر دو پشت فایروال‌های سخت‌گیرانه شرکتی باشند، در حالت عادی نمی‌توانند یکدیگر را ببینند. تکنولوژی Tailscale به آن‌ها اجازه می‌دهد یک نقطه ملاقات مشترک (سرور DERP) را پیدا کنند و سپس تلاش کنند تا یک اتصال UDP مستقیم و رمزنگاری‌شده برقرار کنند. این مکانیسم اصلی است که اکنون tailcat آن را به عنوان یک ابزار مستقل در اختیار کاربران قرار داده است.

درک تعریف «Tailscale» از دیدگاه‌های مختلف

برای اینکه بفهمیم چرا tailcat وجود دارد، مفید است بررسی کنیم که کاربران مختلف چگونه Tailscale را تفسیر می‌کنند. یک گروه صرفاً بر جنبه WireGuard تمرکز دارند و اغلب می‌گویند: «من خودم WireGuard را اجرا می‌کنم»، زیرا آن‌ها فقط به یک IP عمومی نیاز دارند و اهمیتی به عبور از NAT، تگ‌گذاری یا سیاست‌های MDM نمی‌دهند.

گروه دیگر، Tailscale را از دریچه یک شرکت می‌بینند و بر روی مواردی مانند تامین سرمایه، قیمت‌گذاری و قابلیت اطمینان شرکتی تمرکز می‌کنند.

سپس دیدگاه متن‌باز (Open-source) وجود دارد. در حالی که لایه کنترل سمت سرور اختصاصی (Proprietary) است، اما لایه داده اصلی، سرور DERP و کلاینت‌های لینوکس و اندروید متن‌باز هستند. برخی کاربران Headscale را ترجیح می‌دهند؛ یک لایه کنترل متن‌باز که Tailscale بخشی از هزینه‌های آن را تامین می‌کند و به عنوان یک نقشه جایگزین عمل می‌کند. tailcat اکنون راه دیگری برای استفاده از زیرمجموعه‌ای از این قطعات ارائه می‌دهد: لایه داده شامل WireGuard + عبور از NAT + رله DERP، که کاملاً از لایه کنترل جدا شده است.

نحوه عملکرد tailcat

به نقل از گزارش رسمی tailscale.com، ابزار tailcat هم به صورت یک بسته زبان Go و هم یک ابزار خط فرمان (CLI) عرضه شده است. این ابزار تقریباً هر مانع سنتی برای اتصال را حذف می‌کند:

  • بدون نیاز به حساب کاربری: هیچ ورود به سیستم، رمز عبور یا الزامات SSO وجود ندارد.
  • بدون مدیریت IP: کاربران با آدرس‌های IP مصنوعی (Synthetic) سر و کار ندارند؛ سیستم مسیریابی را به صورت داخلی مدیریت می‌کند.
  • بدون نیاز به دسترسی Root: این ابزار در فضای کاربر (Userspace) اجرا می‌شود، به این معنی که نیازی به امتیازات مدیریتی سیستم‌عامل، دستگاه‌های TUN یا تغییرات در جدول مسیریابی ندارد.
  • استقلال از مرجع مرکزی: اگر کاربر سرور cmd/derper خود را میزبانی کند، این ابزار مستقل از شرکت Tailscale عمل می‌کند.
  • بدون کنترل‌های اداری: هیچ کاربر، ادمین یا قوانین فایروال مدیریت‌شده مرکزی (ACL) وجود ندارد.

لوگوی پروژه Tailcat: نسخه‌ای سبک‌تر از Tailscale بدون نیاز به نصب نرم‌افزار اصلی

مکانیسم اتصال

برای شروع یک اتصال، یک سرور tailcat یک جفت کلید تولید می‌کند که می‌تواند موقت (Ephemeral) یا نام‌گذاری شده و قابل استفاده مجدد باشد. سپس یک سرور DERP را انتخاب می‌کند؛ یا سروری که توسط کاربر مشخص شده و یا سروری که توسط Tailscale اجرا می‌شود و محدودیت پهنای باند دارد.

سرور یک «آدرس tailcat» تولید می‌کند که رشته‌ای با فرمت tc + base64(CBOR( public key + DERP bootstrap info )) است. کاربر این رشته را از طریق یک کانال خارجی (Out-of-band)، مثلاً از طریق یک رکورد DNS TXT، با کلاینت به اشتراک می‌گذارد.

سمت کلاینت فرآیند مشابهی را دنبال می‌کند:

  1. کلاینت یک کلید (موقت یا نام‌گذاری شده محلی) انتخاب می‌کند.
  2. به سرور ملاقات DERP که در رشته آدرس مشخص شده، متصل می‌شود.
  3. یک پیام «MEOW» به کلید عمومی سرور از طریق DERP ارسال می‌کند تا خود را به نقشه شبکه (Netmap) اضافه کند.

اگر سرور کلید عمومی کلاینت را بپذیرد (که می‌تواند به صورت اختیاری محدود شود)، با یک «happy MEOW» پاسخ می‌دهد. در این لحظه، کلاینت یک اتصال TCP را با استفاده از یک پشته TCP داخلی در فضای کاربر بر روی WireGuard برقرار می‌کند. اگرچه آدرس‌های IPv6 مشتق شده از کلیدهای عمومی در لایه انتقال وجود دارند، اما آن‌ها هرگز برای کاربر یا لایه TCP سیستم‌عامل قابل مشاهده نیستند.

موارد استفاده و عامل‌های هوش مصنوعی

جالب است بدانید این ابزار که ابتدا در سپتامبر ۲۰۲۳ طی یک پرواز ۱۰ ساعته به عنوان یک پروژه تفننی نوشته شد، حالا در عصر عامل‌های هوش مصنوعی (AI Agents) کاربردی حیاتی یافته است. سازندگان متوجه شدند که دادن دسترسی tailcat به عامل‌های هوش مصنوعی در محیط‌های ایزوله (Sandbox)، به آن‌ها اجازه می‌دهد ماشین‌های مجازی تودرتوی غیرقابل اعتماد و سخت‌افزارهای عجیب و غریب را در محیط‌های مختلف، بدون نیاز به فوروارد کردن دستی و خسته‌کننده پورت‌ها، به هم متصل کنند.

برخی از آزمایش‌های عملی خاص در این زمینه شامل موارد زیر بوده است:

  • مدیریت ناوگان سخت‌افزاری: دادن دسترسی به یک عامل هوش مصنوعی برای کنترل مجموعه‌ای از تمام نسل‌های Raspberry Pi.
  • پورت کردن UEFI: فراهم کردن یک نمونه EC2 ایزوله برای یک عامل تا بتواند یک نمونه EC2 دیگر را کنترل کرده و با kexec ری‌بوت کند، در حالی که همزمان Tailscale را برای اجرا در محیط UEFI مربوط به EC2 پورت می‌کند (شامل پورت کردن درایور شبکه Amazon Nitro ENA به زبان Go خالص تحت Tamago).
  • عیب‌یابی زمان اجرا (Runtime): استفاده از یک میزبان ویندوزی برای ایجاد و تخریب مکرر ماشین‌های مجازی Hyper-V به منظور رفع یک باگ فساد پشته (Stack Corruption) در Runtime زبان Go و کتابخانه استاندارد آن.

لوگوی پروژه Tailcat: نسخه‌ای متن‌باز از Tailscale بدون وابستگی به زیرساخت اختصاصی Tailscale

جایگزین‌های فنی و عملکرد

ابزار tailcat برای دستیابی به حداکثر سرعت، اتصالات مستقیم UDP WireGuard را در اولویت قرار می‌دهد. از آنجایی که از لایه داده «magicsock» شرکت Tailscale استفاده می‌کند، عبور از NAT به‌طور خودکار تلاش می‌کند تا یک اتصال مستقیم برقرار کند. اگر هر دو طرف پشت یک «NAT سخت» (Hard NAT) بدون سرویس‌های نگاشت پورت باشند، ابزار به طور خودکار به رله کردن داده‌ها از طریق سرورهای DERP باز می‌گردد.

عملکرد و هزینه بسته به پیکربندی DERP متفاوت است:

  • DERPهای میزبانی شده توسط Tailscale: این سرورها دارای محدودیت نرخ (Rate-limited) هستند زیرا هزینه پهنای باند بر عهده شرکت است.
  • DERPهای میزبانی شده توسط کاربر: کاربران می‌توانند ناوگان DERP متن‌باز خود را اجرا کنند تا محدودیت‌های نرخ را کنترل کرده و از کاهش سرعت جلوگیری کنند.

در حالت پیش‌فرض، tailcat داده‌های دریافتی را به stdout می‌فرستد که دقیقاً شبیه رفتار ابزار کلاسیک netcat است. همچنین می‌تواند در حالت کلاینت اجرا شود و یک سرور SOCKS را روی یک پورت محلی موقت میزبانی کند. با تنظیم یک متغیر محیطی (Environment Variable)، برنامه‌هایی که از tailcat بی‌اطلاع هستند (مانند curl) می‌توانند به طور شفاف از این اتصال استفاده کنند.

تغییر استراتژیک

با متن‌باز کردن tailcat، شرکت Tailscale در واقع در حال «کالایی کردن» (Commoditizing) لایه داده خود است. این اقدام جامعه گسترده‌تری را تشویق می‌کند تا کد هسته شبکه را بهبود بخشند و باگ‌های لایه داده را گزارش کنند، که در نهایت منجر به تقویت محصول اصلی Tailscale می‌شود. این حرکت اعترافی است به این حقیقت که برخی کاربران صرفاً «لوله‌کشی» WireGuard و عبور از NAT را می‌خواهند، بدون اینکه نیازی به «مدیریت» یک VPN شرکتی داشته باشند.

این ابزار پاسخی است به درخواستی که از زمان عرضه Taildrop در سال ۲۰۲۱ وجود داشت: نیاز به اشتراک‌گذاری شبیه به netcat بین گره‌ها. برای کاربر نهایی، این به معنای کاهش شدید زمانی است که برای انتقال یک فایل یا فوروارد کردن یک پورت بین دو ماشین مجزا صرف می‌شود. این ابزار یک کار خسته‌کننده ۱۵ دقیقه‌ای شبکه را به یک تبادل چند ثانیه‌ای از یک رشته اتصال تبدیل می‌کند.

اگر شما ماشین‌های مجازی موقت در کلاود یا محیط‌های غیرقابل اعتماد را مدیریت می‌کنید، اکنون می‌توانید تونل‌های امنی ایجاد کنید بدون اینکه حتی یک جدول مسیریابی یا قانون فایروال را لمس کنید. شرکت Tailscale از کاربرانی که موارد استفاده تخصصی دارند — مانند اینترنت اشیا (IoT)، بازی‌های P2P یا خوشه‌های GPU توزیع‌شده — دعوت کرده است تا برای کمک در زمینه ادغام یا استفاده از ناوگان جهانی رله‌های DERP با آن‌ها ارتباط برقرار کنند.

گام بعدی شما

  • اگر با ماشین‌های مجازی موقت در کلاود سروکار دارید، tailcat را برای ایجاد تونل‌های سریع بدون تغییر در فایروال امتحان کنید.
  • برای پروژه‌های IoT یا خوشه‌های GPU توزیع‌شده، بررسی کنید که میزبانی شخصی سرور DERP هزینه‌های شما را کاهش می‌دهد یا خیر.
  • مستندات Go package این ابزار را برای ادغام در ابزارهای اتوماسیون شبکه خود بررسی کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این ابزار با حذف نیاز به مدیریت مرکزی، سرعت ایجاد تونل‌های امن را از ۱۵ دقیقه به چند ثانیه می‌رساند. این تغییر بر اساس تجربه عملی در مدیریت محیط‌های ایزوله، بهره‌وری مهندسان DevOps و توسعه‌دهندگان AI را به‌شدت افزایش می‌دهد.

تأثیر برای ایران

به دلیل متن‌باز بودن tailcat و عدم نیاز به حساب کاربری یا احراز هویت مرکزی، این ابزار برای توسعه‌دهندگان ایرانی که با محدودیت‌های تحریمی در سرویس‌های VPN مواجه‌اند، راهکاری ایده‌آل برای ایجاد ارتباطات امن P2P است.

·نگاه ما
تحریریه دات‌هوش

جدا کردن لایه داده از لایه کنترل در tailcat نشان می‌دهد که Tailscale در حال تبدیل شدن از یک «سرویس VPN» به یک «استاندارد زیرساختی» برای ارتباطات P2P است. این رویکرد احتمالاً برای جذب توسعه‌دهندگانی است که از پیچیدگی‌های سازمانی گریزانند اما به قدرت WireGuard نیاز دارند. در واقع، این ابزار مسیر را برای ایجاد شبکه‌های مشی (Mesh) خودکار در محیط‌های عامل‌محور هموار می‌کند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.