من يختار وحدة 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 يوثّق الاختيار التلقائي.