Traceroute - فرمان لینوکس - فرمان یونیکس

traceroute - بستههای مسیر را به شبکه میزبان ارسال کنید

خلاصه داستان

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g دروازه ]

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

[ -q نویسی ] [ -s src_addr ] [ -t tos ]

[ -w waittime ] [ -z pausemsecs ]

میزبان [ packetlen ]

شرح

اینترنت پیچیده و پیچیده سخت افزار شبکه است، متصل شده توسط دروازه. ردیابی بسته های مسیر یکی را دنبال می کند (یا یافتن دروازه اشتباه است که بسته های شما را رد می کند) می تواند دشوار باشد. Traceroute با استفاده از پروتکل پروتکل "زمان برای زندگی" و تلاش برای کشف یک پاسخ ICMP TIME_EXCEEDED از هر دروازه در طول مسیر به برخی از میزبان.

پارامتر اجباری تنها نام میزبان مقصد یا شماره IP است . طول پرونده دیتاگرام پرونده 40 بایت است ، اما این می تواند با تعیین طول بسته (در بایت) پس از نام میزبان مقصد افزایش یابد.

گزینه های دیگر عبارتند از:

-f

ابتدا زمان زندگی برای استفاده در اولین بسته پروب خروجی را تنظیم کنید.

-F

بیت را "قطعه" را تنظیم کنید.

-d

اشکال زدایی سطح سوکت را فعال کنید

-g

یک دروازه مسیر منبع منبع را تعیین کنید (حداکثر 8).

-من

یک اینترفیس شبکه را برای دریافت آدرس IP منبع برای بسته های پروب های خروجی مشخص کنید. این به طور معمول فقط در یک میزبان چند منظوره مفید است. (این کار را برای نشان دادن -s برای یک راه دیگر استفاده کنید.)

-من

استفاده از ICMP ECHO به جای دیتاگرام UDP.

-m

حداکثر زمان برای زندگی (حداکثر تعداد آپپ ها) که در بسته های پروب های خروجی استفاده می شود را تنظیم کنید. به طور پیش فرض 30 اسفند (همان پیش فرض برای اتصالات TCP استفاده می شود).

-n

هات چاپ را به صورت عددی به جای نمادین و عددی (صرفه جویی در یک آدرس نام کاربری برای هر دروازه موجود در مسیر ذخیره می کند).

پایه UDP پایه شماره مورد استفاده در پروب را تعیین کنید (به طور پیش فرض 33434 است). Traceroute امیدوار است که هیچ چیز در پایانه های UDP گوش به پایه + nhops - 1 در میزبان مقصد گوش ندهد (بنابراین یک پیام ICMP PORT_UNREACHABLE برای خاتمه مسیر ردیابی بازگردانده می شود). اگر چیزی در یک بندر در محدوده پیش فرض گوش می دهد، این گزینه می تواند برای انتخاب محدوده پورت مورد استفاده قرار گیرد.

-r

دور زدن جداول مسیریابی معمولی و ارسال مستقیم به یک میزبان در یک شبکه متصل. اگر میزبان در یک شبکه مستقیما متصل نیست، یک خطا بازگردانده می شود. این گزینه را می توان برای پینگ کردن یک میزبان محلی از طریق یک رابط که هیچ مسیری از طریق آن (به عنوان مثال پس از اینکه رابط توسط مسیریابی (8C) کاهش یافت) استفاده می شود.

-s

از آدرس IP زیر (معمولا به عنوان شماره IP، نه یک نام میزبان) به عنوان آدرس منبع در بسته های پروب خروجی استفاده کنید. در میزبانهای چندمتغیره (کسانی که دارای بیش از یک آدرس IP هستند)، این گزینه می تواند مورد استفاده قرار گیرد تا مجددا آدرس منبع چیزی غیر از آدرس IP رابط است که بسته پروب بر روی آن ارسال شود. اگر آدرس IP یکی از آدرس های رابط این دستگاه نیست، یک خطا باز می شود و هیچ چیزی ارسال نمی شود. (برای دیدن این کار به پرچم -i مراجعه کنید.)

نوع سرویس را در بسته های پروب به مقدار زیر تنظیم کنید (به طور پیش فرض صفر است). مقدار باید یک عدد صحیح اعشاری در محدوده 0 تا 255 باشد. این گزینه می تواند مورد استفاده قرار گیرد تا ببیند که آیا انواع مختلف خدمات در مسیرهای مختلف نتیجه می گیرند. (اگر شما 4.4bsd را اجرا نکنید، این ممکن است از زمانی که سرویس های شبکه ی معمول مانند telnet و ftp اجازه ی کنترل TOS را ندارند، آکادمیک باشند). نه همه مقادیر TOS قانونی یا معنادار هستند - مشخصات IP برای تعاریف را ببینید. مقادیر مفید احتمالا " -t 16 " (تاخیر کم) و " -t 8 " (توان بالا) است.

-v

خروجی دروغین بسته های ICMP دریافتی غیر از TIME_EXCEEDED و UNREACHABLE لیست شده اند.

-w

زمان (در ثانیه) را تنظیم کنید تا یک پاسخ به یک پروب منتظر بماند (به طور پیش فرض 5 ثانیه).

-ایکس

