النقاط الرئيسية
- يساعد الأمر traceroute على تحديد الجزء البطيء من رحلة حزمة الشبكة واستكشاف أخطاء اتصالات الشبكة البطيئة وإصلاحها.
- يستخدم Traceroute مجموعة بروتوكولات TCP/IP وsendspackets لتحديد الوقت الذي تستغرقه الحزمة للانتقال من مصدرها إلى وجهتها عبر أجهزة التوجيه.
- قم بتشغيل traceroute (IP أو URL) لتحديد المسار الذي تتخذه حزمك للوصول إلى الخادم، والوقت المستغرق بين كل قفزة وسيطة.
يمكنك استخدام لينكس traceroute
أمر لتحديد الجزء البطيء من رحلة حزمة الشبكة واستكشاف مشكلات اتصالات الشبكة البطيئة وإصلاحها. سنوضح لك كيفية القيام بذلك!
كيف يعمل traceroute
عندما تقدر كيف traceroute
يعمل هذا على تسهيل فهم النتائج بشكل كبير. كلما كان المسار أكثر تعقيدًا، حزمة الشبكة كلما كان الوقت الذي تستغرقه السيارة للوصول إلى وجهتها، كلما أصبح من الصعب تحديد مكان حدوث أي تباطؤ.
منظمة صغيرة شبكة المنطقة المحلية قد تكون شبكة LAN بسيطة نسبيًا. ربما تحتوي على خادم واحد على الأقل وجهاز توجيه أو اثنين. تزداد التعقيدات مع مرور الوقت. شبكة واسعة النطاق (WAN) التي تتواصل بين مواقع مختلفة أو عبر الإنترنت. ثم تصادف حزمة الشبكة الخاصة بك (وتتم إعادة توجيهها وتوجيهها) الكثير من الأجهزة، مثل أجهزة التوجيه والبوابات.
تصف رؤوس البيانات الوصفية الموجودة على حزم البيانات طولها، ومن أين أتت، وإلى أين تتجه، والبروتوكول الذي تستخدمه، وما إلى ذلك. تحدد مواصفات البروتوكول الرأس. إذا تمكنت من تحديد البروتوكول، فيمكنك تحديد بداية ونهاية كل حقل في الرأس وقراءة البيانات الوصفية.
traceroute
يستخدم بروتوكول التحكم في الإرسال/بروتوكول الإنترنت مجموعة من البروتوكولات، ويرسل بروتوكول بيانات المستخدم الحزم. يحتوي الرأس على الوقت للعيش حقل (TTL)، والذي يحتوي على قيمة عددية مكونة من ثمانية بتات. وعلى الرغم مما يوحي به الاسم، فإنه يمثل عددًا وليس مدة.
تنتقل الحزمة من مصدرها إلى وجهتها عبر جهاز توجيه. وفي كل مرة تصل فيها الحزمة إلى جهاز التوجيه، فإنها تقلل عداد TTL. وإذا وصلت قيمة TTL إلى واحد، فإن جهاز التوجيه الذي يستقبل الحزمة يقلل القيمة ويلاحظ أنها أصبحت الآن صفرًا. ثم يتم تجاهل الحزمة وعدم إعادة توجيهها إلى القفزة التالية من رحلتها لأنها “انتهت مهلتها”.
يرسل جهاز التوجيه بروتوكول التحكم في رسائل الإنترنت (اللجنة الدولية لشؤون المفقودين) الوقت المتجاوز الرسالة تعود إلى مصدر الحزمة لإعلامه بانتهاء مهلة الحزمة. تحتوي رسالة تجاوز الوقت على الرأس الأصلي وأول 64 بت من بيانات الحزمة الأصلية. يتم تعريف هذا في الصفحة السادسة من طلب التعليقات 792.
لذا، إذا traceroute
يرسل حزمة خارجًا، ثم يضبط قيمة TTL على واحد، ولن تصل الحزمة إلا إلى جهاز التوجيه الأول قبل التخلص منها. ستتلقى رسالة تجاوز وقت ICMP من جهاز التوجيه، ويمكنها تسجيل الوقت الذي استغرقته الرحلة ذهابًا وإيابًا.
ثم يكرر التمرين مع ضبط TTL على 2، والذي سوف يفشل بعد قفزتين. traceroute
يزيد TTL إلى ثلاثة ويحاول مرة أخرى. تتكرر هذه العملية حتى الوصول إلى الوجهة أو اختبار الحد الأقصى لعدد القفزات (30، افتراضيًا).
بعض أجهزة التوجيه لا تعمل بشكل جيد
بعض أجهزة التوجيه بها أخطاء. فهي تحاول إعادة توجيه الحزم بـ TTL يساوي صفرًا بدلاً من تجاهلها وإثارة رسالة تجاوز وقت ICMP.
وفق سيسكويقوم بعض موفري خدمة الإنترنت (ISPs) بوضع حد أقصى لعدد رسائل ICMP التي تنقلها أجهزة التوجيه الخاصة بهم.
يتم تكوين بعض الأجهزة بحيث لا ترسل أبدًا حزم ICMP. غالبًا ما يكون هذا لضمان عدم إجبار الجهاز عن غير قصد على المشاركة في رفض الخدمة الموزعة، مثل هجوم السنافر.
traceroute
يحتوي على مهلة زمنية افتراضية للردود مدتها خمس ثوانٍ. إذا لم يتم تلقي رد خلال تلك الثواني الخمس، فسيتم التخلي عن المحاولة. وهذا يعني تجاهل الردود من أجهزة التوجيه البطيئة للغاية.
تثبيت traceroute
traceroute
تم تثبيته بالفعل على Fedora 31 ولكن يجب تثبيته على Manjaro 18.1 وUbuntu 18.04. لتثبيته traceroute
في Manjaro استخدم الأمر التالي:
sudo pacman -Sy traceroute
للتثبيت traceroute
في أوبونتو، استخدم الأمر التالي:
sudo apt install traceroute
استخدام traceroute على Linux
كما ذكرنا أعلاه، traceroute's
الغرض من ذلك هو استنباط استجابة من جهاز التوجيه عند كل انتقال من جهاز الكمبيوتر الخاص بك إلى الوجهة. قد يكون البعض صامتًا ولا يكشف عن أي شيء، في حين أن آخرين قد يكشفون الحقيقة دون أي تحفظات.
على سبيل المثال، سنقوم بتشغيل traceroute
الى قلعة بلارني موقع ويب في أيرلندا، موطن المشاهير حجر بلارنيتقول الأسطورة إن من يقبل حجر بلارني سوف ينعم بـ “هدية الثرثرة”. ولنأمل أن يكون الأشخاص الذين نصادفهم على طول الطريق ثرثارين إلى الحد المناسب.
نكتب الأمر التالي:
traceroute www.blarneycastle.ie
السطر الأول يعطينا المعلومات التالية:
- الوجهة وعنوان IP الخاص بها.
- عدد القفزات
traceroute
سأحاول قبل الاستسلام. - حجم حزم UDP التي نرسلها.
تحتوي جميع الخطوط الأخرى على معلومات حول إحدى القفزات. ولكن قبل أن نتعمق في التفاصيل، يمكننا أن نرى أن هناك 11 قفزة بين جهاز الكمبيوتر الخاص بنا وموقع قلعة بلارني. تخبرنا القفزة رقم 11 أيضًا أننا وصلنا إلى وجهتنا.
يكون تنسيق كل خط قفزة على النحو التالي:
- اسم الجهاز أو، إذا لم يقم الجهاز بالتعريف بنفسه، عنوان IP.
- عنوان IP.
- الوقت الذي استغرقته الرحلة ذهابًا وإيابًا لكل من الاختبارات الثلاثة. إذا ظهرت علامة النجمة هنا، فهذا يعني أنه لم يكن هناك استجابة لهذا الاختبار. إذا لم يستجب الجهاز على الإطلاق، فسترى ثلاث علامات نجمية، ولن تجد اسم الجهاز أو عنوان IP.
دعونا نراجع ما لدينا أدناه:
- القفزة 1: المنفذ الأول للاتصال (بدون قصد) هو جهاز التوجيه DrayTek Vigor على الشبكة المحلية. بهذه الطريقة تغادر حزم 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
وهذا يجعل من الأسهل اختيار أرقام كبيرة لتوقيتات الرحلات ذهابًا وإيابًا والتي قد تشير إلى وجود عنق زجاجة.
بدأت Hop 3 تبدو مشبوهة بعض الشيء. في المرة السابقة، استجابت مرتين فقط، وهذه المرة استجابت مرة واحدة فقط. في هذا السيناريو، الأمر خارج عن سيطرتنا بالطبع.
ومع ذلك، إذا كنت تقوم بالتحقيق في شبكة شركتك، فسيكون من المفيد البحث بشكل أعمق في تلك العقدة.
تعيين قيمة مهلة traceroute
ربما إذا قمنا بتمديد فترة مهلة الانتظار الافتراضية (خمس ثوانٍ)، فسنحصل على المزيد من الاستجابات. للقيام بذلك، سنستخدم -w
خيار (وقت الانتظار) لتغييره إلى سبع ثوانٍ. (لاحظ أن هذا رقم فاصل عشري.)
نكتب الأمر التالي:
traceroute -w 7.0 blarneycastle.ie
لم يحدث هذا فرقًا كبيرًا، لذا ربما تكون الاستجابات قد انتهت صلاحيتها. ومن المرجح أن القفزات المجهولة تكون سرية عمدًا.
تحديد عدد الاختبارات
افتراضيا، traceroute
يرسل ثلاث حزم UDP إلى كل قفزة. يمكننا استخدام -q
(عدد الاستعلامات) خيار لضبط هذا العدد بالزيادة أو النقصان.
لتسريع traceroute
للاختبار، نكتب ما يلي لتقليل عدد حزم اختبار UDP التي نرسلها إلى حزمة واحدة:
traceroute -q 1 blarneycastle.ie
يؤدي هذا إلى إرسال مسبار واحد إلى كل قفزة.
تعيين قيمة TTL الأولية
يمكننا تعيين القيمة الأولية لـ TTL إلى قيمة غير القيمة 1، وتخطي بعض القفزات. عادةً، يتم تعيين قيم TTL إلى القيمة 1 للمجموعة الأولى من الاختبارات، وقيمتين للمجموعة التالية من الاختبارات، وهكذا. إذا قمنا بتعيينها إلى القيمة 5، فسيحاول الاختبار الأول الوصول إلى القفزة الخامسة وتخطي القفزات من الأولى إلى الرابعة.
نظرًا لأننا نعلم أن موقع قلعة بلارني يقع على بعد 11 نقطة من هذا الكمبيوتر، فإننا نكتب ما يلي للانتقال مباشرة إلى النقطة 11:
traceroute -f 11 blarneycastle.ie
وهذا يمنحنا تقريرًا لطيفًا ومكثفًا عن حالة الاتصال بالوجهة.
كن مراعيا
traceroute
تُعد أداة رائعة للتحقيق في توجيه الشبكة أو التحقق من سرعات الاتصال أو تحديد الاختناقات. كما يحتوي Windows أيضًا على tracert
أمر يعمل بشكل مماثل.
ومع ذلك، لا تريد قصف الأجهزة غير المعروفة بسيل من حزم UDP، وكن حذرًا من تضمين traceroute
في البرامج النصية أو الوظائف غير المراقبة.
الحمل traceroute
قد يؤثر وضع برنامج على الشبكة سلبًا على أدائها. ما لم تكن في موقف يتطلب إصلاحه على الفور، فقد ترغب في استخدامه خارج ساعات العمل العادية.