كيفية استخدام أمر 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
قد يؤثر الحمل على الشبكة بشكل سلبي على أدائها. ما لم تكن في موقف يتم إصلاحه الآن ، فقد ترغب في استخدامه خارج ساعات العمل العادية.