كيفية استخدام أمر traceroute على نظام Linux

يمكنك استخدام tracerouteأمر Linux لاكتشاف المرحلة البطيئة من رحلة حزمة الشبكة واستكشاف أخطاء اتصالات الشبكة البطيئة وإصلاحها. سنوضح لك كيف!

كيف يعمل traceroute

عندما تقدر كيف tracerouteيعمل ، فإنه يجعل فهم النتائج أسهل بكثير. كلما كان المسار الذي يتعين على حزمة الشبكة أن تسلكه أكثر تعقيدًا للوصول إلى وجهتها ، كان من الصعب تحديد مكان حدوث أي تباطؤ.

قد تكون شبكة المنطقة المحلية لمؤسسة صغيرة (LAN) بسيطة نسبيًا. من المحتمل أن يحتوي على خادم واحد على الأقل وجهاز توجيه أو اثنين. يزداد التعقيد على شبكة واسعة النطاق (WAN) تتواصل بين مواقع مختلفة أو عبر الإنترنت. ثم تواجه حزمة الشبكة الخاصة بك (ويتم إعادة توجيهها وتوجيهها بواسطة) الكثير من الأجهزة ، مثل أجهزة التوجيه والبوابات.

تصف رؤوس البيانات الوصفية في حزم البيانات طولها ، ومن أين أتت ، وأين تتجه ، والبروتوكول الذي تستخدمه ، وما إلى ذلك. تحدد مواصفات البروتوكول الرأس. إذا كان بإمكانك تحديد البروتوكول ، يمكنك تحديد بداية ونهاية كل حقل في الرأس وقراءة البيانات الوصفية.

tracerouteيستخدم مجموعة بروتوكولات TCP / IP ، ويرسل حزم بروتوكول مخطط بيانات المستخدم. يحتوي الرأس على حقل مدة البقاء (TTL) ، والذي يحتوي على قيمة عدد صحيح ثمانية بت. على الرغم مما يوحي به الاسم ، فهو يمثل عددًا وليس مدة.

تنتقل الحزمة من أصلها إلى وجهتها عبر جهاز توجيه. في كل مرة تصل الحزمة إلى جهاز توجيه ، فإنها تقلل من عداد TTL. إذا وصلت قيمة TTL إلى واحد ، فإن جهاز التوجيه الذي يتلقى الحزمة يقلل من القيمة ويلاحظ أنها الآن صفر. ثم يتم تجاهل الحزمة وعدم إعادة توجيهها إلى المرحلة التالية من رحلتها لأنها "انتهت مهلتها".

يرسل جهاز التوجيه رسالة تجاوز وقت بروتوكول التحكم في رسائل الإنترنت (ICMP) إلى أصل الحزمة لإعلامه بانتهاء مهلة الحزمة. تحتوي رسالة تجاوز الوقت على الرأس الأصلي وأول 64 بت من بيانات الحزمة الأصلية. تم تحديد ذلك في الصفحة السادسة من طلب التعليقات 792.

لذلك ، إذا tracerouteأرسل حزمة ، ولكن بعد ذلك عينت قيمة TTL على واحدة ، فستصل الحزمة فقط إلى مسافة جهاز التوجيه الأول قبل التخلص منها. سيتلقى رسالة تجاوز وقت ICMP من جهاز التوجيه ، ويمكنه تسجيل الوقت الذي استغرقته الرحلة ذهابًا وإيابًا.

ثم يكرر التمرين مع ضبط TTL على 2 ، والذي سيفشل بعد قفزتين. tracerouteيزيد TTL إلى ثلاثة ويحاول مرة أخرى. تتكرر هذه العملية حتى يتم الوصول إلى الوجهة أو يتم اختبار الحد الأقصى لعدد القفزات (30 ، افتراضيًا).

بعض أجهزة التوجيه لا تعمل بشكل جيد

تحتوي بعض أجهزة التوجيه على أخطاء. يحاولون إعادة توجيه الحزم مع TTL من الصفر بدلاً من التخلص منها ورفع رسالة ICMP التي تم تجاوز وقتها.

وفقًا لـ Cisco ، يحدد بعض مزودي خدمة الإنترنت (ISPs) عدد رسائل ICMP التي تنقلها أجهزة التوجيه الخاصة بهم.

لم يتم تكوين بعض الأجهزة لإرسال حزم ICMP. غالبًا ما يكون هذا لضمان عدم إجبار الجهاز عن غير قصد على المشاركة في رفض موزع للخدمة ، مثل هجوم السنافر.

