یک میزبان Tailscale در دسترس نیست: روتر زیرشبکه یا گره خروج؟
اول مقصد گمشده را مرتب کن: یک NAS خصوصی به زیرشبکه اعلامشده نیاز دارد، در حالی که مرور عمومی به گره خروج نیاز دارد.
یک میزبان Tailscale پاسخ میدهد در حالی که دیگری تاریک میماند، یا همه چیز کار میکند تا وقتی که وبسایتهای عمومی شروع کنند به گزارش کشور اشتباه. هر دو شکایت به شکل «Tailscale خراب است» میرسند، و هر دو معمولاً همان سازه اشتباه است که برای مقصد اشتباه فعال شده. روتر زیرشبکه یک شبکه خصوصی را به tailnet عرضه میکند، در حالی که گره خروج جایی را که ترافیک اینترنت از آن خارج میشود تغییر میدهد. اول مقصدی را که کار نمیکند مرتب کن، بعد نقشی را انتخاب کن که آن را پوشش میدهد.
از مقصدی که شکست خورد شروع کن
آدرس یا نامی را که کار نکرد و اینکه چه نوع چیزی است بنویس. دستگاهی روی یک LAN خصوصی پشت یک سایت دیگر، سرویسی روی سگمنت خودت، و یک وبسایت عمومی سه مشکل مسیریابی هستند که تصادفاً یک کلاینت را شریکاند. تمایز ظاهری نیست، چون دو سازه مجموعههای متفاوتی از مقصدها را پوشش میدهند. فعال کردن یکی برای دیگری هیچ کاری نمیکند، و تمام منبع سردرگمی همین است.
به خانواده آدرس هم توجه کن. زیرشبکهای که فقط بهصورت IPv4 اعلام میشود مقصدهای IPv6 را روی مسیر محلی میگذارد، که تا وقتی کسی هر دو جدول مسیریابی را مقایسه نکند شکستی جزئی خوانده میشود. بنویس انتظار داشتی مسیر چه باشد، تا بعداً آزمون چیزی برای رد کردن داشته باشد.
به دستگاهی برس که هرگز Tailscale اجرا نمیکند
روتر محدودههای مشخصی را به tailnet اعلام میکند، سپس بستهها را بین tailnet و سگمنت خصوصی رله میکند، پس دستگاههای آن سگمنت به کلاینت خودشان نیازی ندارند. رسیدن به یک NAS در دفتر از یک لپتاپ در خانه دقیقاً همین حالت است. روتر تنها عضو tailnet در آن سمت است.
tailscale up --advertise-routes=10.40.0.0/24 --advertise-exit-node=false
ip route get 10.40.0.55
tailscale status
اعلام تنها اولین شرط از سه شرط است. مسیر باید برای tailnet تأیید شود، کلاینت باید مسیرهای اعلامشده را بپذیرد، و یک قاعده دسترسی باید اتصال را مجاز کند. همین زنجیره دلیل آن است که نشانه اغلب این است که روتر بالا است و NAS نیست. روتر در دسترس ثابت میکند تونل کار میکند؛ هیچ چیز درباره تأیید، پذیرش کلاینت یا سیاست ثابت نمیکند.
هر یک از آن سه شکست در کنسول مدیریت متفاوت دیده میشود. به ترتیب بررسیشان کن، نه اینکه هر سه را یکجا تغییر دهی، چون تغییر دوم پنهان میکند کدام مهم بود.
ترافیک عمومی را از ماشین دیگری خارج کن
گره خروج ترافیک عمومی اینترنت تو را از خودش عبور میدهد، که نزدیکترین معادل چیدمان تونل کامل در محصولات VPN دیگر است. آن هم سه رضایت جداگانه میخواهد: دستگاه نقش را اعلام میکند، مدیر آن را مجاز میکند و کلاینت آن را انتخاب میکند. پیوستن به یک tailnet بهطور پیشفرض چیزی را از عضو دیگر عبور نمیدهد.
tailscale up --advertise-exit-node
tailscale up --exit-node=100.101.102.103 --exit-node-allow-lan-access=false
tailscale status --json | grep -i exitnode
انتخاب گره خروج بهطور خودکار به LAN خود آن گره دسترسی نمیدهد. گزینه دسترسی به LAN دقیقاً به این دلیل وجود دارد که اینها مجوزهای متفاوتی هستند، و خاموش گذاشتنش پیشفرض امنتری است. مسیرها به دیگر منابع Tailscale حتی وقتی گره خروج فعال است مدیریت خودشان را نگه میدارند. به همین دلیل سرویسی که روی زیرشبکه میزبانی میشود میتواند کار کند در حالی که مسیر عمومی اینترنت تغییر کرده است.
گره خروج همچنین تغییر میدهد که اینترنت تو را چگونه میبیند، نه فقط اینکه چقدر سریع حس میشود. انتظار داشته باش موقعیت جغرافیایی، کاتالوگهای پخش و محدودیتهای نرخ از آدرس خروج پیروی کنند نه از آدرس تو.
تقسیم سهطرفه را بخوان وقتی فقط یک میزبان شکست میخورد
چاپگری روی سگمنت خودت، NAS پشت یک روتر زیرشبکه دوردست، و یک سایت عمومی سه مقصد با سه مسیر متفاوت هستند. اگر دقیقاً یکی از آنها شکست بخورد، نقص متعلق به مسیر همان مقصد است نه کل کلاینت. برای چاپگر محلی وقتی گره خروج در حال استفاده است، تنظیم دسترسی به LAN پاسخ معمول است. برای NAS دوردست، محدوده اعلامشده، وضعیت تأیید آن و قواعد دسترسی را به همین ترتیب بررسی کن. برای یک سایت عمومی، بررسی کن کدام گره خروج انتخاب شده و آیا کلاینت واقعاً آن را پذیرفته است.
اگر آدرس کار میکند و نام نه، از نگاه کردن به مسیرها دست بردار. DNS خصوصی جداگانه پیکربندی میشود، و نامی که به آدرس اشتباه حل شود به شکلی شکست میخورد که با مسیر مسدود یکسان به نظر میرسد. اول آدرس را آزمون کن، بعد نام را، و دو نتیجه میگویند کدام لایه را باز کنی.
مسیری را که فکر میکنی ساختهای تأیید کن
بررسی، جستوجوی مسیر بهعلاوه یک کنترل آدرس است، نه ping. جستوجو میگوید مقصد از کدام رابط استفاده میکرد، و کنترل آدرس میگوید مقصد واقعاً در کدام محدوده زندگی میکند. ping ای که موفق میشود میگوید میزبان جایی زنده است، که پرسش نیست. هر دو را قبل از تغییر هر پیکربندی اجرا کن.
ip route get 10.40.0.55
ip -6 route show default
tailscale ping 10.40.0.55
آن را با دید خود tailnet جفت کن، که نشان میدهد همتا مستقیماً متصل است یا از طریق رله. مسیر رلهای هم کار میکند، و همین شکایتهای تأخیر را توضیح میدهد که هیچ ربطی به مسیری که اشکالزدایی میکردی ندارند. مستندات روتر زیرشبکه اگر ناآشناست، مرحله تأیید را پوشش میدهد. بعد بنویس کدام سازه کدام مقصد را در شبکه خودت پوشش میدهد، چون نفر بعدی که سایتی اضافه میکند همین پرسش را خواهد پرسید.