در هر گفت‌وگو درباره ZeroTier دو شناسه پدیدار می‌شود و آن‌قدر شبیه‌اند که در پنجره چت اشتباه گرفته شوند. شناسه گره یک دستگاه را نام می‌برد. شناسه شبکه شبکه مجازی‌ای را نام می‌برد که آن دستگاه می‌خواهد به آن بپیوندد. پیوستن شناسه دوم را می‌خواهد و مجاز کردن عضو شناسه اول را.

دو شناسه، دو کار

هویت گره وقتی سرویس نخستین بار روی ماشینی اجرا می‌شود ساخته می‌شود و نشانی هگزادسیمال ده‌کاراکتری است. تا زمانی که پرونده‌های هویت حذف نشوند با همان نصب می‌ماند، از همین رو نصب دوباره می‌تواند عضوی تازه بسازد که هیچ‌کس تأییدش نکرده است. شناسه شبکه شانزده کاراکتر هگزادسیمال است و یک شبکه مجازی را مشخص می‌کند، نه یک ماشین. کنترلری که مالک شبکه است خودش یک گره است، از همین رو ده کاراکتر نخست شناسه شبکه با نشانی کنترلر یکی است.

هیچ‌یک از دو مقدار راز نیست و هیچ‌یک جایگزین دیگری نمی‌شود. به اشتراک گذاشتن شناسه شبکه با همه مشارکت‌کنندگان عادی است؛ به اشتراک گذاشتن شناسه گره یک دستگاه را به کنترلر معرفی می‌کند.

هر مقدار را از فرمانی بخوانید که آن را گزارش می‌کند

یک فرمان هویت سرویس محلی را گزارش می‌کند و فرمانی دیگر شبکه‌هایی را که به آن‌ها پیوسته است. پرسیدن یک مقدار از فرمان اشتباه همان راهی است که مردم سرانجام شناسه شبکه را در فهرست اعضا می‌چسبانند.

zerotier-cli info
zerotier-cli status
zerotier-cli listnetworks

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

با شبکه بپیوندید، با گره مجاز کنید

فرمان پیوستن شناسه شبکه‌ای را می‌گیرد که هر کس کنترلر را اداره می‌کند فراهم می‌کند. پاسخ مثبت فرمان یعنی درخواست فرستاده شده است، نه اینکه عضویت در یک شبکه خصوصی داده شده باشد.

پس از پیوستن، مدیر دستگاه را با شناسه گره‌اش در فهرست اعضای آن شبکه مجاز می‌کند. دیگر به شناسه شبکه نیاز ندارد و نمی‌تواند دستگاهی را با نام میزبان مجاز کند، چون هویت همان نشانی است. اگر مدیر هستید فهرست اعضا را بخوانید و نشانی گره را با درخواست بسنجید. درخواستی که شبکه را نام ببرد اما نشانی گره را نداشته باشد اجراشدنی نیست.

پیشوند مشترک دلیلی دارد

از آنجا که شناسه شبکه با نشانی گره کنترلر آغاز می‌شود، همان ده کاراکتر در هر دو جا دیده می‌شود. این تسهیلی برای مسیریابی است، نه نشانه‌ای بر اینکه دو مقدار قابل جابه‌جایی‌اند.

همچنین توضیح می‌دهد چرا هویت یک کنترلر مهم‌تر از نام نمایشی آن است. بازگرداندن کنترلر با هویتی تازه فضای نشانی دیگری می‌سازد، پس شبکه‌هایی که زیر هویت کهنه تعریف شده‌اند همان شبکه‌ها نیستند حتی اگر نام‌ها دوباره به کار روند.

هویت کنترلر را همراه با پیکربندی‌اش در نسخه پشتیبان نگه دارید. برخورد با این هویت همچون برچسبی که می‌توان دوباره ساخت، بازگردانی را به بازطراحی تبدیل می‌کند.

نتیجه را بررسی کنید، نه خروجی فرمان را

پیوستن موفق آغاز بررسی است، نه پایان آن. پس از آن به مدخل شبکه نگاه کنید و سه میدان را بخوانید: وضعیت، نشانی تخصیص‌یافته و شناسه شبکه.

zerotier-cli listnetworks -j
ip -br addr show | grep zt
ping -c 2 10.147.20.5

فرمان نخست همان فهرست را در قالبی قابل تجزیه چاپ می‌کند که مقایسه با انتظار مدیر را آسان‌تر می‌کند. دومی تأیید می‌کند که واسط نشانی گرفته است و سومی همتایی در شبکه را می‌آزماید، نه وضعیت محلی را.

اگر مدخل بگوید ACCESS_DENIED، شناسه گره مجاز نیست. اگر بگوید NOT_FOUND، شناسه شبکه نادرست است. اگر بگوید OK بدون نشانی، تخصیص نشانی کنترلر پرسش بعدی است و هیچ‌یک از آن سه با پیوستن دوباره پاسخ داده نمی‌شود.

مقالات مرتبط