ZeroTier وضعیت ONLINE را نشان میدهد اما ACCESS_DENIED: کجا اصلاحش کنیم؟
ONLINE تماس با زیرساخت ریشه را توصیف میکند؛ ACCESS_DENIED عضویت در یک شبکه را. اصلاح در سمت کنترلر است.
ZeroTier در سطح سرویس ONLINE و در سطح شبکه ACCESS_DENIED گزارش میکند و این دو تناقض نیستند. اولی گزارهای دربارهٔ مسیر میان کارخواه شما و زیرساخت هماهنگی است. دومی گزارهای دربارهٔ فهرست اعضای یک شبکه است. آنها را جدا بخوانید و ترکیبشان دقیقاً میگوید کجا را ببینید.
ONLINE چه چیزی را میسنجد
فرمان وضعیت گزارش میکند که آیا سرویس محلی مسیر کاری به سرورهای ریشه دارد که کشف همتاها را هماهنگ میکنند. دربارهٔ هیچ شبکهٔ مشخصی چیزی نمیگوید و دربارهٔ این هم چیزی نمیگوید که آیا کنترلری این دستگاه را تأیید کرده است. از این رو نصب تازه روی اتصال کاری بیدرنگ ONLINE گزارش میکند، پیش از آنکه کسی جایی مجازش کرده باشد.
ONLINE را گزارهای دربارهٔ لولهکشی بدانید و وضعیت هر شبکه را گزارهای دربارهٔ عضویت. استفاده از یکی برای توضیح دیگری جایی است که بیشتر این سردرگمی آغاز میشود.
ACCESS_DENIED از شما چه میخواهد
در شبکهٔ خصوصی کنترلر فهرست اعضا را نگه میدارد. گرهای که در آن فهرست نیست، یا در فهرست هست ولی مجاز نشده، ACCESS_DENIED میگیرد و پیکربندیای فراتر از دستدادن پایه دریافت نمیکند. اصلاح در سمت کنترلر است و به نشانی گره نیاز دارد نه نام ماشین، پس نشانی را در خروجی کارخواه با مدخل عضو تطبیق دهید و همان مدخل را مجاز کنید.
نصب دوبارهٔ کارخواه نخستین گام نادرست است، چون نصب تازه هویت تازهای میآورد و مجوز قدیمی دیگر بر آن اعمال نمیشود. اگر شبکه عمومی باشد، همان وضعیت به شرط دیگری اشاره میکند، پس پیش از درخواست تأیید از مالک کنترلر بپرسید که شبکه خصوصی است یا نه. همین یک پرسش بقیهٔ گفتگو را تعیین میکند.
متن وضعیت یک شاخه است، نه حکم
هر وضعیت بررسی بعدی را باریکتر میکند و خواندنشان بهعنوان یک پیام خطای واحد چیزی است که اصلاح دو دقیقهای را به یک بعدازظهر کامل نصب دوباره تبدیل میکند. NOT_FOUND یعنی شناسهای که نوشتید در آن کنترلر وجود ندارد، پس پرسش عضویت هنوز مطرح نشده است. REQUESTING_CONFIGURATION یعنی گره به کنترلر رسیده و منتظر پیکربندیای است که نمیرسد، و این به مسیر اشاره میکند نه به مجوز. OK یعنی عضویت و پیکربندی برقرارند، پس پرسش بعدی نشانی تخصیصیافته است و سپس خود سرویس.
دو فرمان همهٔ اینها را جدا میکند و هر دو یک کارخواه را میخوانند. مرجع ZeroTier CLI رشتههای وضعیت هر شبکه را که برمیگردانند فهرست میکند. فرمان نخست نمای سرویس است و دومی برای هر شبکه:
zerotier-cli status
zerotier-cli listnetworks
وقتی از مدیر کمک میخواهید متن وضعیت را نگه دارید. فرمان پیوستن محلی که تأییدی چاپ کرده فقط ثابت میکند درخواست بهصورت محلی پذیرفته شده، که واقعیتی متفاوت از پذیرفتهشدن در شبکه است.
عضویت به یک هویت تعلق دارد
این فایلهای هویت کارخواه هستند که کنترلر میشناسد، پس کپی کردن پیکربندی به ماشین دیگر یا پاک کردن هویت در هنگام نصب دوباره عضوی میسازد که کنترلر هرگز ندیده است. به همین دلیل هم حذف یک رکورد عضو با لغو مجوز آن تفاوت دارد. گرهٔ مجاز که هنوز در حال اجراست به تلاش ادامه میدهد، و رکوردی که بهجای لغو شدن حذف شده میتواند بهصورت درخواستی تازه از همان نشانی بازگردد.
وقتی دستگاهی را از رده خارج میکنید، نخست مجوزش را لغو کنید و پیش از برداشتن هر چیزی تأیید کنید که مدخل همان وضعیت را بازمیتاباند. ترتیب، تفاوت میان برداشتن پاکیزه و پیوستن دوبارهٔ مرموز است.
پس از تغییر بررسی کنید
مدخل شبکه را دوباره بخوانید نه فرمانی را که تغییر را انجام داد. چهار پرسش نتیجه را میپوشاند و هر یک از آنها میتواند نادرست باشد در حالی که بقیه درست به نظر میرسند:
zerotier-cli listnetworks
ip -br addr show
ping -c 2 10.147.20.5
ip route get 10.147.20.5
نخستین، عضویت و نشانی تخصیصیافتهٔ هر شبکه را چاپ میکند و دومی نشان میدهد که آیا رابطی آن نشانی را واقعاً گرفته است. دو مورد آخر ثابت میکنند که همتایی در شبکه پاسخ میدهد و کدام رابط ترافیک را حمل میکند. یادداشت کنید کدام فرمان به کدام پرسش پاسخ داد، تا نفر بعد از شواهد شروع کند نه از حافظه.
اگر عضویت OK است و نشانی هست اما همتاها پاسخ نمیدهند، مشکل به مسیریابی یا به سیاست خود همتا منتقل شده است. متن وضعیت را از آن گفتگو بیرون بگذارید، چون کارش را انجام داده است. رکورد عضویت و مسیر موضوعهای جداگانهاند و هرچه زودتر جدا شوند، بررسی کوتاهتر میشود.