ZEROTIER-ONE(8) ZEROTIER-ONE(8)

zerotier-one - سرویس نقطه پایانی شبکه مجازی ZeroTier

zerotier-one [-switches] [working directory]

سرویس zerotier-one دیمن مسئول اتصال سیستم یونیکس (لینوکس/BSD/OSX) به یک یا چند شبکه مجازی ZeroTier و ارائه آن شبکه‌ها به عنوان درگاه‌های شبکه مجازی به سیستم است. می‌توان آن را به عنوان یک کلاینت همتا‌به‌همتا (P2P) برای VPN در نظر گرفت.

این سرویس معمولاً توسط سیستم‌های راه‌اندازی مانند systemd (در لینوکس) یا launchd (در مک) اجرا می‌شود نه مستقیماً توسط کاربر، و باید با دسترسی ریشه (root) اجرا شود مگر این‌که گزینه -U به آن داده شود و قصد پیوستن واقعی به شبکه‌ها را نداشته باشید (مانند اجرای تنها یک ریزسرویس کنترلر شبکه).

سرویس zerotier-one وضعیت و فایل‌های دیگر خود را در یک پوشه کاری (working directory) نگهداری می‌کند. اگر این پوشه در هنگام راه‌اندازی مشخص نشود، به صورت پیش‌فرض در لینوکس "/var/lib/zerotier-one"، در مک "/Library/Application Support/ZeroTier/One" و در FreeBSD و مشتقات مشابه آن "/var/db/zerotier-one" خواهد بود. پوشه کاری باید ماندگار باشد و نباید به طور خودکار توسط دیمن‌های پاکسازی سیستم حذف شود یا در مکانی موقتی قرار گیرد. از دست دادن فایل identity.secret منجر به از دست رفتن آدرس ۱۰ رقمی یکتا و کلید ZeroTier این سیستم خواهد شد.

می‌توان چندین نمونه از zerotier-one را روی یک سیستم اجرا کرد، به شرطی که با درگاه‌های اصلی متفاوت (بخش سوییچ‌ها را ببینید) و پوشه کاری مجزا اجرا شوند. اما از آنجا که یک سرویس واحد می‌تواند به هر تعداد شبکه بپیوندد، معمولاً نیازی به این کار نیست.

سرویس zerotier-one از طریق یک رابط JSON API در آدرس 127.0.0.1:<درگاه اصلی> با درگاه پیش‌فرض 9993 کنترل می‌شود. دسترسی به این API نیازمند توکن احراز هویت است که به طور معمول در فایل authtoken.secret درون پوشه کاری سرویس قرار دارد. در برخی پلتفرم‌ها دسترسی ممکن است با معیارهای دیگری مانند بررسی UID/GID سوکت محافظت شود در صورتی که گزینه‌های امنیتی اضافی فعال باشند (این حالت پیش‌فرض نیست).

اولین باری که سرویس در یک پوشه کاری تازه اجرا می‌شود، یک شناسه ZeroTier تولید می‌کند. در سیستم‌های کند این فرآیند ممکن است ده ثانیه یا بیشتر به دلیل تابع اثبات کار (proof of work) ضد جعل و ضد DDOS استفاده شده توسط ZeroTier در تولید آدرس طول بکشد. این فرآیند فقط یک بار رخ می‌دهد و پس از تولید، نتیجه در فایل identity.secret درون پوشه کاری ذخیره می‌شود. این فایل نمایانگر و تعریف‌کننده آدرس ZeroTier شما و جفت کلید متناظر ECC-256 است.

  • -h: نمایش پیام راهنما.
  • -v: نمایش نسخه ZeroTier One.
  • -U: صرف‌نظر از بررسی دسترسی‌ها و اجازه اجرا توسط کاربر غیر ریشه. این گزینه معمولاً زمانی استفاده می‌شود که zerotier-one همراه با قابلیت کنترلر شبکه ساخته شده باشد. در این حالت، سرویس ممکن است فقط به عنوان کنترلر شبکه عمل کرده و هرگز به شبکه‌ای ملحق نشود که در این صورت نیازی به دسترسی‌های ارشد ندارد.
  • -p<port>: تعیین یک درگاه اصلی متفاوت. در صورت عدم تعیین، درگاه پیش‌فرض 9993 است. در صورت مشخص کردن صفر، در هر بار اجرا یک درگاه تصادفی انتخاب می‌شود.
  • -d: انشعاب (fork) و اجرا به صورت دیمن پس‌زمینه.
  • -i: فراخوانی در نقش zerotier-idtool، که در این صورت باینری رفتاری مانند zerotier-idtool(1) خواهد داشت. این اتفاق در صورتی که نام فایل باینری (یا پیوند نمادین به آن) zerotier-idtool باشد، خودکار رخ می‌دهد.
  • -q: فراخوانی در نقش zerotier-cli، که در این صورت باینری رفتاری مانند zerotier-cli(1) خواهد داشت. این اتفاق در صورتی که نام فایل باینری (یا پیوند نمادین به آن) zerotier-cli باشد، خودکار رخ می‌دهد.

