Traceroute - قيادة لينكس - قيادة يونيكس

traceroute - قم بطباعة حزم الطريق إلى مضيف الشبكة

ملخص

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ]

[ -i iface ] [ -m max_ttl] [ -p port ]

[ -q nqueries ] [ -s src_addr ] [ -t tos ]

[ -w waittime ] [ -z pausemsecs ]

مضيف [ packetlen ]

وصف

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

المعلمة الإلزامية الوحيدة هي اسم مضيف الوجهة أو رقم IP . طول مخطط الفحص الافتراضي هو 40 بايت ، ولكن يمكن زيادته عن طريق تحديد طول الرزمة (بالبايت) بعد اسم مضيف الوجهة.

الخيارات الأخرى هي:

-F

قم بتعيين مدة التشغيل الأولية المستخدمة في حزمة الفحص الصادرة الأولى.

-F

اضبط الجزء "عدم التجزئة".

تمكين تصحيح مستوى المقبس.

-g

حدد بوابة مسار مصدر فضفاضة (8 كحد أقصى).

-أنا

حدد واجهة شبكة للحصول على عنوان IP المصدر لحزم الفحص الصادرة. هذا هو عادة مفيدة فقط على مضيف homed متعددة. (راجع علامة -s للحصول على طريقة أخرى للقيام بذلك.)

-أنا

استخدم ICMP ECHO بدلاً من مخططات بيانات UDP.

-m

اضبط أقصى مدة تشغيل (أقصى عدد من القفزات) المستخدمة في رزم المسبار الصادرة. الافتراضي هو 30 قفزة (نفس الافتراضي المستخدم لاتصالات TCP).

-n

عناوين القفزات المطبوعة عدديًا بدلاً من الرمز والرقمية (يحفظ بحثًا عن اسم خادم الأسماء لكل بوابة موجودة في المسار).

-p

تعيين رقم منفذ UDP الأساسي المستخدم في probes (الافتراضي هو 33434). يأمل Traceroute أن لا شيء يستمع على قاعدة منافذ UDP إلى الأساسي + nrobes - 1 في المضيف الوجهة (لذا سيتم إرجاع رسالة ICON PORT_UNREACHABLE لإنهاء تتبع المسار). إذا كان هناك شيء يستمع على منفذ في النطاق الافتراضي ، فيمكن استخدام هذا الخيار لاختيار نطاق منفذ غير مستخدم.

-r

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

-s

استخدم عنوان IP التالي (والذي يتم إعطاؤه عادة كرقم IP ، وليس اسم مضيف) كعنوان المصدر في حزم الفحص الصادرة. على المضيفات متعددة homed (تلك التي تحتوي على أكثر من عنوان IP واحد) ، يمكن استخدام هذا الخيار لفرض عنوان المصدر أن يكون شيء آخر غير عنوان IP للواجهة يتم إرسال حزمة الفحص. إذا لم يكن عنوان IP واحدًا من عناوين واجهة هذا الجهاز ، فسيتم إرجاع الخطأ ولن يتم إرسال أي شيء. (راجع علم -i لطريقة أخرى للقيام بذلك.)

-t

قم بتعيين نوع الخدمة في حزم الفحص إلى القيمة التالية (صفر الافتراضي). يجب أن تكون القيمة عددًا صحيحًا عشريًا في النطاق من 0 إلى 255. يمكن استخدام هذا الخيار لمعرفة ما إذا كان هناك أنواع مختلفة من الخدمات تؤدي إلى مسارات مختلفة. (إذا لم تكن تستخدم 4.4bsd ، فقد يكون هذا الأمر أكاديميًا نظرًا لأن خدمات الشبكة العادية مثل telnet و ftp لا تسمح لك بالتحكم في TOS). ليست كل قيم TOS قانونية أو ذات معنى - راجع مواصفات IP للتعريفات. من المحتمل أن تكون القيم المفيدة " -t 16 " (تأخير منخفض) و " -8 " (إنتاجية عالية).

-الخامس

إخراج مطول. يتم سرد الحزم المستلمة ICMP غير TIME_EXCEEDED و UNREACHABLEs.

-w

اضبط الوقت (بالثواني) لانتظار استجابة للمسبار (الافتراضي 5 ثوان).

-x

تبديل اختباري الملكية الفكرية. عادة ، يمنع هذا traceroute من حساب checksums ip. في بعض الحالات ، يمكن لنظام التشغيل الكتابة فوق أجزاء من الحزمة المنتهية ولايته ولكن لا يعيد حساب المجموع الاختباري (لذلك في بعض الحالات ، يكون الإعداد الافتراضي هو عدم حساب المجموع الاختباري واستخدام -x يجعلها متقابلة). لاحظ أن checkums مطلوبة عادةً للقفزة الأخيرة عند استخدام تحقيقات ICMP ECHO ( -I ). لذلك يتم حسابها دائمًا عند استخدام ICMP.

-z

تعيين الوقت (بالمللي ثانية) للتوقف بين probes (افتراضي 0). بعض أنظمة مثل Solaris وأجهزة التوجيه مثل رسائل ICMP الحد Cevos المعدل. قيمة جيدة للاستخدام مع هذا 500 (على سبيل المثال 1/2 ثانية).

