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

پیش از تغییر یک گزیننده، جریان را دنبال کنید

از درخواست ناموفق شروع کنید و چهار مقدار بنویسید: نشانی مبدأ که دستگاه استفاده می‌کند، مقصد دقیق، مسیری که هسته انتخاب می‌کند و سیاستی که با این جفت منطبق است.

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

این کار را پیش از ویرایش هر چیزی انجام دهید، چون حالت جالب زیرشبکه محلی است که با محدوده خصوصی محافظت‌شده توسط اتصال هم‌پوشانی دارد. پیشوندهای آشنا مانند 192.168.0.0/16 در شبکه‌های زیادی دیده می‌شوند، و گزیننده‌ای که برای یکی از آن‌ها نوشته شده می‌تواند بی‌صدا مال شما را بپوشاند.

سه نوع محلی که رفتار متفاوتی دارند

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

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

عادت مفید این است که حالت را با صدای بلند نام ببرید: آیا این بسته از من می‌آید، به پیوند من می‌رود یا از من عبور می‌کند؟ هر پاسخ به جای متفاوتی برای محدود کردن اشاره می‌کند. نوشتن حالت همچنین مانع می‌شود نفر بعد همان کار را دوباره انجام دهد.

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

سیاست نصب‌شده را بخوانید، نه پرونده را

پرونده‌های پیکربندی نیت را توصیف می‌کنند؛ هسته سیاست‌هایی را نگه می‌دارد که واقعاً منطبق‌اند. هر دو را نشان دهید و ناسازگاری را نخستین یافته بدانید.

این فرمان‌ها مسیر انتخاب‌شده برای مقصد و سیاست‌های نصب‌شده در هر جهت را نشان می‌دهند:

ip route get 192.168.50.20
ip xfrm policy list
sudo swanctl --list-conns

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

گزیننده را محدود کنید یا مقصد را دور بزنید

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

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

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

استثناهای مقاوم در برابر نصب مجدد

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

این دو بررسی تأیید می‌کنند که استثنا زنده ماند و محافظت نه:

ip xfrm policy list | grep -c out
ping -c 3 192.168.50.20

سپس تونل را عمداً قطع و دوباره وصل کنید، و هر دو را تکرار کنید. استثنایی که پیش از اتصال مجدد کار می‌کند و پس از آن شکست می‌خورد روی لایه اشتباه اعمال شده، و این رایج‌ترین راه بازگشت این مشکل است.

مقالات مرتبط