tracerouteالمهلة الافتراضية للردود خمس ثوان. إذا لم يتلق ردًا خلال تلك الثواني الخمس ، فسيتم إلغاء المحاولة. هذا يعني تجاهل الاستجابات من أجهزة التوجيه البطيئة للغاية.

تثبيت مسار التتبع

tracerouteتم تثبيته بالفعل على Fedora 31 ولكن يجب تثبيته على Manjaro 18.1 و Ubuntu 18.04. للتثبيت tracerouteعلى Manjaro ، استخدم الأمر التالي:

sudo pacman -Sy traceroute

للتثبيت tracerouteعلى Ubuntu ، استخدم الأمر التالي:

sudo apt-get install traceroute

باستخدام مسار التتبع

كما غطينا أعلاه ، traceroute'sالغرض هو الحصول على استجابة من جهاز التوجيه في كل قفزة من جهاز الكمبيوتر الخاص بك إلى الوجهة. قد يكون البعض مشدودًا ولا يتخلى عن أي شيء ، بينما قد ينسكب البعض الآخر حبوب البن دون أي قلق.

على سبيل المثال ، سنقوم بتشغيل tracerouteموقع ويب Blarney Castle في أيرلندا ، موطن حجر Blarney الشهير. تقول الأسطورة إذا قبلت حجر بلارني فسوف تنعم بـ "هدية الثرثرة". دعونا نأمل أن تكون أجهزة التوجيه التي نواجهها على طول الطريق ثرثرة بشكل مناسب.

نكتب الأمر التالي:

traceroute www.blarneycastle.ie

يعطينا السطر الأول المعلومات التالية:

  • الوجهة وعنوان IP الخاص بها.
  • traceroute سيحاول عدد القفزات قبل الاستسلام.
  • حجم حزم UDP التي نرسلها.

تحتوي كافة الأسطر الأخرى على معلومات حول إحدى القفزات. قبل أن نتعمق في التفاصيل ، يمكننا أن نرى أن هناك 11 قفزة بين جهاز الكمبيوتر وموقع Blarney Castle على الويب. يخبرنا القفزة 11 أيضًا أننا وصلنا إلى وجهتنا.

تنسيق كل خط قفزة كما يلي:

  • اسم الجهاز أو عنوان IP إذا لم يعرّف الجهاز نفسه.
  • عنوان IP.
  • الوقت المستغرق ذهابًا وإيابًا لكل اختبار من الاختبارات الثلاثة. إذا كانت علامة النجمة هنا ، فهذا يعني أنه لم يكن هناك استجابة لهذا الاختبار. إذا لم يستجب الجهاز على الإطلاق ، فسترى ثلاث علامات نجمية ، ولا يوجد اسم للجهاز أو عنوان IP.

دعنا نراجع ما لدينا أدناه:

  • القفزة 1: أول منفذ للاتصال (لا يقصد التورية) هو DrayTek Vigor Router على الشبكة المحلية. هذه هي الطريقة التي تغادر بها حزم UDP الخاصة بنا الشبكة المحلية وتتصل بالإنترنت.
  • الخطوة 2: هذا الجهاز لم يستجب. ربما لم يتم تكوينه مطلقًا لإرسال حزم ICMP. أو ربما استجابت لكنها كانت بطيئة للغاية ،  tracerouteوانقضت مهلتها.
  • الخطوة 3: استجاب الجهاز ، لكننا لم نحصل على اسمه ، فقط عنوان IP. لاحظ أن هناك علامة النجمة في هذا السطر ، مما يعني أننا لم نتلق ردًا على الطلبات الثلاثة. قد يشير هذا إلى فقدان الحزمة.
  • القفزات 4 و 5: المزيد من القفزات المجهولة.
  • الخطوة 6: هناك الكثير من النصوص هنا لأن جهازًا بعيدًا مختلفًا تعامل مع كل طلب من طلبات UDP الثلاثة. تمت طباعة الأسماء (الطويلة إلى حد ما) وعناوين IP لكل جهاز. يمكن أن يحدث هذا عندما تصادف شبكة "كثيفة السكان" يوجد عليها الكثير من الأجهزة للتعامل مع كميات كبيرة من حركة المرور. هذه القفزة ضمن أحد أكبر مزودي خدمات الإنترنت في المملكة المتحدة ، لذا ، ستكون معجزة بسيطة إذا عالجت نفس القطعة من الأجهزة البعيدة طلبات الاتصال الثلاثة.
  • الخطوة 7: هذه هي الخطوة التي صنعتها حزم UDP الخاصة بنا عندما غادرت شبكة مزودي خدمة الإنترنت.
  • الخطوة 8: مرة أخرى ، نحصل على عنوان IP ولكن ليس اسم الجهاز. عادت الاختبارات الثلاثة بنجاح.
  • القفزات 9 و 10: قفزتان أخريان مجهولتان.
  • المرحلة 11: لقد وصلنا إلى موقع قلعة بلارني. تقع القلعة في مدينة كورك بأيرلندا ، ولكن وفقًا للموقع الجغرافي لعنوان IP ، يقع الموقع في لندن.

