تنظیم درست MTU؛ کلید پنهان رفع قطعی و کندی آی پی ثابت

عیب‌یابی   7 دقیقه مطالعه

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

MTU دقیقاً چیست و چرا اهمیت دارد؟

MTU مخفف عبارت Maximum Transmission Unit است؛ یعنی بزرگ‌ترین اندازه‌ی بسته‌ای (Packet) که یک رابط شبکه می‌تواند بدون تکه‌تکه کردن، در یک نوبت ارسال کند. این مقدار بر حسب بایت بیان می‌شود و در شبکه‌های اترنت معمول، مقدار استاندارد آن ۱۵۰۰ بایت است. یعنی هر بسته‌ی داده نهایتاً می‌تواند ۱۵۰۰ بایت اطلاعات حمل کند.

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

چرا MTU اشتباه باعث قطعی و کندی می‌شود؟

وقتی از آی پی ثابت روی بستر VPN استفاده می‌کنید، داده‌های شما درون یک تونل رمزنگاری‌شده قرار می‌گیرند. این فرایند که به آن Encapsulation می‌گویند، چند بایت سربار (Header) به هر بسته اضافه می‌کند. نتیجه این است که فضای واقعی باقی‌مانده برای داده‌ی اصلی، از ۱۵۰۰ بایت کمتر می‌شود.

اگر MTU تونل را همچنان روی ۱۵۰۰ بگذارید، بسته‌ها پس از افزوده‌شدن سربار رمزنگاری از حد مجاز مسیر فراتر می‌روند و این مشکلات پیش می‌آید:

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

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

پیدا کردن مقدار درست MTU با دستور ping

