حلقه مسیر پیشفرض WireGuard: مسیر نقطه پایانی را پیدا کنید
مسیر پیشفرض بستههای رمزنگاریشده خود تونل را دوباره به داخل آن میفرستد. مسیر نقطه پایانی را بخوانید، یک مسیر میزبان اضافه کنید، سپس بررسی و بازگردانی کنید.
رابط بالا میآید، پیکربندی همتا درست به نظر میرسد و هیچ دستدهی هرگز کامل نمیشود. افزودن یک مسیر پیشفرض از طریق تونل همان گامی است که اغلب این را ایجاد میکند: همان جدول مسیریابی اکنون تعیین میکند بستههای رمزنگاریشده خود تونل کجا باید بروند و پاسخی که تولید میکند دوباره به داخل تونل برمیگردد. هیچ چیز نمیتواند بسته بیرونی را که بسته درونی را حمل میکرد حمل کند، بنابراین اتصال پیش از شروع متوقف میشود. تعمیر کوچک است، اما ترتیبی دارد و بررسی مهمتر از ویرایش است.
پیش از تغییر مسیر، حلقه را تأیید کنید
آدرس فعلی نقطه پایانی همتا را بخوانید و سپس از پشته مسیریابی بپرسید بستهای به آن آدرس کجا میرود. اگر پاسخ رابط تونل را نام ببرد، حلقه تأیید شده و تشخیص بیشتری لازم نیست. هر دو خروجی را پیش از دست زدن به چیزی در سابقه تغییر ذخیره کنید، زیرا مقایسه پس از تعمیر همان دو فرمان است. حلقه پس از دیده شدن ظریف نیست؛ دشواری این است که رابط هنگام رخ دادن سالم به نظر میرسد.
sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show
قواعد سیاست را در آن ثبت بگنجانید. مسیر پیشفرضی که در جدول اصلی درست به نظر میرسد هنوز میتواند به قاعدهای که جدول دیگری را برای ترافیک علامتخورده یا بدون علامت انتخاب میکند ببازد و حلقه با جدولی از مسیرها که سالم به نظر میرسد دوباره ظاهر میشود.
مسیر نقطه پایانی را بخوانید، نه مسیر تونل را
مسیر نقطه پایانی همان مسیری است که دادهگرامهای رمزنگاریشده تا آدرس عمومی همتا طی میکنند و باید تا زمانی که تونل وجود دارد بیرون از تونل بماند. مسیر تونل هر چیزی است که همتا اجازه حمل آن را دارد. این دو مسیر یک جدول مسیریابی را شریکاند و دقیقاً به همین دلیل یک ورودی همهگیر میتواند آنها را در یکدیگر فرو ببرد. جدا کردن ترافیک تونل از انتقال خود تونل کل مسئله طراحی است و هر ابزار پشتیبانیشده آن را جایی کمی متفاوت حل میکند.
اگر رابط هر دو را حمل میکند، هر دو خانواده آدرس را جداگانه بررسی کنید. استثنای کارکننده IPv4 چیزی درباره دسترسپذیری نقطه پایانی IPv6 نمیگوید و پیکربندی مختلط ممکن است تا زمانی که آدرس IPv6 همتا انتخاب شود کارکننده به نظر برسد.
مسیر نقطه پایانی را با یک تغییر منسجم بازگردانید
دو رویکرد پشتیبانیشده وجود دارد و مخلوط کردن آنها همان چیزی است که یک راهاندازی کارکننده را غیرقابل پیشبینی میکند. اولی این است که ابزاری که مالک رابط است کل تونل را مدیریت کند: wg-quick مدیریت اختصاصی برای محدوده همتای پیشفرض دارد که یک جدول جداگانه، قواعد سیاست و یک نشان سوکت نصب میکند، که بستههای بیرونی را بیرون از تونل نگه میدارد. آن سازوکار را دستنخورده بگذارید به جای اینکه نیمی از آن را دستی بازتولید کنید. راهاندازیای که مسیر پیشفرض دستی را با مدیریتکنندهای که از قبل نشانها و قواعد را نصب میکند مخلوط کند، پس از اتصال دوباره مستعد شکست است، زمانی که مدیریتکننده وضعیتی را بازنویسی میکند که گام دستی فرض کرده بود.
دومی طراحی دستی است که در آن نقطه پایانی یک مسیر میزبان صریح از طریق دروازه فیزیکی میگیرد. آن مسیر را پیش از مسیر پیشفرض اضافه کنید، به جای افزودن جایگزین کنید تا یک ورودی کهنه نتواند ببرد و جستجو را پس از آن تأیید کنید.
sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1
بررسی کنید و سپس راهی برای بازگشت نگه دارید
مهر زمانی دستدهی که پیش میرود نخستین مدرک است و از رابطی که فقط وجود دارد قویتر است. آن را با یک آزمون برنامه از طریق تونل دنبال کنید، سپس رابط را عمداً پایین بیاورید و تأیید کنید که میزبان به وضعیت قابل استفاده بازمیگردد نه اینکه مسیر پیشفرضی به هیچجا نگه دارد. آن گام آخر همان چیزی است که مردم از آن میگذرند و همان چیزی است که تعیین میکند آیا راهاندازی دوباره ماشین را بیارتباط رها میکند.
sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20
پیش از هر یک از اینها، وضعیت مسیریابی فعلی را ذخیره کنید و مطمئن شوید راهی برای ورود وجود دارد که به تونل وابسته نیست: یک کنسول، یک آدرس مدیریت خارج از باند یا همکاری در محل. ماشین راه دوری که مسیر پیشفرضش را از دست میدهد از طریق اتصالی که همین حالا از دست داده قابل بازیابی نیست و امنترین گام دفترچه اجرا همان گامی است که پیش از نخستین فرمان برداشته میشود.