MTR(8) مدیریت سیستم MTR(8)

mtr - ابزار جامع عیب‌یابی و ردیابی مسیر شبکه (تلفیق traceroute و ping)

mtr [-4|-6] [-F FILENAME] [--report] [--report-wide] [--xml] [--gtk] [--curses] [--displaymode MODE] [--raw] [--csv] [--json] [--split] [--no-dns] [--show-ips] [-o FIELDS] [-y IPINFO] [--aslookup] [--ipinfo_provider4 DOMAIN] [--ipinfo_provider6 DOMAIN] [-i INTERVAL] [-c COUNT] [-s PACKETSIZE] [-B BITPATTERN] [-G GRACEPERIOD] [-Q TOS] [--mpls] [-I NAME] [-a ADDRESS] [-f FIRST-TTL] [-m MAX-TTL] [-U MAX-UNKNOWN] [-E MAX-DISPLAY-PATH] [--udp] [--tcp] [--sctp] [-P PORT] [-L LOCALPORT] [-Z TIMEOUT] [-M MARK] HOSTNAME

mtr قابلیت‌های برنامه‌های traceroute و ping را در یک ابزار واحد عیب‌یابی شبکه تلفیق می‌کند.

هنگامی که mtr شروع به کار می‌کند، با ارسال بسته‌هایی با TTL (زمان حیات) عمدتاً پایین، ارتباط شبکه‌ای میان میزبانی که mtr روی آن اجرا می‌شود و HOSTNAME را بررسی می‌نماید. این ابزار به ارسال بسته‌ها با TTL پایین ادامه داده و زمان پاسخگویی مسیریاب‌های واسط را ثبت می‌کند. این سازوکار به mtr امکان می‌دهد تا درصد پاسخگویی و زمان‌های پاسخ مسیر اینترنتی به HOSTNAME را چاپ کند. افزایش ناگهانی در افت بسته (packet loss) یا زمان پاسخگویی اغلب نشان‌دهنده یک پیوند ارتباطی نامناسب (یا صرفاً بارگذاری بیش‌ازحد) است.

نتایج معمولاً به‌صورت زمان‌های پاسخ رفت‌وبرگشت (RTT) بر حسب میلی‌ثانیه و درصد بسته‌های گم‌شده (افت بسته) گزارش می‌شوند.

چاپ خلاصه‌ای از گزینه‌ها و شناسه‌های خط فرمان.
چاپ نسخه نصب‌شده mtr.
-4
استفاده انحصاری از IPv4.
-6
استفاده انحصاری از IPv6 (ممکن است برای پرس‌وجوهای DNS همچنان از IPv4 استفاده شود).
خواندن فهرست نام‌های میزبان از فایل مشخص‌شده.
این گزینه mtr را در حالت گزارش‌گیری (report) قرار می‌دهد. در این حالت، mtr به تعداد چرخه‌های مشخص‌شده توسط گزینه -c اجرا می‌شود و سپس آمار را چاپ کرده و خارج می‌گردد.
این حالت برای تولید آمار درباره کیفیت شبکه مفید است. توجه داشته باشید که هر نمونه در حال اجرای mtr حجم قابل‌توجهی از ترافیک شبکه ایجاد می‌کند. استفاده از mtr برای سنجش کیفیت شبکه ممکن است باعث کاهش عملکرد شبکه شود.
این گزینه mtr را در حالت گزارش عریض (wide report) قرار می‌دهد. در این حالت، mtr نام میزبان‌ها را در گزارش کوتاه یا قطع نمی‌کند.
استفاده از این گزینه به mtr می‌گوید که از قالب خروجی XML استفاده کند. این قالب برای پردازش خودکار نتایج اندازه‌گیری مناسب‌تر است.
استفاده از این گزینه mtr را مجبور می‌کند تا از رابط ترمینالی مبتنی بر curses استفاده کند (در صورت در دسترس بودن). در صورتی که تعداد گام‌ها (hops) از ارتفاع ترمینال شما بیشتر شود، می‌توانید از کلیدهای + و - برای پیمایش نیم‌صفحه‌ای به بالا و پایین استفاده کنید.

کلید ترکیبی Ctrl-L پیام‌های خطای کاذب که ممکن است بخش‌های دیگر صفحه نمایش را بپوشانند پاک می‌کند.