خوشبختانه برای یافتن مقدار درست mtu نیازی به حدس‌وگمان نیست. دستور ping با گزینه‌ی «عدم تکه‌تکه‌شدن» (Don't Fragment) به ما اجازه می‌دهد بزرگ‌ترین بسته‌ای که بدون قطعه‌شدن از مسیر عبور می‌کند را دقیق پیدا کنیم.

در ویندوز این دستور را در Command Prompt اجرا کنید (به‌جای ۱۴۷۲ مقادیر مختلف را امتحان می‌کنیم):

  • ویندوز: ping -f -l 1472 8.8.8.8
  • لینوکس و مک: ping -M do -s 1472 8.8.8.8

روش کار ساده است: عدد ۱۴۷۲ را امتحان کنید. اگر پیام «Packet needs to be fragmented» یا مشابه آن دیدید، عدد را پله‌پله کم کنید تا به بزرگ‌ترین مقداری برسید که بدون خطا پاسخ می‌گیرد. فرض کنید بزرگ‌ترین مقدار موفق ۱۴۴۰ شد. حالا برای رسیدن به MTU واقعی باید ۲۸ بایت سربار IP و ICMP را به آن اضافه کنید: ۱۴۴۰ + ۲۸ = ۱۴۶۸. این عدد MTU پایه‌ی مسیر شماست.

محاسبه‌ی MTU مناسب برای تونل آی پی ثابت

عددی که در مرحله‌ی قبل به دست آوردید، MTU مسیر بدون تونل است. حالا باید سربار پروتکل تونل را هم از آن کم کنید. هر پروتکل سربار متفاوتی دارد:

  • WireGuard: حدود ۶۰ بایت سربار (روی IPv4). معمولاً مقدار پیشنهادی ۱۴۲۰ است و در بسیاری از شبکه‌های ایران مقادیر ۱۳۸۰ تا ۱۴۲۰ بهترین نتیجه را می‌دهند.
  • OpenVPN: سربار آن بسته به حالت UDP یا TCP و نوع رمزنگاری متغیر است؛ مقدار رایج و امن معمولاً حول ۱۴۰۰ قرار می‌گیرد.
  • L2TP/IPsec: به‌دلیل لایه‌های رمزنگاری بیشتر، اغلب مقادیر ۱۴۰۰ یا کمی پایین‌تر مناسب است.

قاعده‌ی طلایی این است: اگر مطمئن نیستید، با مقداری محافظه‌کارانه مثل ۱۳۸۰ شروع کنید. کمی پایین‌تر بودن MTU تنها سربار ناچیزی به همراه دارد، اما MTU بیش از حد بالا می‌تواند کل اتصال را ناپایدار کند. اگر هنوز آی پی ثابت تهیه نکرده‌اید، می‌توانید از میان پلن‌های آی پی ثابت نت‌باز گزینه‌ی مناسب پروتکل دلخواه خود را انتخاب کنید.

اعمال MTU در کانفیگ WireGuard

در WireGuard تنظیم MTU بسیار ساده است و فقط کافی است یک خط به بخش [Interface] فایل کانفیگ اضافه کنید:

  • فایل کانفیگ (با پسوند .conf) را باز کنید.
  • زیر بخش [Interface]، خط MTU = 1420 را اضافه کنید (یا مقداری که خودتان محاسبه کرده‌اید).
  • تونل را قطع و دوباره وصل کنید تا تنظیم جدید اعمال شود.

اگر از اپلیکیشن موبایل WireGuard استفاده می‌کنید، در صفحه‌ی ویرایش تونل فیلدی با عنوان MTU وجود دارد که می‌توانید مقدار را همان‌جا وارد کنید. پیشنهاد می‌کنیم پس از تغییر، چند دقیقه با مرور سایت‌های سنگین و دانلود فایل، پایداری اتصال را بسنجید. جزئیات گام‌به‌گام نصب و اتصال در صفحه‌ی آموزش اتصال نت‌باز در دسترس است.

اعمال MTU در OpenVPN

در OpenVPN چند پارامتر برای کنترل اندازه‌ی بسته وجود دارد که در فایل کانفیگ (با پسوند .ovpn) قرار می‌گیرند:

  • tun-mtu: اندازه‌ی MTU رابط مجازی تونل را تعیین می‌کند، مثلاً tun-mtu 1400.
  • mssfix: با محدودکردن MSS (حداکثر اندازه‌ی بخش TCP)، از تکه‌شدن بسته‌ها جلوگیری می‌کند؛ مقداری مثل mssfix 1360 در شبکه‌های پرنوسان بسیار کمک‌کننده است.
  • fragment: در حالت UDP، اگر مشکل قطعی ادامه داشت، افزودن fragment 1300 می‌تواند بسته‌های بزرگ را به‌صورت کنترل‌شده تقسیم کند.

توجه داشته باشید که پارامترهای tun-mtu و fragment باید روی هر دو سمت سرور و کلاینت هماهنگ باشند، در حالی که mssfix را معمولاً می‌توان سمت کلاینت تنظیم کرد. اگر سرویس را از نت‌باز تهیه کرده‌اید، کانفیگ تحویلی معمولاً از پیش بهینه شده و در بیشتر موارد نیازی به تغییر دستی ندارید.

نکات تکمیلی برای بهینه سازی شبکه و پایداری

تنظیم درست MTU بخش مهمی از بهینه سازی شبکه است، اما برای رسیدن به اتصالی واقعاً پایدار، این نکات را هم رعایت کنید:

  • پس از هر تغییر تست کنید: یک مقدار را اعمال کنید، چند دقیقه استفاده کنید و سپس درباره‌ی نتیجه قضاوت کنید؛ تغییرهای پشت‌سرهم و عجولانه عیب‌یابی را سخت می‌کنند.
  • روتر خانگی را فراموش نکنید: گاهی MTU روتر یا مودم ADSL/فیبر شما هم نیاز به تنظیم دارد، به‌ویژه روی خطوط PPPoE که اغلب MTU آن‌ها ۱۴۹۲ است.
  • از مقادیر افراطی پرهیز کنید: MTU خیلی پایین (مثلاً زیر ۱۲۸۰) سرعت را کاهش می‌دهد چون نسبت سربار به داده بالا می‌رود.
  • شبکه‌های مختلف، مقادیر مختلف: ممکن است MTU بهینه روی وای‌فای خانه با شبکه‌ی موبایل تفاوت داشته باشد؛ اگر بین چند شبکه جابه‌جا می‌شوید، مقداری محافظه‌کارانه که روی همه کار کند انتخاب کنید.

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

پرسش‌های متداول

مقدار درست MTU برای آی پی ثابت چقدر است؟

مقدار ثابت و یکسانی برای همه وجود ندارد و به پروتکل و مسیر شبکه‌ی شما بستگی دارد. برای WireGuard معمولاً ۱۴۲۰ و برای OpenVPN حدود ۱۴۰۰ نقطه‌ی شروع خوبی است، اما بهتر است با دستور ping مقدار دقیق را برای اتصال خودتان پیدا کنید.

از کجا بفهمم مشکل قطعی‌ام واقعاً مربوط به MTU است؟

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

آیا کم کردن MTU سرعت اینترنت را پایین می‌آورد؟

کاهش معقول MTU (مثلاً از ۱۵۰۰ به ۱۴۲۰) تاثیر محسوسی بر سرعت ندارد و در عوض پایداری را بسیار بهتر می‌کند. فقط مقادیر خیلی پایین مثل زیر ۱۲۸۰ به‌دلیل افزایش سربار می‌توانند سرعت را کم کنند.

آیا باید MTU را روی سرور هم تغییر دهم؟

برای WireGuard و پارامتر mssfix در OpenVPN معمولاً تنظیم سمت کلاینت کافی است. اما پارامترهایی مثل tun-mtu و fragment در OpenVPN باید روی سرور و کلاینت یکسان باشند. در سرویس‌های نت‌باز کانفیگ تحویلی از پیش بهینه شده است.

بعد از تغییر MTU باز هم قطعی دارم، چه کنم؟

ابتدا مطمئن شوید مقدار را پله‌پله کاهش داده‌اید و تونل را ری‌استارت کرده‌اید. سپس MTU روتر و مودم خود را هم بررسی کنید. اگر مشکل ادامه داشت، تغییر پروتکل (مثلاً از OpenVPN به WireGuard) یا تماس با پشتیبانی نت‌باز توصیه می‌شود.

💬