اجرا به صورت دیمن با پوشه کاری پیش‌فرض سیستم‌عامل و درگاه پیش‌فرض:

$ sudo zerotier-one -d

اجرا به صورت دیمن با پوشه کاری و درگاه متفاوت:

$ sudo zerotier-one -d -p12345 /tmp/zerotier-working-directory-test

این فایل‌ها در پوشه کاری سرویس قرار دارند.

  • identity.public: بخش عمومی شناسه ZeroTier شما، شامل آدرس هگز ۱۰ رقمی و کلید عمومی متناظر آن.
  • identity.secret: شناسه کامل ZeroTier شما شامل کلید خصوصی آن. این فایل هویت سیستم را در شبکه تعیین می‌کند، بدین معنا که می‌توانید با کپی کردن این فایل، آدرس ZeroTier را منتقل کنید و در صورتی که تمایل به حفظ آدرس ایستا دارید، باید از این فایل پشتیبان تهیه نمایید. این فایل باید به شدت محافظت شود، چرا که سرقت کلید خصوصی به هر کسی امکان جعل هویت دستگاه در شبکه و رمزگشایی ترافیک را می‌دهد. برای کنترلرهای شبکه، این فایل بسیار حساس است زیرا نقش کلید خصوصی مرجع صدور گواهی (CA) شبکه‌های کنترلر را دارد.
  • authtoken.secret: توکن محرمانه مورد استفاده جهت احراز هویت درخواست‌ها به JSON API محلی سرویس. در صورت عدم وجود، هنگام راه‌اندازی از یک منبع امن تصادفی ایجاد می‌شود. برای استفاده، آن را در سرآیند "X-ZT1-Auth" همراه با درخواست‌های HTTP به 127.0.0.1:<درگاه اصلی> ارسال کنید.
  • devicemap: نگاشت شماره‌های رابط zt# به شبکه‌های ZeroTier را ذخیره می‌کند تا پس از راه‌اندازی مجدد حفظ شوند. در برخی سیستم‌ها که از نام‌های طولانی‌تر رابط پشتیبانی می‌کنند (مانند FreeBSD) ممکن است این فایل وجود نداشته باشد.
  • zerotier-one.pid: شناسه فرایند (PID) سرویس ZeroTier. این فایل در هنگام خاموش شدن عادی برنامه حذف می‌شود.
  • zerotier-one.port: درگاه اصلی ZeroTier، که نشانی JSON API در 127.0.0.1:<این درگاه> نیز است. این فایل هنگام شروع ایجاد شده و توسط zerotier-cli(1) برای یافتن API خوانده می‌شود.
  • controller.db: اگر سرویس ZeroTier One با قابلیت فعال کنترلر شبکه ساخته شده باشد، این فایل شامل پایگاه‌داده SQLite3 کنترلر خواهد بود.
  • controller.db.backup: اگر سرویس ZeroTier One به عنوان کنترلر شبکه فعال باشد، به صورت دوره‌ای از دیتابیس controller.db در این فایل نسخه پشتیبان تهیه می‌کند (در حال حاضر هر ۵ دقیقه در صورت وجود تغییرات). از آنجا که این فایل مستقیماً تحت استفاده فعال SQLite3 نیست، نسخه پشتیبان بدون احتمال خرابی خواهد بود. در نسخه‌های پشتیبان جدید، فایل جایگزین چرخشی می‌شود نه بازنویسی درجا.
  • iddb.d/ (پوشه): شناسه عمومی تمام همتاهایی را که ZeroTier در ۶۰ روز گذشته با آن‌ها ارتباط داشته کش می‌کند. این پوشه و محتویات آن قابل حذف است، اما ممکن است باعث کندی اتصال اولیه شود زیرا باید هویت‌های کامل همتاها مجدداً دریافت شوند.
  • networks.d (پوشه): پیکربندی‌ها و اطلاعات گواهی شبکه‌هایی که به آن تعلق دارید را کش می‌کند. سرویس در هنگام راه‌اندازی این پوشه را برای یافتن فایل‌های <شناسه شبکه>.conf جهت بازیابی شبکه‌ها اسکن می‌کند، بنابراین ایجاد یک فایل خالی <شناسه شبکه>.conf در این پوشه روشی برای پیکربندی پیشاپیش جهت اتصال در راه‌اندازی بدون استفاده از API است. اگر فایل پیکربندی خالی باشد، ZeroTier آن را از کنترلر شبکه دریافت خواهد کرد.

(c)2011-2016 ZeroTier, Inc. -- https://www.zerotier.com -- https://github.com/zerotier

zerotier-cli(1), zerotier-idtool(1)

December 2016