فقدان Ping على VPN: اجمع طلبات Echo قبل حساب النسبة
ستة طلبات وثلاثة ردود لا تصنع ادعاءً بخسارة 50 في المئة. اجمع صدى Echo حسب المصدر والمعرّف والتسلسل قبل أن تقسم أي شيء.
يحتوي ملف الالتقاط على ستة طلبات Echo وثلاثة ردود، ويكتب أحدهم في التذكرة خسارة 50 في المئة من الحزم. قد يكون هذا الرقم صحيحاً لملف الالتقاط وخاطئاً للنفق. قد تنتمي الطلبات الستة إلى محادثتين مختلفتين بعقدَي تسليم مختلفين. اجمعها قبل أن تقسم، وستكف النسبة عن أن تكون الجزء المثير في التقرير.
الخطوة 1: افصل التدفقات حسب المصدر والوجهة
يحمل طلب Echo مصدراً ووجهة، وهذان الحقلان يحددان المحادثة التي ينتمي إليها. المسبار الذي تولّده البوابة يستخدم عنوان النفق الخاص بالبوابة، أما المسبار الممرَّر باسم مضيف LAN فيحتفظ بعنوان ذلك المضيف. قد يكون لدى الطرف البعيد مسار عودة لأحدهما وليس للآخر، ما يجعل المجموعتين تتصرفان بشكل مختلف لأسباب لا علاقة لها بالنفق.
افصل ملف الالتقاط على هذين الحقلين قبل أن تعدّ أي شيء، وأبقِ الوجهة جزءاً من المفتاح. تدفقان إلى نظيرين مختلفين غير قابلين للمقارنة حتى عندما يشتركان في المصدر.
سجّل المجموعات مع أعدادها، لأن الخطوة التالية تحدد أي الردود تنتمي إلى أي مجموعة. مجموعة بثلاثة طلبات بلا رد مطابق هي نتيجة. ومجموعة بثلاثة طلبات وثلاثة ردود هي خط أساس.
الخطوة 2: طابِق حسب المعرّف والتسلسل
يحمل تنسيق Echo في RFC 792 معرّفاً ورقم تسلسل، ويعاملهما كالحقلين اللذين يقرنان الرد بطلبه. كلاهما مطلوب لهذه المهمة. رقم التسلسل وحده ليس فريداً، لأن مرسلين أو عمليات مختلفة قد تعيد استخدام القيمة نفسها داخل نافذة التقاط واحدة. المعرّف يضيّق المرسل والتسلسل يضيّق الموضع، والزوج معاً هو ما يجعل المطابقة قابلة للدفاع.
يعكس الرد اتجاه عنواني طلبه، لذا فإن المطابقة زوج طلب-رد وليس مجموعتين متطابقتين. قارن مصدر الطلب بوجهة الرد ووجهة الطلب بمصدر الرد، ثم أكّد تطابق المعرّف والتسلسل.
أبقِ نافذة الملاحظة أيضاً، لأن الالتقاط الطويل قد يحتوي إعادة استخدام مشروعة للحقلين. تقليص النافذة إلى دفعة واحدة يزيل معظم هذا الالتباس. كما يجعل الأعداد قابلة لإعادة الإنتاج لمن يقرأ التذكرة.
tshark -r capture.pcap -Y 'icmp.type == 8' -T fields -e frame.time -e ip.src -e ip.dst -e icmp.ident -e icmp.seq
tshark -r capture.pcap -Y 'icmp.type == 0' -T fields -e frame.time -e ip.src -e ip.dst -e icmp.ident -e icmp.seqالخطوة 3: قارن المجموعات عند الحد نفسه
إذا كانت ترجمة عناوين الشبكة تقع بين نقطة الالتقاط والنظير، فستختلف العناوين في الطلب والرد بحكم التصميم. قارن المجموعات عند حد واحد، أو احمل التعيين صراحةً بحيث تُحسب الفروق. خلط طلبات ما قبل الترجمة مع ردود ما بعد الترجمة يخترع عدم تطابق لم يوجد قط على السلك.
حدّد الحد قبل أن تبدأ العدّ، واذكره في التقرير ليتمكن الشخص التالي من إعادة إنتاج التجميع. التقاط واحد على جانب العميل وآخر على جانب الخادم هما حدّان مختلفان. كل منهما يجيب عن سؤال مختلف حول المكان الذي اختفى فيه الرد.
مجموعة المسبارات المترجمة ترث أيضاً حالة جهاز الترجمة نفسه، وقد تكون هي السبب الفعلي في أن الرد لا يصل أبداً. افحص تلك الحالة قبل لوم المسار الذي يليها.
tcpdump -ni any icmp and host 10.90.0.1 -c 20
tshark -r capture.pcap -Y 'icmp' -T fields -e ip.src -e ip.dst -e ip.ttl | head -20الخطوة 4: قل ما يمكن للالتقاط إثباته وما لا يمكنه
الفجوة الملاحظة لا تثبت أن المضيف البعيد بقي صامتاً. قد ترى نقطة الالتقاط اتجاهاً واحداً فقط، أو قد يُسقط مرشّح الرد، أو قد يكون المخزن قد فاض خلال النافذة. كل ذلك ينتج الغياب نفسه واستنتاجاً مختلفاً.
سجّل موضع الالتقاط وتعبير المرشّح وعدّادات الإسقاط إلى جانب الأعداد، لأن نسبة بدونها لا يمكن تدقيقها. هذه السطور الثلاثة هي ما يجعل الرقم قابلاً للدفاع لاحقاً.
ثم افصل ما تثبته الملاحظة عما تقترحه، في جملتين لا جملة واحدة. الجملة الأولى تذكر الأعداد والحد. والثانية تذكر الفرضية وما يؤكدها.
حين يكون السؤال هل يُسقط مسار معيّن الحزم، يكون مسبار مُدار بعنوان مصدر صريح دليلاً أقوى من عدّ سلبي لحركة مختلطة. أرسله من الجهاز نفسه، في الوقت نفسه، إلى النظير نفسه. غيّر متغيراً واحداً وتبقى المقارنة صالحة.
أبلغ عن المجموعات والحد التالي
للتقرير ثلاثة سطور: تعريف المجموعة، والأعداد المطابقة داخل كل مجموعة، والحد الذي أُجريت عنده المقارنة. عندها يستطيع القارئ أن يرى أن مجموعة أجابت بالكامل وأخرى لم تُجب، ما يشير إلى مسار أو صلاحية بدلاً من خسارة عشوائية.
أرفق ملف الالتقاط وتعبيرات المرشّح حتى يمكن إعادة إنتاج التجميع. ملخص بلا الملف هو ادعاء لا نتيجة.
ping -c 5 -I 10.80.0.6 10.90.0.1
ping -c 5 -I 10.30.0.25 10.90.0.1
tshark -r capture.pcap -Y 'icmp.type == 8 || icmp.type == 0' -T fields -e ip.src -e ip.dst -e icmp.ident -e icmp.seq | sort | uniq -c | headحين تُظهر مجموعة خمسة ردود ولا تُظهر الأخرى شيئاً، فالنتيجة أن مصدراً واحداً له مسار عودة عامل والآخر ليس له. هذه تذكرة أفضل بكثير من نسبة مخلوطة، وهي توجّه الفحص التالي إلى مسار العودة بدلاً من نسخة VPN غير ذات صلة.