انتخاب حالت نمایش اولیه: مقدار 0 (پیش‌فرض) حالت آمار را انتخاب می‌کند، مقدار 1 نمودار نواری (stripchart) بدون اطلاعات تأخیر را انتخاب می‌کند و مقدار 2 نمودار نواری همراه با اطلاعات تأخیر را انتخاب می‌نماید.
استفاده از این گزینه mtr را مجبور می‌کند تا از رابط پنجره‌ای X11 مبتنی بر +GTK استفاده کند (در صورت در دسترس بودن). برای کارکرد این قابلیت، +GTK باید در زمان کامپایل و ساخت mtr روی سیستم موجود بوده باشد. برای اطلاعات بیشتر درباره +GTK به وب‌سایت آن در https://www.gtk.org مراجعه کنید.
استفاده از قالب خروجی خام (raw). این قالب برای بایگانی نتایج اندازه‌گیری مناسب‌تر است و می‌توان آن را برای نمایش در هر یک از روش‌های دیگر تحلیل و پارس کرد.
نمونه‌ای از قالب خروجی خام:
h 0 10.1.1.1
p 0 339
h 1 46.149.16.4
p 1 530
h 2 172.31.1.16
p 2 531
h 3 82.221.168.236
p 3 1523
h 5 195.130.211.8
p 5 1603
h 6 193.4.58.17
p 6 1127
h 7 193.4.58.17
d 7 www.isnic.is
استفاده از قالب خروجی مقادیر جداشده با کاما (CSV). (نکته: جداکننده در واقع نقطه-ویرگول ';' است).
نمونه‌ای از قالب خروجی CSV:
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;1;r-76520-PROD.greenqloud.internal;288
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;2;46.149.16.4;2086
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;3;172.31.1.16;600
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;4;82.221.168.236;1163
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;5;???;0
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;6;rix-k2-gw.isnic.is;1654
MTR.0.86+git:16e39fc0;1435562787;OK;nic.is;7;www.isnic.is;1036
استفاده از این گزینه به mtr می‌گوید که از قالب خروجی JSON استفاده کند. این قالب برای پردازش خودکار نتایج اندازه‌گیری مناسب‌تر است. برای کارکرد این قابلیت، کتابخانه Jansson باید در زمان ساخت mtr روی سیستم موجود بوده باشد.
تنظیم mtr برای ارائه خروجی در قالبی که برای یک رابط کاربری تفکیک‌شده (split-user interface) مناسب است.
این گزینه mtr را مجبور می‌کند تا فقط نشانی‌های عددی IP را نمایش دهد و تلاشی برای حل نام‌های میزبان (DNS resolution) انجام ندهد.
این گزینه به mtr می‌گوید که هم نام‌های میزبان و هم نشانی‌های عددی IP را نمایش دهد. در حالت تفکیک‌شده (split) این گزینه یک فیلد اضافی به خروجی می‌افزاید. در حالت گزارش‌گیری (report)، معمولاً فضای کافی برای افزودن IPها وجود ندارد و آن‌ها کوتاه می‌شوند. در حالت گزارش‌گیری، برای دیدن نشانی‌های IP از حالت گزارش عریض (-w) استفاده کنید.
مشخص کردن این‌که کدام فیلدها و با چه ترتیبی نمایش داده شوند. می‌توانید از یک یا چند نویسه فاصله برای جداسازی فیلدها استفاده کنید.
فیلدهای موجود:
L نسبت افت بسته (Loss ratio)
D بسته‌های از دست رفته (Dropped packets)
R بسته‌های دریافت شده (Received packets)
S بسته‌های ارسال شده (Sent Packets)
N جدیدترین RTT بر حسب میلی‌ثانیه (Newest RTT)
B حداقل / بهترین RTT بر حسب میلی‌ثانیه (Min/Best RTT)
A میانگین RTT بر حسب میلی‌ثانیه (Average RTT)
W حداکثر / بدترین RTT بر حسب میلی‌ثانیه (Max/Worst RTT)
V انحراف معیار (Standard Deviation)
G میانگین هندسی (Geometric Mean)
J ژیتر فعلی (Current Jitter)
M میانگین ژیتر (Jitter Mean/Avg.)
X بدترین ژیتر (Worst Jitter)
I ژیتر بین زمان ورود بسته‌ها (Interarrival Jitter)

مثال:

-o "LSD NBAW  X"
نمایش اطلاعات درباره هر گام (hop) شبکه IP. مقادیر معتبر برای n عبارتند از:
0 نمایش شماره سامانه خودمختار (AS) (معادل -z)
1 نمایش پیشوند IP
2 نمایش کد کشور مربوط به AS مبدا
3 نمایش ثبت‌کننده منطقه‌ای اینترنت یا RIR (مانند ripencc، arin، ...)
4 نمایش تاریخ تخصیص پیشوند IP

