چه کسی MTU در WireGuard را انتخاب میکند: wg-quick، هسته یا شما
WireGuard هیچ MTUای را مذاکره نمیکند. ابزار راهاندازی، یک مدیر شبکه یا خط پیکربندی شما تصمیم میگیرد، و مقدار پیشفرض حدسی درباره مسیر است، نه اندازهگیری.
WireGuard هیچ مذاکره MTU ندارد. هر چیزی را که رابط به آن میدهد رمزگذاری و نتیجه را ارسال میکند، و اگر بسته کپسولهشده از مسیر فراتر رود، جایی که نمیتوانید ببینید دور ریخته یا تکهتکه میشود. کسی باید MTU رابط را انتخاب کند، و آن کسی ابزاری است که رابط را بالا آورده است.
سه نامزد وجود دارد و اشتباه گرفتن آنها آسان است.
سه جایی که مقدار میتواند از آن بیاید
مقدار میتواند صریحاً در پیکربندی رابط تنظیم شود، توسط ابزار راهاندازی از اطلاعات مسیر محاسبه شود، یا توسط هر مدیر شبکهای که مالک رابط است تنظیم شود. فراخوانی معمولی wg هیچیک از اینها را انجام نمیدهد، چون wg فقط کلیدها و همتاها را مدیریت میکند. MTU روی رابط شبکه زندگی میکند، به همین دلیل ip link show wg0 جایی است که آن را میخوانید.
اگر مطمئن نیستید کدام مورد صدق میکند، اول MTU را بخوانید، سپس بفهمید چه کسی رابط را آغاز کرده است.
بر اساس اینکه چه کسی رابط را اجرا میکند تصمیم بگیرید
اگر wg-quick آن را آغاز کند، خط صریح MTU برنده میشود و در غیر این صورت مقداری محاسبه میکند. اگر یک مدیر شبکه آن را آغاز کند، پروفایل آن مدیر تصمیم میگیرد. اگر محیط اجرای کانتینر یا کلاینت ارائهدهنده آن را آغاز کند، مستندات آنها را بخوانید، نه اینکه رفتار wg-quick را فرض کنید.
تصمیم این نیست که کدام عدد بهطور انتزاعی بهتر است. تصمیم این است که کدام مؤلفه را واقعاً میتوانید پیکربندی کنید.
محاسبه پیشفرض چه میکند
wg-quick مسیر تا نقطه پایانی همتا را جستوجو میکند، MTU آن رابط خروجی را میگیرد و سربازه کپسولهسازی را کم میکند. با هدر بیرونی IPv4 حدود 60 بایت است؛ با IPv6 حدود 80. نتیجه محدود میشود تا مسیری با 1500 بایت مقدار 1420 بدهد، نه مقداری که فقط در یک خانواده نشانی کار میکند. این یک پیشفرض معقول است، نه اندازهگیری مسیر شما.
نمیتواند از تونل بعدی، پیوند موبایل یا مسیر ICMP فیلترشده آگاه باشد.
این سقف پرسش واقعی را پنهان میکند. اگر مسیر شما واقعاً 9000 بایت از سر تا ته باشد، 1420 کارایی را روی میز میگذارد، و اگر مسیر 1400 باشد، 1420 از قبل بیش از حد بزرگ است. پیشفرض یک سازش است و باید همینطور با آن برخورد کرد.
وقتی مسیر زیر پای شما تغییر میکند
لپتاپی که از Ethernet به Wi-Fi و سپس به هاتاسپات تلفن جابهجا میشود، MTU رابطی را که با آن شروع کرده نگه میدارد. ممکن است مسیر بیرونی اکنون کوچکتر باشد و هیچ چیز دوباره مذاکره نمیکند. تونلهای تودرتو بدترش میکنند، چون هر لایه سربازه خود را از همان بودجه کم میکند. مقداری که در دفتر کار میکرد، مقداری نیست که در فرودگاه کار میکند.
یک دستدادن اخیر ثابت میکند کلیدها کار میکنند. هیچ چیزی درباره جا شدن بستههای بزرگ ثابت نمیکند.
هر بار یک عدد را آزمایش کنید
همان برنامه و مقصد را نگه دارید، یک مقدار را تغییر دهید و اندازه بگیرید. ping -M do -s 1372 بسته 1400 بایتی را با بیت DF تنظیمشده آزمایش میکند، و این همان شکلی از آزمایش است که میخواهید. اگر درخواستهای کوچک کار کنند و بزرگها بایستند، مشکل اندازه دارید نه مسیریابی.
فقط MTU را تغییر دهید. تنظیم چند گزینه بسته با هم به شما نمیگوید کدام مهم بود.
و انتظار نداشته باشید تغییر MTU یک مسیر بازگشت گمشده، یک قاعده ارسال یا خرابی DNS را درست کند. آنها هم نشانههای نبود ترافیک را تولید میکنند و آزمایشهای خودشان را دارند. راهنمای wg-quick انتخاب خودکار را مستند میکند.