چک کردن چک های IP را تغییر دهید به طور معمول، از محاسبه چکمه های IP جلوگیری می کند. در بعضی موارد، سیستم عامل می تواند بخشی از بسته خروجی را بازنشانی کند، اما مجددا قسط حساب را مجددا حساب نمی کند (بنابراین در بعضی موارد به طور پیش فرض این است که چکمه ها را محاسبه نکنند و استفاده از x موجب می شود آنها را محاسبه کنند). توجه داشته باشید که هنگام استفاده از پروب ECHO ICMP ( -I ) معمولا چکمه ها برای آخرین hop استفاده می شود. بنابراین آنها همیشه هنگام استفاده از ICMP محاسبه می شوند.

-z

تنظیم زمان (در میلی ثانیه) برای توقف بین پروب (به طور پیش فرض 0). برخی از سیستم هایی مانند Solaris و روترهایی مانند Ciscos limit limit limit messages ICMP. مقدار خوبی برای استفاده با این 500 (به عنوان مثال 1/2 ثانیه) است.

این برنامه تلاش می کند تا مسیر را ردیابی کند و یک بسته ی آی پی با راه اندازی بسته های UDP پروجکشن با یک TTL کوچک (زمان زندگی) و سپس گوش دادن به یک پاسخ "ICMP" از دروازه به برخی از میزبان های اینترنتی پی می برد. ما شروع می کنیم پروب های خود را با یک TTL از یک و افزایش به یک تا زمانی که ما ICMP "بندر غیر قابل دسترس" (که به معنی ما را به "میزبان") و یا ضربه حداکثر (که پیش فرض 30 اسب و می تواند با-M پرچم). سه پروب (تغییر با پرچم -q ) در هر تنظیم TTL فرستاده می شود و یک خط چاپ شده نشان می دهد TTL، آدرس دروازه و زمان سفر دور هر پروب. اگر پروب پاسخ داده شده از دروازه های مختلف باشد، آدرس هر سیستم پاسخ داده خواهد شد. در صورت عدم پاسخ در ظرف 5 ثانیه فاصله زمانی (با پرچم -w تغییر یافت)، برای "آن پروب" یک "*" چاپ شده است.

ما نمی خواهیم میزبان مقصد پردازش بسته های پروب UDP را انجام دهد، بنابراین پورت مقصد به مقدار نامحدود تنظیم شده است (اگر برخی از آنها در مقصد از آن مقدار استفاده می کنند، می توان آن را با پرش -p تغییر داد).

استفاده و خروجی نمونه ممکن است:

[jak 71]٪ traceroute nis.nsf.net. traceroute به nis.nsf.net (35.1.1.48)، 30 hop max، 38 byte package 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 همانند هستند. این به دلیل هسته حشره دار در سیستم 2 hop است - lbl-csam.arpa - که بسته ها را با صفر ttl (یک اشکال در نسخه توزیع شده از 4.3BSD) به جلو می برد. توجه داشته باشید که باید حدس بزنید که چه مسیری که بسته ها در سراسر کشور دریافت می کنند، از آنجا که NSFNet (129.140) ترجمه های آدرس به نام برای NSS های خود را ارائه نمی کند.

مثال جالب تر این است:

[jak 72]٪ traceroute allspice.lcs.mit.edu. traceroute به allspice.lcs.mit.edu (18.26.0.115)، 30 hop 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 ms 279 ms 279 ms

توجه داشته باشید که دروازه های 12، 14، 15، 16 و 17 hops دور یا ارسال ICMP "زمان بیش از" پیام ارسال نمی کند و یا آنها را با TTL بسیار کوچک برای رسیدن به ما. 14 - 17 کد MIT C Gateway را اجرا می کنند که "زمان تجاوز" را ارسال نمی کند. خدا تنها می داند چه اتفاقی دارد با 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 مگابایت 39 مگابایت 19 مگابایت 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 مگابایت 40 مگابایت 19 مگابایت 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 مگابایت 39 مگابایتی 39 مگابایت 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 هفتهای دور است. پاسخی که با TTL 1 باز می شود یک سرنخ این مشکل وجود دارد. Traceroute یک "!" را چاپ می کند پس از زمان، اگر TTL <= 1. از آنجا که فروشندگان بسیاری از منسوخ (DEC Ultrix، Sun 3.x) یا نرم افزار غیر استاندارد (HPUX) حمل می کنند، انتظار دارند که این مشکل را اغلب ببینند و یا مراقبت از هدف را انجام دهند میزبان پروب های شما

دیگر نکات احتمالی پس از زمان H ،! N ، یا ! P (میزبان، شبکه یا پروتکل غیر قابل دسترس) !! S (مسیر منبع شکست خورده)،! F- (تقسیم مورد نیاز - RFC1191 مسیر MTU Discovery نمایش داده می شود)، ! X (ارتباطات به طور مدیریتی ممنوع است) ،! V (نقض اولویت میزبان)،! C (جلوگیری از قطع در اثر)، یا ! (کد غیر قابل دسترسی ICMP). اینها توسط RFC1812 (که RFC1716 جایگزین شده است) تعریف شده است. اگر تقریبا تمام پروب ها به نوعی قابل دسترسی نباشند، traceroute از بین می رود و خارج می شود.

این برنامه برای استفاده در آزمایش، اندازه گیری و مدیریت شبکه در نظر گرفته شده است. این باید در درجه اول برای جداسازی خطا استفاده شود. از آنجا که بار آن می تواند بر روی شبکه تحمیل، استفاده از traceroute در عملیات نرمال و یا از اسکریپت های اتوماتیک غیرممکن است.

همچنین نگاه کنید

pathchar (8)، netstat (1)، پینگ (8)