WireGuard AllowedIPs: مسیری که NetworkManager هرگز اضافه نکرد
یک پروفایل معتبر WireGuard میتواند دستدادن را کامل کند و باز هم چیزی نفرستد. جدول کرنل را با AllowedIPs مقایسه کنید، سپس به مسیر یک مالک بدهید.
شمارندهٔ دستدادن بهروز میشود، واسط آدرس خود را نگه میدارد و ping به طرف مقابل به جایی نمیرسد. این ترکیب مردم را گیج میکند، چون دستدادنِ سالم شبیه مدرکی است که تونل آماده است. اما نیست: تونل میتواند کاملاً مذاکره شده باشد و باز هم هیچ مسیری نداشته باشد که ترافیک را به آن هدایت کند، و اینها دو کار جدا هستند که دو تکهٔ وضعیت جدا انجام میدهند. اصلاح کاملاً بستگی دارد به اینکه کدام یک از این دو غایب است، پس گام اول همانا کشف آن است.
wg-quick هر دو کار را بیآنکه کسی بخواهد انجام میدهد. پشتیبانی داخلی WireGuard در NetworkManager نیز بهطور پیشفرض مسیرهای peer را نصب میکند، که دایرهٔ مشکوکها را به یک گزینهٔ غیرفعال، یک جدول مسیریابی دیگر یا پیکربندیای که از راه دیگری وارد شده محدود میکند.
پیش از دنبال کردن مسیر، تونل را تأیید کنید
wg show واسط، peer، نقطهٔ پایانی و عمر آخرین دستدادن را چاپ میکند و ip addr show تأیید میکند که آدرس حاضر است. دستدادنِ تازه یعنی کلیدها، نقطهٔ پایانی و مسیر UDP کار میکنند. هر چیز خرابی پاییندستِ آنها مینشیند: مسیریابی، فیلترکردن یا تحلیل نام.
سپس از کرنل بپرسید با یک مقصد واقعی چه میکند، نه با یک مقصد فرضی: ip route get 10.42.7.9. پاسخ واسط خروجی و آدرس مبدأیی را که بسته حمل میکند نام میبرد. وقتی آداپتور فیزیکی را نام میبرد، بسته هرگز وارد تونل نمیشود، هر قدر هم دستدادن سالم به نظر برسد.
AllowedIPs هم صافی است و هم فهرست مسیر
پیشوندهای AllowedIPs دو کار میکنند. تعیین میکنند کدام peer یک مقصد خروجی را حمل کند، و آدرس مبدأ بستههای ورودی را اعتبارسنجی میکنند، که همان مرز مسیریابی با کلید رمز است. در wg-quick همچنین نصب خودکار مسیر را میراند، و همین رفتار اضافی دلیل آن است که همان پیکربندی از ترمینال کار میکند و از کارخواه رومیزی نه.
در موردی که پشت این مقاله است، پروفایل از طریق یک افزونهٔ طرف سوم وارد شد نه از طریق پشتیبانی داخلی، و واسط بدون مسیر پیشوند بالا آمد. فهرست کردن جدول فوراً نشان میدهد: ip route show فقط مسیر متصل آدرس واسط را دارد و برای محدودهٔ دور هیچ.
بپرسید آیا مسیرهای peer اصلاً فعال هستند
پیش از تغییر هر چیزی تنظیم را بخوانید: nmcli -f wireguard.peer-routes,ipv4.route-table connection show work-wg. وقتی peer-routes مقدار no را نشان میدهد، تعمیر پشتیبانیشده nmcli connection modify work-wg wireguard.peer-routes yes است و پس از آن اتصال دوباره. افزودن یک مسیر ایستا بهجایش تا فعالسازی بعدی کار میکند و سپس بیصدا ناپدید میشود. همان ناپدیدشدن نشانه است: مسیری که هر صبح بهعنوان یک معما برمیگردد توسط پروفایل نصب نمیشود.
اگر گزینه از قبل فعال است، بررسی کنید که آیا پیشوند در جدول دیگری زندگی میکند، با ip route show table all | grep 10. مسیر در جدولی که جدول اصلی نیست غایب نیست، فقط برای جستوجویی که تنها جدول اصلی را میبیند نامرئی است. مسیریابی سیاستی را درست کنید، نه اینکه یک ورودی تکراری روی آن انبار کنید.
پیشوند را به اتصال اضافه کنید، نه به سامانهٔ در حال اجرا
در ویرایشگر اتصال، صفحهٔ WireGuard peer و AllowedIPs آن را نگه میدارد و صفحهٔ IPv4 مسیرهای اضافی را. مسیری که آنجا اضافه شود از اتصال دوباره جان سالم به در میبرد، چون به پروفایل تعلق دارد. در خط فرمان معادل آن افزودن یک مسیر به اتصال با شکل دروازهٔ خالی است و سپس پایین و بالا بردن اتصال تا تغییر اعمال شود.
باریکترین پیشوندی را برگزینید که میزبانهای مورد نیازتان را میپوشاند. کپی کردن نمونهٔ /8 ارائهدهنده میتواند محدودههای محلی را که تصادفاً داخلش هستند ببلعد، و خرابیهای حاصل شبیه تونل خراب به نظر میرسند نه مسیر بیش از حد پهن.
تونل شکافته را فهرست پیشوندها تعیین میکند
کلیدی برای تونل شکافته وجود ندارد؛ فهرست پیشوندها همان تصمیم است. peerی با یک محدوده برای LAN دفتر و یکی برای شبکهٔ آزمایشگاه دقیقاً همان مقاصد را از تونل میفرستد و بقیه را به حال خود میگذارد. یک میزبان تنها به /32 نیاز دارد، و محدودههای همپوشان در دو سایت تا زمانی که کسی زیرشبکهای را دوباره شمارهگذاری کند به پیشوندهای میزبان نیاز دارند.
انتخاب اینکه چیزی از تونل فرستاده نشود همان تصمیم را به حد نهایی میبرد: فهرست کمینه پیوند را بالا نگه میدارد در حالی که ترافیک معمولی راه همیشگی خود را میرود. نیت را بنویسید، وگرنه خوانندهٔ بعدی فهرست کوتاه را یک غفلت میپندارد و با حسن نیت آن را گسترش میدهد.
یک مالک برای جدول مسیر
wg-quick و NetworkManager هر دو باور دارند که مسیرهای واسط را در اختیار دارند. پیکربندیای که برای wg-quick نوشته شده وارد کنید و سپس سرویس wg-quick را هم راه بیندازید، و ورودیهای تکراری یا متعارضی میگیرید که رفتارشان بستگی دارد به اینکه کدام آخر اجرا شده است. یک مالک برگزینید و دیگری را بردارید: اگر NetworkManager اتصال را مدیریت میکند، واحد wg-quick را برای آن واسط غیرفعال کنید و هرگز پروفایل دومی برای همان دستگاه اضافه نکنید.
وقتی شکافتن باید از یک آداپتور فیزیکی پیروی کند نه از یک مقصد، به مسیریابی سیاستی وارد شدهاید، و مسیریابی سیاستی هم به یک نویسندهٔ واحد نیاز دارد. با تکرار ip route get تأیید کنید و سپس با چیزی که آدرس مبدأ انتخابشده را چاپ میکند به میزبانی درون پیشوند دور برسید. اگر پروفایل هر یک را دارد، IPv6 و DNS را جداگانه بررسی کنید.