لذلك ، كانت حقيبة مختلطة. بعض الأجهزة تلعب الكرة ، وبعضها رد لكنه لم يخبرنا بأسمائها ، والبعض الآخر ظل مجهول الهوية تمامًا.

ومع ذلك ، وصلنا إلى الوجهة ، ونعلم أنه على بعد 11 قفزة ، وكان وقت الذهاب والإياب للرحلة 13.773 و 14.715 مللي ثانية.

إخفاء أسماء الأجهزة

كما رأينا ، يؤدي تضمين أسماء الأجهزة في بعض الأحيان إلى عرض غير منظم. لتسهيل رؤية البيانات ، يمكنك استخدام خيار -n(بدون تعيين).

للقيام بذلك بمثالنا ، نكتب ما يلي:

traceroute -n blarneycastle.ie

هذا يجعل من السهل انتقاء أعداد كبيرة لتوقيتات الذهاب والإياب التي يمكن أن تشير إلى عنق الزجاجة.

القفزة 3 بدأت تبدو مشبوهة قليلاً. في المرة الأخيرة ، استجابت مرتين فقط ، وهذه المرة ، استجابت مرة واحدة فقط. في هذا السيناريو ، هذا خارج عن سيطرتنا بالطبع.

ومع ذلك ، إذا كنت تبحث عن شبكة شركتك ، فسيكون من المفيد البحث بشكل أعمق في تلك العقدة.

تعيين قيمة مهلة التتبع

ربما إذا قمنا بتمديد فترة المهلة الافتراضية (خمس ثوانٍ) ، فسنحصل على المزيد من الردود. للقيام بذلك ، سنستخدم خيار -w(وقت الانتظار) لتغييره إلى سبع ثوانٍ. (لاحظ أن هذا رقم الفاصلة العائمة.)

نكتب الأمر التالي:

traceroute -w 7.0 blarneycastle.ie

لم يحدث هذا فرقًا كبيرًا ، لذا من المحتمل أن تنتهي الردود. من المحتمل أن تكون القفزات المجهولة سرية بشكل مقصود.

تحديد عدد الاختبارات

بشكل افتراضي ، tracerouteيرسل ثلاث حزم UDP لكل قفزة. يمكننا استخدام خيار -q(عدد الاستعلامات) لتعديل هذا لأعلى أو لأسفل.

لتسريع tracerouteالاختبار ، نكتب ما يلي لتقليل عدد حزم مجسات UDP التي نرسلها إلى واحدة:

traceroute -q 1 blarneycastle.ie

هذا يرسل مسبار واحد لكل قفزة.

ضبط قيمة TTL الأولية

يمكننا تعيين القيمة الأولية لـ TTL على شيء آخر غير واحد ، وتخطي بعض القفزات. عادة ، يتم تعيين قيم TTL على قيمة واحدة لمجموعة الاختبارات الأولى ، واثنتان لمجموعة الاختبارات التالية ، وهكذا. إذا قمنا بتعيينه على خمسة ، فسيحاول الاختبار الأول القفز على خمسة وتخطي القفزات من واحد إلى أربعة.

نظرًا لأننا نعلم أن موقع Blarney Castle الإلكتروني عبارة عن 11 قفزة من هذا الكمبيوتر ، فإننا نكتب ما يلي للانتقال مباشرة إلى Hop 11:

traceroute -f 11 blarneycastle.ie

هذا يعطينا تقريرًا لطيفًا ومكثفًا عن حالة الاتصال بالوجهة.

كن مراعيا

tracerouteهي أداة رائعة للتحقيق في توجيه الشبكة أو التحقق من سرعات الاتصال أو تحديد الاختناقات. يحتوي Windows أيضًا على tracertأمر يعمل بشكل مشابه.

ومع ذلك ، لا ترغب في قصف الأجهزة غير المعروفة بسيول حزم UDP ، وكن حذرًا من تضمين tracerouteالبرامج النصية أو المهام غير المراقبة.

tracerouteقد يؤثر الحمل على الشبكة بشكل سلبي على أدائها. ما لم تكن في موقف يتم إصلاحه الآن ، فقد ترغب في استخدامه خارج ساعات العمل العادية.