الحزم الداخلية والخارجية في التقاط VPN: لماذا تختلف الأحجام
أحد الالتقاطين يرى النص الصريح على واجهة النفق، والآخر يرى إطارات مشفّرة على السلك. اقرأ الاثنين قبل أن تلوم MTU.
تلتقط حزماً بطول 1400 بايت على واجهة النفق، ثم تلتقط مرة أخرى على الواجهة الفيزيائية، فلا تتفق الأرقام. تختلف العناوين، وتختلف الأحجام، ويبدو الملف الثاني وكأنه محادثة أخرى. لا شيء معطّل. حزمتان مختلفتان تجلسان في طبقتين مختلفتين، والفجوة بينهما هي ما يفعله النفق بحركتك. اقرأ العرضين قبل أن تلوم MTU.
وجهتا نظر، والحزمة التي تُظهرها كل واحدة
الالتقاط المأخوذ على واجهة النفق يُظهر الحزمة الداخلية: حمولة التطبيق حاملةً مصدره ووجهته الأصليين، قبل تطبيق أي حماية. والالتقاط على الواجهة الفيزيائية يُظهر الحزمة الخارجية: ترويسة IP، وترويسة نقل، والتغليف، ثم الحزمة الداخلية المشفّرة كحمولة. المحادثة نفسها، والأجسام مختلفة. وبمجرد أن تسمّي أيّهما يحتويه الملف، يتوقف عدم التطابق عن كونه لغزاً.
فرق الحجم هو عبء إضافي، وفرق العنوان تصميم. اقلب ذلك فتصبح الحيرة متوقعة: يقارن الناس حزمة داخلية بطول 1400 بايت بحزمة خارجية بطول 1450 بايت، فيقرّرون أن هناك خطأً، ويبدؤون في تغيير إعدادات MTU التي لم تكن مذنبة قط. سمِّ الملف بالواجهة والطبقة، لأن هذه التسمية أول ما يحتاجه القارئ وأول ما يغفله الناس.
حدّد الطبقة قبل أن تبدأ الالتقاط
حدّد أي طبقة تجيب عن سؤالك قبل كتابة أول حزمة. سؤال MTU يحتاج عادةً إلى العرض الخارجي، لأن الترويسات تتراكم هناك وحدّ المسار يظهر هناك. وسؤال التطبيق يحتاج عادةً إلى العرض الداخلي، لأن الحمولة التي تهمك ما تزال موجودة هناك. والتقاط الاثنين بلا خطة ينتج ملفين بلا نتيجة.
استخدم اختباراً غير ضار ومصرّحاً به، ورشّح على المصدر والوجهة والوقت الذي يهمك. اقرأ واجهة أداة الالتقاط وخيارات الترشيح قبل الجمع، لأن البيانات الوصفية تكفي عادةً وهي أسهل بكثير في المشاركة من الحمولة. وتعامل مع الالتقاط الداخلي على أنه حساس افتراضياً، لأنه يحمل بيانات تطبيق غير مشفّرة لا تصبح محمية إلا في موضع أبعد على المسار.
ما يحتويه فرق الحجم فعلاً
تحمل الحزمة الخارجية ترويسات إضافية ومواد حماية، ويعتمد مقدار ما تحمله على البروتوكول وخياراته. والتجزئة أو التجميع أو إعادة الترتيب على طول المسار يمكن أن تكسر علاقة الواحد بواحد الظاهرة بين الحزمة الداخلية والحزم الخارجية التي تحملها، لذا لا تتوفر دائماً مقارنة حزمة بحزمة. وعند الاشتباه في عطل MTU، ابحث عن تغذية راجعة للحجم وعن النقطة التي تتوقف عندها الحركة، ثم قارن ذلك بما يبلّغ عنه التطبيق. ونمط إعادة إرسال بلا ردّ إشارة مختلفة عن خطأ ICMP يحمل حجم القفزة التالية.
حزمة واحدة تغادر المضيف لا تثبت شيئاً عن وصولها إلى الطرف البعيد. وإذا انتهى التقاطك عند واجهتك أنت، فقد أظهرت أن النواة أرسلت شيئاً، وهذا أضعف دليل متاح عن المسار. اجمع الالتقاط مع عَرَض قابل للتكرار: الوجهة نفسها، والعملية نفسها، والحجم نفسه، مع تشغيله مرتين وتغيير متغير واحد.
قراءة التفريغ في الأرقام
تجزئة المضيف وغيره من التفريغات تضيف تشويهاً ثانياً، وهو ما يجعل الالتقاطات المحلية تختلف مع السلك. قد يُظهر الالتقاط المحلي مخازن مؤقتة يقسّمها المحول لاحقاً، فتكون الإطارات على الوصلة أصغر وأكثر عدداً مما يوحي الملف. ولهذا فإن مخزناً كبيراً في ملف الالتقاط لا يثبت أن إطاراً أكبر من الحجم المسموح عبر كل وصلة. وإذا كانت الأحجام تهم استنتاجك، فسجّل مكان أخذ الالتقاط وهل كان التفريغ نشطاً على تلك الواجهة.
وإلا فأنت تقيس راحة المضيف لا سلوك المسار. وملفان موسومان بواجهتهما وحالة التفريغ يحلّان معظم هذه الجدالات في دقيقة.
حيث يكفّ الالتقاط عن كونه دليلاً
رؤية حزم خارجية مشفّرة تُظهر وجود حدّ حماية في ظروف الاختبار هذه، ولا تقول شيئاً عن تطبيقات أخرى على الجهاز، ولا عن تعامل المشغّل، ولا عن حالة الطرف النهائي نفسه. ورؤية نص صريح داخل النفق لا تعني أن النفق معطّل أيضاً؛ بل تعني أنك التقطت فوق نقطة التشفير، وهو مكان مشروع للنظر. فالالتقاط دليل عن مكان، لا حكم على نظام، وينبغي أن تصف التذكرة ذلك بهذه الطريقة. أبقِ جملة النطاق في التقرير، لأنها ما يمنع تحوّل ملاحظة واحدة إلى ادعاء تدقيق.
سمِّ كل ملف بواجهته ومرشّحه وطابعه الزمني، واحذفه عند انتهاء التحقيق. ويوثّق دليل tcpdump خيارات الواجهة والترشيح المستخدمة هنا، بما في ذلك ما يبقي الالتقاط صغيراً.
إذا كان لا بد من مشاركة الأدلة، فشارك الأحجام والطوابع الزمنية والخيارات بدلاً من الحمولة. كان السؤال عن حجم الحزمة، والجواب نادراً ما يحتاج بيانات أحد.