امکان جابه‌جایی چرخشی میان این فیلدها در زمان اجرا (با استفاده از کلید y) وجود دارد.

نمایش شماره سامانه خودمختار (AS) در کنار هر گام. معادل با --ipinfo 0.
مثال (ستون‌های سمت راست برای وضوح بیشتر حذف شده‌اند):
1. AS???   r-76520-PROD.greenqloud.internal
2. AS51969 46.149.16.4
3. AS???   172.31.1.16
4. AS30818 82.221.168.236
5. ???
6. AS???   rix-k2-gw.isnic.is
7. AS1850  www.isnic.is
سرویس‌دهنده برای جستجوی سامانه خودمختار (AS) در IPv4. مقدار پیش‌فرض origin.asn.cymru.com است.
سرویس‌دهنده برای جستجوی سامانه خودمختار (AS) در IPv6. مقدار پیش‌فرض origin6.asn.cymru.com است.
مشخص کردن تعداد ثانیه‌های مثبت بین درخواست‌های ICMP ECHO. مقدار پیش‌فرض این پارامتر یک ثانیه است. کاربر ارشد (root) می‌تواند مقادیری بین صفر و یک را نیز انتخاب کند.
تعیین تعداد پینگ‌های ارسالی برای شناسایی دستگاه‌های موجود در شبکه و میزان پایداری و قابلیت اطمینان آن‌ها. هر چرخه یک ثانیه طول می‌کشد.
این گزینه اندازه بسته مورد استفاده برای کاوش را مشخص می‌کند (بر حسب بایت، شامل سرآیندهای IP و ICMP).

اگر روی یک عدد منفی تنظیم شود، در هر تکرار از یک اندازه بسته تصادفی و متفاوت تا سقف آن مقدار استفاده خواهد شد.

الگوی بیتی مورد استفاده در بار داده (payload) را مشخص می‌کند. باید در محدوده 0 تا 255 باشد. اگر NUM بزرگتر از 255 باشد، از یک الگوی تصادفی استفاده می‌شود.
مشخص کردن تعداد ثانیه‌های مثبت برای انتظار دریافت پاسخ پس از ارسال آخرین درخواست. مقدار پیش‌فرض پنج ثانیه است.
مقدار فیلد نوع سرویس (Type of Service یا TOS) را در سرآیند IP مشخص می‌کند. باید در محدوده 0 تا 255 باشد.
این گزینه به mtr می‌گوید که اطلاعات مربوط به افزونه‌های ICMP برای MPLS (استاندارد RFC 4950) را که در بسته‌های پاسخ کدگذاری شده‌اند، نمایش دهد.
استفاده از رابط شبکه با نام مشخص برای ارسال کاوش‌های شبکه. این گزینه زمانی مفید است که چندین رابط شبکه با مسیرهای منتهی به مقصد داشته باشید (برای مثال هم اترنت سیمی و هم وای‌فای) و بخواهید یک رابط خاص را آزمایش کنید.
اتصال سوکت خروجی به ADDRESS، به‌طوری‌که تمام بسته‌ها با ADDRESS به‌عنوان نشانی مبدا ارسال شوند. توجه داشته باشید که این گزینه برای درخواست‌های DNS اعمال نمی‌شود (که ممکن است مطابق میل شما باشد یا نباشد).
مشخص می‌کند که کاوش با چه مقدار TTL (زمان حیات) آغاز شود. مقدار پیش‌فرض 1 است.
حداکثر تعداد گام‌ها (حداکثر مقدار زمان حیات یا TTL) که ردیابی مسیر کاوش خواهد کرد را مشخص می‌کند. مقدار پیش‌فرض 30 است.
حداکثر تعداد میزبان‌های ناشناخته متوالی را مشخص می‌کند. مقدار پیش‌فرض 5 است.
حداکثر تعداد مسیرهای ECMP (چندمسیره با هزینه برابر) را برای نمایش مشخص می‌کند. مقدار پیش‌فرض 8 است.
استفاده از دیتاگرام‌های UDP به‌جای درخواست‌های ICMP ECHO.
استفاده از بسته‌های TCP SYN به‌جای ICMP ECHO. شناسه PACKETSIZE نادیده گرفته می‌شود زیرا بسته‌های SYN نمی‌توانند حاوی داده باشند.
استفاده از بسته‌های پروتکل انتقال کنترل جریان (SCTP) به‌جای ICMP ECHO.
شماره پورت مقصد برای ردیابی‌های TCP/SCTP/UDP.
شماره پورت مبدا برای ردیابی‌های UDP.
تعداد ثانیه‌هایی که سوکت‌های کاوشگر پیش از انصراف از اتصال باز نگه داشته می‌شوند. استفاده از مقادیر بزرگ برای این گزینه، به‌ویژه در ترکیب با فواصل زمانی کوتاه، تعداد زیادی توصیف‌کننده فایل (file descriptor) را مصرف خواهد کرد.
تنظیم علامت (mark) برای هر بسته ارسالی از طریق این سوکت، مشابه هدف MARK در netfilter ولی به‌صورت مبتنی بر سوکت. MARK یک عدد صحیح ۳۲ بیتی بدون علامت است. برای توضیحات کامل درباره این گزینه سوکت به socket(7) مراجعه کنید.