يحاول هذا البرنامج تتبع المسار الذي ستتبعه حزمة IP لبعض مضيف الإنترنت عن طريق تشغيل حزم فحص UDP مع ttl صغير (وقت للعيش) ثم الاستماع إلى "تجاوز الوقت" لردود ICMP من العبّارة. نبدأ بتحقيقاتنا مع ttl من واحد ونزداد بواحد حتى نحصل على منفذ ICMP "غير قابل للوصول" (مما يعني أننا وصلنا إلى "host") أو نصل إلى max (الذي يتعدى 30 قفزة ويمكن تغييره مع m العلم). يتم إرسال ثلاثة مجسات (تغيير مع إشارة -q ) في كل إعداد ttl ويتم طباعة خط يوضح TTL وعنوان البوابة ووقت رحلة الذهاب والإياب لكل مسبار. إذا كانت إجابات المسبار تأتي من بوابات مختلفة ، فسيتم طباعة عنوان كل نظام استجابة. إذا لم يكن هناك استجابة في غضون 5 ثوان. الفاصل الزمني timeout (تم تغييره باستخدام علامة -w ) ، تتم طباعة "*" لهذا الفحص.

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

قد يكون استخدام العينة والإخراج:

[yak 71]٪ traceroute nis.nsf.net. traceroute to nis.nsf.net (35.1.1.48)، 30 hops max، 38 byte packet 1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32. 216.1) 39 ms 39 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms 5 ccn -nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms 8 129.140. 70.13 (129.140.70.13) 99 ms 99 ms 80 ms 9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms 10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms 11 nic.merit.edu (35.1 .1.48) 239 ms 239 ms 239 ms

لاحظ أن الأسطر 2 & 3 هي نفسها. هذا يرجع إلى نواة عربات التي تجرها الدواب على نظام القفزة الثانية - lbl-csam.arpa - التي تعيد توجيه الحزم التي تحتوي على صفر ttl (خطأ في النسخة الموزعة من 4.3BSD). لاحظ أنه يجب عليك تخمين المسار الذي تسلكه الحزم عبر البلاد نظرًا لأن NSFNet (129.140) لا تقدم ترجمات العنوان إلى اسم لأجهزتها NSS.

مثال أكثر إثارة للاهتمام هو:

[yak 72]٪ traceroute allspice.lcs.mit.edu. traceroute to allspice.lcs.mit.edu (18.26.0.115)، 30 hops max 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms 5 ccn-nerif22 .Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms 8 129.140.70.13 ( 129.140.70.13) 80 ms 79 ms 99 ms 9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms 10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms 11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms 12 * * * 13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICE.LCS.MIT.EDU (18.26 .0.115) 339 مللي 279 مللي 279 مللي ثانية

لاحظ أن العبّارات 12 و 14 و 15 و 16 و 17 قف لا ترسل رسائل ICMP "تجاوز الوقت" أو ترسلها مع ttl صغيرة جدًا للوصول إلينا. 14-17 تقوم بتشغيل كود MIT C Gateway الذي لا يرسل "الوقت الذي تم تجاوزه" s. الله لا يعرف إلا ما يحدث مع 12.

قد تكون العبارة الصامتة 12 في الفقرة أعلاه نتيجة لخلل في 4. [23] رمز الشبكة BSD (ومشتقاته): 4.x (x <= 3) يرسل رسالة لا يمكن الوصول إليها باستخدام أيًا كانت ttl يظل في النص الأصلي مخطط البيانات. وبما أن عبارات ttl المتبقية ، بالنسبة للبوابات ، هي صفر ، فإن "الوقت الذي تجاوزته" ICMP مضمون لعدم إعادته لنا. سلوك هذا الخطأ أكثر إثارة للاهتمام قليلاً عند ظهوره على نظام الوجهة:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1 ) 19 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms 6 csgw. Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) 59 الآنسة ! 39 مللي! 39 مللي!

لاحظ أن هناك 12 "بوابات" (13 هي الوجهة النهائية) وأن النصف الأخير منهم "مفقود". ما يحدث حقاً هو أن rip (Sun-3 running Sun OS3.5) يستخدم ttl من مخطط البيانات الذي توصلنا إليه كـ ttl في الرد على ICMP. لذا ، ستنتهي مدة الرد على مسار العودة (مع عدم إرسال أي إشعار إلى أي شخص لأن ICMP لا يتم إرساله إلى ICMP) حتى نتحقق من وجود ttl على الأقل ضعف طول المسار. أي ، مزق هو حقا فقط 7 القفزات بعيدا. الرد الذي يتم إرجاعه مع 1 ttl هو دليل على وجود هذه المشكلة. Traceroute يطبع "!" بعد الوقت إذا كانت ttl <= 1. بما أن البائعين يشحنون الكثير من الأجهزة القديمة (DEC's Ultrix أو Sun 3.x) أو برنامج غير قياسي (HPUX) ، توقع أن ترى هذه المشكلة بشكل متكرر و / أو توخى الحذر في اختيار الهدف المضيف من المسابر الخاصة بك.

التعليقات التوضيحية الأخرى المحتملة بعد مرور الوقت ! H أو ! N أو P! (المضيف أو الشبكة أو البروتوكول غير قابلة للوصول) ، ! S (فشل مسار المصدر) ، ! F- (التجزئة المطلوبة - يتم عرض قيمة RFC1191 Path MTU Discovery) ، X! (يحظر الاتصالات الإدارية) ، V! (انتهاك الأسبقية المضيف) ، ! C (قطع الأسبقية في الواقع) ، أو ! (رمز ICMP لا يمكن الوصول إليه). يتم تعريف هذه بواسطة RFC1812 (الذي يحل محل RFC1716). إذا أسفرت جميع التحقيقات تقريبًا عن نوع من الوصول غير القابل للوصول إليه ، فسوف يتخلى هذا المسار عن المسار ويخرج منه.

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

أنظر أيضا

pathchar (8) ، netstat (1) ، بينغ (8)