🚀 البدء: هل تعاني من فقدان الحزم أو بطء الأداء؟
انقر لبدء عملية التشخيص. سنتتبع خطوات استكشاف الأخطاء المنهجي.
↓
❓ هل يمكنك عمل Ping بحزم صغيرة (64 بايت)؟
الاختبار: ping -s 64 destination (Linux) أو ping -l 64 destination (Windows)
↓
🔴 مشكلة الطبقة 1/2 - لا تتعلق بـ MTU
إذا فشلت الحزم الصغيرة، فهذه مشكلة اتصال، وليست MTU/تجزئة.
خطوات استكشاف الأخطاء:
- التحقق من التوصيلات المادية وسلامة الكابل
- التحقق من حالة الواجهة:
show interface
- التحقق من الأخطاء/التجاهلات على الواجهات
- التحقق من جداول التوجيه و ARP
- التحقق من قواعد جدار الحماية وقوائم التحكم في الوصول (ACLs)
❓ هل يمكنك عمل Ping بحزم كبيرة (1472 بايت)؟
الاختبار: ping -s 1472 destination (Linux) أو ping -l 1472 destination (Windows)
ملاحظة: 1472 بيانات + 20 IP + 8 ICMP = حزمة 1500 بايت
↓
✅ لا توجد مشاكل MTU مكتشفة
تعمل الحزم الكبيرة بشكل جيد. إعداد MTU الخاص بك صحيح. ابحث عن مشاكل أداء أخرى.
❓ هل يمكنك عمل Ping بتعيين بت (DF) (Don't Fragment)؟
الاختبار: ping -M do -s 1472 destination (Linux) أو ping -f -l 1472 destination (Windows)
↓
🔴 اكتشاف حفرة سوداء لـ PMTUD!
يتم تصفية رسائل ICMP "Fragmentation Needed" (النوع 3، الرمز 4) في مكان ما في المسار.
الحلول:
1. تثبيت TCP MSS (موصى به):
! Cisco IOS/IOS-XE
interface GigabitEthernet0/0
ip tcp adjust-mss 1460
! Juniper JunOS
set interfaces ge-0/0/0 unit 0 family inet tcp-mss 1460
# Linux iptables
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \\
-j TCPMSS --set-mss 1460
2. السماح بـ ICMP Type 3 Code 4:
! Cisco ACL
permit icmp any any packet-too-big
# iptables
iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
3. تقليل MTU للواجهة:
! Cisco
interface GigabitEthernet0/0
ip mtu 1400
✅ يعمل PMTUD بشكل صحيح
يعمل اكتشاف MTU المسار بشكل سليم. لا يتم تصفية رسائل ICMP.
الإجراءات الموصى بها:
- استخدام تثبيت MSS لـ TCP للحصول على الأداء الأمثل
- النظر في تقليل MTU على الواجهات إذا لزم الأمر
- مراقبة فقدان الحزم وإعادة الإرسال
- توثيق إعدادات MTU الخاصة بك للرجوع إليها في المستقبل