برنامه mtr چند متغیر محیطی را شناسایی می‌کند.

این متغیر محیطی امکان مشخص کردن گزینه‌ها را به همان صورت که در خط فرمان وارد می‌شوند فراهم می‌کند. این متغیر پیش از خواندن گزینه‌های واقعی خط فرمان پردازش می‌شود، بنابراین گزینه‌های مشخص‌شده در MTR_OPTIONS توسط گزینه‌های خط فرمان بازنویسی و جایگزین می‌شوند.
مثال:
MTR_OPTIONS="-4 -c 1" mtr -6 localhost
یک کاوش (به دلیل -c 1) به سمت ::1 (به دلیل -6 که بر -4 تعیین‌شده در MTR_OPTIONS اولویت دارد) ارسال خواهد کرد.
مسیری به فایل اجرایی mtr-packet، جهت استفاده برای ارسال و دریافت کاوش‌های شبکه. اگر MTR_PACKET تنظیم نشده باشد، از متغیر PATH برای یافتن فایل اجرایی mtr-packet استفاده خواهد شد.
یک سرور X11 را برای رابط کاربری گرافیکی +GTK مشخص می‌کند.

mtr را می‌توان در حین اجرا با استفاده از کلیدهای زیر کنترل کرد:

?|h     راهنما
p       توقف موقت (مکث) (کلید فاصله برای ادامه)
d       تغییر حالت نمایش
e       فعال/غیرفعال کردن نمایش اطلاعات MPLS
n       فعال/غیرفعال کردن DNS
r       بازنشانی تمامی شمارنده‌ها
o str   تنظیم ستون‌های نمایشی، پیش‌فرض str='LRS N BAWV'
j       تغییر حالت آمار تأخیر (LS NABWV) / ژیتر (DR AGJMXI)
c <n>   تعداد چرخه گزارش n، پیش‌فرض n=بی‌نهایت
i <n>   تنظیم بازه پینگ روی n ثانیه، پیش‌فرض n=1
f <n>   تنظیم زمان حیات (TTL) اولیه، پیش‌فرض n=1
m <n>   تنظیم حداکثر زمان حیات، پیش‌فرض n=تعداد گام‌ها
s <n>   تنظیم اندازه بسته به n یا تصادفی (n<0)
b <c>   تنظیم الگوی بیتی پینگ روی c(0..255) یا تصادفی (c<0)
Q <t>   تنظیم TOS بسته پینگ روی t
u       جابه‌جایی بین دیتاگرام‌های ICMP ECHO و UDP
y       تغییر اطلاعات IP
z       فعال/غیرفعال کردن اطلاعات سامانه خودمختار (ASN)
q       خروج

برخی از مسیریاب‌های مدرن اولویت کمتری برای بسته‌های ICMP ECHO نسبت به سایر ترافیک‌های شبکه قائل می‌شوند. در نتیجه، پایداری و قابلیت اطمینان این مسیریاب‌ها که توسط mtr گزارش می‌شود، به‌طور چشمگیری کمتر از قابلیت اطمینان واقعی آن‌ها خواهد بود.

برای دریافت جدیدترین نسخه، به صفحه وب mtr مراجعه کنید: http://www.bitwizard.nl/mtr

جهت ارسال وصله‌ها (patches)، گزارش باگ‌ها یا درخواست قابلیت‌های جدید، لطفاً یک Issue در گیت‌هاب ایجاد کنید: https://github.com/traviscross/mtr

mtr-packet(8), traceroute(8), ping(8), socket(7), TCP/IP Illustrated (Stevens, ISBN 0201633469).

0.96 mtr