ابزارهای کوچک زیادی در حوزه شبکه وجود دارد که از جمله میتوانیم به Ping، Traceroute، Dig و Host اشاره کنیم. اما معمولا خیلی کم پیش میآید که یکی از این ابزارهای کوچک خط فرمان، عملکرد دو مورد را به صورت ترکیبی ارائه دهد. اجرای دستور MTR چنین امکانی را در اختیارتان قرار میدهد. دستور MTR ترکیبی از دو دستور Ping و Traceroute است.
دستور MTR چیست؟
MTR یا Matt’s traceroute یک برنامه با رابط خط فرمان است که برای تشخیص و عیبیابی شبکه استفاده میشود. کد اصلی در سال 1997 توسط مت کیمبال ایجاد شد و یکسال بعد راجر وولف کار را ادامه و نام آن را به My traceroute تغییر داد.
مزیت این برنامه این است که ترکیبی از عملکرد دو دستور Ping و Traceroute را ارائه میدهد. درست مانند یک کوئری Traceroute معمولی، یک کوئری از دستور MTR مسیر را از یک کامپیوتر به یک میزبان مشخص نشان میدهد.
این ویژگی در مقایسه با روش سنتی مزیت دارد و آمارهای زیادی را در مورد هر هاپ یا جهش (Hop) مانند زمان و درصد ارائه میدهد.
بنابراین، با استفاده از اجرای دستور MTR اطلاعات بیشتری در مورد مسیر به دست خواهید آورد و دستگاههای مشکلدار در مسیر را مشاهده میکنید. اگر افزایش ناگهانی در زمان پاسخگویی یا از دست دادن بستهها را مشاهده کردید، مسیر دارای یک لینک بد است.
به طور خلاصه، دستور MTR در موراد زیر به کمک شما میآید:
- بررسی اتصال: اتصال از کامپیوتر را با دستور به یک مقصد بررسی کنید.
- مشاهده از دست دادن بسته: این موضوع کیفیت اتصال بین نقاط را نشان میدهد.
- زمان رفت و برگشت: شما میتوانید زمان دقیق رسیدن بستهها را به مقصد ببینید و گزارش ارائه دهید.
دستور MTR در سیستمهای عامل مبتنی بر یونیکس مانند لینوکس (Ubuntu، CentOS، Fedora و غیره)، macOS و FreeBSD در دسترس است. نسخهای از MTR برای ویندوز نیز وجود دارد که میتوان در سرور مجازی ویندوز از آن استفاده کرد اما عملکرد محدودتری را ارائه میدهد. همچنین برای ویندوز نسخه WinMTR در دسترس است که کد آن متفاوت است.
در ادامه توضیح میدهیم که نحوه اجرای دستور MTR در ویندوز و لینوکس و مک چگونه است.
استفاده از دستور MTR در لینوکس یا FreeBSD
برای این کار شما به امتیازات ادمین (sudo) در لینوکس و FreeBSD نیاز دارید.
- ابتدا باید برنامه ترمینال را باز کنید.
- برای دریافت دستور MTR در لینوکس باید آن را با دستور « sudo apt-get install mtr» در توزیع اوبونتو یا دبیان، دستور «sudo yum install mtr» در فدورا و CentOS یا «sudo pkg iWnstall package_name» در FreeBSD نصب کنید.
- از دستور « mtr -rw [destination_host]» برای اطلاعات اولیه استفاده کنید یا برای انجام کارهای پیشرفتهتر، سینتکس و مثالهای زیر را بررسی کنید. توجه کنید که بخش destination_host را باید به مورد دلخواه خود تغییر دهید. به مدت 10 تا 15 دقیقه از آن استفاده کنید.
استفاده از دستور MTR در macOS
برای این کار شما به امتیازات ادمین (sudo) در سیستمعامل مک نیاز دارید. دستور از پیش نصب شده است، بنابراین ابتدا باید آن را نصب کنید.
- برای نصب به Brew نیاز دارید. به سایت Brew بروید و در آنجا زبان دلخواهتان را انتخاب کنید.
- در زیر این بخش، یک دستور متنی را مشاهده میکنید. این دستور را کپی کنید.
- در کامپیوتر مک خود به بخش Applications و سپس Utilities بروید و در آنجا برنامه Terminal را باز کنید.
- در داخل ترمینال متن کپیشده را Paste کنید و سپس Enter را فشار دهید.
- پیامی ظاهر میشود تا رمزعبور خود را وارد کنید. این کار را انجام داده و سپس Enter را فشار دهید.
- پس از نصب Brew باید یک دستور جدید بنویسید: «brew install mtr» و سپس Enter را فشار دهید.
- هنگامی که MTR نصب شد، میتوانید آن را با دستور « sudo mtr» و فشردن دکمه Enter اجرا کنید. از کد «mtr -rw [destination_host]» برای انجام یک بررسی اولیه استفاده کنید. توجه کنید که بخش destination_host را باید به مورد دلخواه خود تغییر دهید. آن را به مدت 10 تا 15 دقیقه اجرا کنید.
اکنون موفق شدید اجرای دستور MTR در مک را انجام دهید. برای یادگیری نحوه انجام کارهای پیچیدهتر، سینتکس زیر و مثالها را ببینید.
استفاده از دستور MTR در ویندوز
- ابتدا باید برنامه WinMTR را از گیت هاب دانلود کنید.
- فایلی به نام WinMTR-v100-static.zip را دریافت کرده و آن را از حالت فشرده خارج کنید. این فایل حاوی دو نسخه WinMTR.exe (32bit) و WinMTR64.exe است.
- بسته به نسخه ویندوز خود، مورد مناسب را انتخاب کرده و دوبار روی آن کلیک کنید.
- میزبان موردنظر را در کادر Host قرار دهید. اگر به گزینههای اضافی نیاز دارید، میتوانید آنها را در بخش Options ببینید.
- دکمه Start را فشار داده و برای مدتی (10 الی 15 دقیقه) آن را اجرا کنید.
زمانی که فکر میکنید اطلاعات کافی را به دست آوردهاید اجرای آن را متوقف کنید. میتوانید متن را کپی کرده و در یک فایل متنی ذخیره کنید.
مزایای استفاده از دستور MTR
دستور MTR لینوکس طیف وسیعی از مزایا را در مدیریت و عیبیابی شبکهها ارائه میدهد که در ادامه برخی از آنها را بررسی میکنیم.
اول، به تعیین دقیق محل مشکلات شبکه کمک میکند. با اجرای دستور MTR در لینوکس کاربر میتواند میزبان یا روتر را در مسیر معینی که مشکلساز است شناسایی کند و پیدا کردن منبع مشکل و حل سریع آن با کمترین اختلال را تسهیل میکند.
مزیت دوم همهکاره بودن این دستور است که قابلیت استفاده برای کاربردهای مختلف را فراهم میکند. نه تنها میتوان از این دستور برای اهداف عیبیابی استفاده کرد، بلکه میتواند برای نظارت و بهینهسازی عملکرد در سطح بالا نیز استفاده شود. این موضوع به ویژه برای مدیرانی مفید است که باید سلامت کلی شبکههای خود را زیرنظر داشته باشند.
مزیت سوم راهاندازی و نحوه استفاده بسیار آسان دستور MTR است. MTR نسبتا یکی از آسانترین دستورات لینوکس است و کاربر میتواند خیلی سریع و بدون صرف زمان و تلاش زیاد برای تنظیم یا پیکربندی دستور، جمعآوری اطلاعات ارزشمند را شروع کند. علاوهبراین، پس از راهاندازی، این دستور به تعمیر و نگهداری حداقلی نیاز دارد و برای فرایندهای خودکار و کاربردهای نظارت طولانیمدت مناسب است.
دستور MTR و لیست گزینهها
برای اجرای دستور MTR در سیستمعامل یک سرور مجازی لینوکس باید از این دستور استفاده کنید:
mtr [-hvrctglspni46] [–help] [–version] [–report] [–report-cycles COUNT] [–curses] [–split] [–raw] [–no-dns] [–gtk] [–address IP.ADD.RE.SS [–interval SECONDS] [–psize BYTES | -s BYTES] HOSTNAME [PACKETSIZE]
در زیر شما میتوانید تمام گزینههای موجود برای دستور MTR در لینوکس را ببینید:
گزینه | توضیحات |
-h–help | نمایش تمام گزینههای موجود |
-v–version | نسخه دستور MTR را نمایش میدهد |
-r–report | این حالت گزارش را آغاز میکند. در این حالت، تعداد دفعات مشخصشده توسط بخش «c–» اجرا شده و در پایان آمار را نشان میدهد. |
-w–report-wide | حالت گزارش گسترده که تفاوت آن با قبلی این است که نام میزبان را در گزارش درج میکند. |
-c COUNT–report-cycles COUNT | تعداد پینگها را مشخص میکند. |
-s BYTES–psize BYTES PACKETSIZE | اندازه بستهها را تنظیم کنید. اگر روی عدد منفی تنظیم شود، بستههایی با اندازه تصادفی را ارسال میکند. |
-t–curses | رابط ترمینال مبتنی بر curses |
-n–no-dns | نمایش اعداد IP عددی و بدون تفسیر نام میزبان |
-g–gtk | رابط اجباری +GTK |
-p–split | دستور MTR را برای رابط کاربری split-user تنظیم میکند. |
-l–raw | با حرف L میتوانید استفاده از فرمت خروجی Raw را تنظیم کنید. |
-a IP.ADD.RE.SS–address IP.ADD.RE.SS | سوکت بستههای خروجی را به یک رابط خاص وارد میکند. |
-i SECONDS–interval SECONDS | زمان بین هر درخواست ICMP ECHO را برحسب ثانیه تنظیم میکند. |
-u | اجبار استفاده از UDP به جای ICMP ECHO |
-4 | اجبار به استفاده از IPv4 |
-6 | اجبار به استفاده از IPv6 |
نمونههایی از اجرای دستور MTR
در این بخش چندین مثال از دستور MTR و نحوه استفاده از آن در لینوکس را به شما نشان خواهیم داد. وقتی از سیستمعامل macOS یا FreeBSD استفاده میکنید، باز هم میتوانید از این مثالها استفاده کنید اما ممکن است تفاوتهای جزئی وجود داشته باشد. ما برای نام میزبان از Google.com و چند آدرس IP عمومی استفاده کردیم. شما میتوانید این اطلاعات را تغییر دهید و از موارد اختصاصی خود استفاده کنید.
دستور ساده mtr
$ mtr google.com
این دستور آمار اولیه را به شما نشان میدهد: هر هاپ (نام میزبان) با زمان و درصد از دست دادن.
نمایش آدرسهای IP عددی
$ mtr -g google.com
اگر از فلگ «-g» استفاده میکنید، به جای نام میزبان، آدرسهای IP (اعداد) را دریافت خواهید کرد. میتوانید از آدرسهای IP در کنار ابزار دیگری برای تشخیص بیشتر استفاده کنید.
نمایش آدرسهای IP عددی و نام میزبان
$ mtr -b google.com
اکنون هر دو نام میزبان و آدرس IP را مشاهده خواهید کرد. آدرسها داخل پرانتز قرار میگیرند.
تنظیم تعداد پینگهایی را که میخواهید ارسال کنید
$ mtr -c 10 google.com
در این حالت شما تعداد پینگهایی را که میخواهید ارسال کنید (در این مثال 10 مورد) تنظیم میکنید. میتوانید آن را روی یک عدد بزرگ مانند 1000 تنظیم کنید تا نام میزبان را برای مدت طولانیتری بررسی کنید و ایده بهتری از اتصال به دست آورید.
دریافت گزارش از نتیجه دستور MTR
$ mtr -r -c 10 google.com >mtr-command-google
یا
$ mtr -rw -c 10 google.com >mtr-command-google
ما این کار را با فلگ «-r» انجام میدهیم. در اینجا تعداد پینگها را برابر با 10 قرار دادهایم و قسمت آخر یعنی «mtr-command-google» نامی است که میتوانید به دلخواه خود تغییر دهید.
هنگامی که از فلگ «-rw» استفاده میکنید، میتوانید گزارش تمیزتری دریافت کنید که خوانایی بهتری دارد.
تنظیم مجدد فرمت گزارش
$ mtr -o “LSDR NBAW JMXI” google.com
فلگ «-o» برای خروجی است. با این کد میتوانید فرمت گزارش را تغییر دهید تا اطلاعات به روشی که دوست دارید نمایش داده شود.
فواصل زمانی بین درخواستهای ICMP ECHO requests
$ mtr -i 10 google.com
با فلگ «-c» تعداد پینگها را تنظیم میکنیم. با فلگ «-i» فاصله زمانی بین پینگهای ICMP ECHO را تنظیم میکنیم.
استفاده اجباری از TCP
$mtr –tcp google.com
استفاده از TCP به جای ICMP را اجباری کنید.
استفاده اجباری از UDP
$mtr –udp google.com
استفاده از UDP به جای ICMP را اجباری کنید.
تنظیم حداکثر مقدار جهش (Hop)
$mtr -m 35 216.58.223.78
ما از فلگ «-m» و مقدار 35 برای یک آدرس IP خاص استفاده خواهیم کرد. اگر کوئری در مسیر Hopهای بیشتری انجام داد، میتوانید آن را به مقدار بالاتری تغییر دهید.
تعریف اندازه بسته
$mtr -r -s 50 google.com
شما میتوانید اندازه بسته خاصی را برای پینگها تعیین کنید. در این مثال از اجرای دستور MTR ما از 50 بایت استفاده کردیم.
چاپ در خروجی CSV
$mtr –csv google.com
اگر قالب CSV برای شما بهتر از گزارش معمولی کار میکند، میتوانید از آن استفاده کنید.
چاپ در خروجی XML
$mtr –xml google.com
اگر قالب XML برای شما بهتر از گزارش معمولی کار میکند، از آن استفاده کنید.
$man mtr
یا
$ mtr –help
این دو دستور میتوانند اطلاعات بیشتری در مورد دستور MTR و نحوه استفاده از آن به شما ارائه دهند.
دستور MTR و Traceroute، Ping، Nslookup، Host، Dig
MTR یک دستور نظارت و عیبیابی شبکه قدرتمند و در عین حال همهکاره است و در ترکیب با ابزارهای Host، Nslookup، Ping، Traceroute و Dig میتوانید یک نمای کلی از شبکه خود را ببینید. بیایید به صورت دقیقتری به این ابزارها نگاه کنیم:
دستور traceroute یک ابزار ارزشمند برای اندازهگیری تاخیر بین دو نقطه در یک شبکه است. با اجرای یک Traceroute، کاربر میتواند تمام هاپهای (Hop) بین دو سیستم را مشاهده کند و به سرعت مشکلات شبکه مانند از دست دادن بستهها یا سرعت پایین را شناسایی کند.
برای اندازهگیری اولیهی بار، معمولا از دستور Ping استفاده میشود. با آموزش Ping گرفتن میتوانید تاخیر، از دست دادن بستهها و سایر معیارها را بین دو دستگاه در شبکه اندازهگیری کنید. پینگ یک ابزار ساده است که درک و استفاده از آن آسان است و آن را به یک انتخاب محبوب برای کسانی تبدیل میکند که تازه با نظارت بر شبکه شروع کردهاند.
دستور nslookup (مخفف شده از name server look-up) به کاربران اجازه میدهد تا سرورهای نام دامنه را از رابط خط فرمان کوئری کنند. این دستور را میتوان برای کوئری از یک سرور DNS برای نام دامنه یا آدرس IP خاص، به دست آوردن اطلاعات در مورد رکورد مرتبط و سوابق DNS زیرین استفاده کرد. nslookup یک ابزار مفید برای عیبیابی مشکلات Name Resolution و تایید نتایج یک کوئری Name Resolution دیگر است.
دستور host جایگزینی برای nslookup است که ویژگیهای پیشرفتهای مانند بازگشت و کنترل سطح پایین بر فرایند کوئری را ارائه میدهد. این ویژگیها به کاربران اجازه میدهد تا عملیات کوئری DNS را به صورت انبوه انجام دهند و همچنین در یک دستور از سرور DNS برای چندین رکورد کوئری بگیرند. این دستور کنترل بیشتری بر کل فرایند Name Resolution نسبت به nslookup فراهم میکند و یک ابزار عیبیابی ارزشمند برای مسائل پیچیدهتر در عملیات Name Resolution است.
دستور dig (مخفف عبارت Domain Information Groper) یک ابزار قوی عیبیابی DNS است که ویژگیها و تنظیمات مختلفی را برای پیکربندی و بهینهسازی کوئریهای DNS ارائه میدهد. برخلاف nslookup و dig، دستور host به کاربران اجازه میدهد تا درخواستهای عددی ارسال کنند که این ویژگی به آنها کنترل بیشتری بر رفتار کوئریهای DNS میدهد.
همچنین کاربران میتوانند اطلاعات دقیقی در مورد نتایج کوئریهای خود به دست میآورند و به همین دلیل، دستور dig به انتخابی عالی برای کاربران باتجربهتر که به دنبال تجزیهوتحلیل عمیق رکوردهای DNS هستند تبدیل شده است.
نگرانیهای امنیتی در خصوص دستور MTR
دستور MTR لینوکس طیف وسیعی از مزایا را برای مدیریت و عیبیابی شبکهها ارائه میدهد، اما مهم است که پیامدهای امنیتی استفاده از آن را هم در نظر بگیرید. در اینجا به برخی از رایجترین نگرانیهای امنیتی پیرامون اجرای دستور MTR اشاره میکنیم.
اول اینکه دستورات MTR به طور بالقوه میتوانند اطلاعات خصوصی را آشکار کنند. به عنوان مثال، این دستور ممکن است سیستمعامل در حال اجرا بر روی یک دستگاه ریموت یا مسیر دقیق شبکه بین دو کامپیوتر را آشکار سازد. این موضوع میتواند حملات و نقض دادهها را تسهیل کند، زیرا عوامل مخرب میتوانند از این اطلاعات برای انجام حملات هدفمندتر استفاده کنند.
چالش دوم در خصوص دستورات MTR این است که میتوانند برای شروع حملات (DoS) یا (DDoS) به کار بروند. به عنوان مثال، یک کاربر با نیتهای بد میتواند چندین درخواست MTR را به یک سرور معین ارسال کند تا آن را با انبوهی از درخواستها غرق کرده و یک رخداد DoS ایجاد کند.
در نهایت، دستورات MTR را میتوان در شبکهها مستقر کرد تا دسترسی غیرمجاز به دست آورد. با اجرای دستورات MTR، یک کاربر مخبر ممکن است بتواند آسیبپذیریها را در پیکربندیهای شبکه کشف کرده و به دادههای حساس دسترسی پیدا کند. هرگونه دسترسی غیرمجاز به سیستمهای شبکه باید در اسرع وقت مسدود و گزارش شود.
بهترین روشها هنگام استفاده از دستور MTR
به منظور حصول اطمینان از اینکه دستور MTR با حداکثر پتانسیل خود عمل میکند، توصیه میشود از بهترین روشهایی پیروی کنید که میتواند به حداکثر رساندن اثربخشی آن کمک کند. این شیوهها میتوانند به شما کمک کنند تا مطمئن شوید که دستور MTR به طور موثر و دقیق به شما خدمت میکند و اطلاعاتی را که برای عیبیابی موثر مشکلات شبکه نیاز دارید در اختیار شما قرار میدهد.
- انتخاب میزبانهای مقصد: میزبانهای مقصد را به صورت استراتژیک انتخاب کنید تا بخشهای خاصی از شبکه یا اندپوینتهای مرتبط با یک موضوع را تشخیص دهید.
- تفسیر نتایج: با در نظر گرفتن عواملی مانند توپولوژی شبکه، فاصله و زمان، اهمیت از دست دادن بستهها و مقادر تاخیر را درک کنید.
- تجزیهوتحلیل مقایسهای: خروجیهای MTR را از دورههای زماین مختلف یا تحت شرایط شبکههای مختلف برای شناسایی الگوها و روندها مقایسه کنید.
- همکاری: هنگام درخواست کمک یا عیبیابی مشکلات شبکه به طور مشترک، گزارشهای MTR را با همتایان شبکه یا ISPها به اشتراک بگذارید.
- امنیت: هنگام اشتراکگذاری Traceهای شبکه از اهمیت حریم خصوصی و امنیت آگاه باشید، به خصوص اگر حاوی اطلاعات حساس باشد. قبل از اشتراکگذاری نتایج، دادههای حساس را حذف یا ناشناس کنید.
جمعبندی
دستور MTR ترکیب خوبی از دو ابزار محبوب Ping و Traceroute است. استفاده از این دستور آسان است و در سیستمهای عامل مختلف در دسترس قرار دارد. استفاده از دستور MTR به طور موثر و بهینه تاخیر شبکه را اندازهگیری میکند، مشکلات احتمالی را شناسایی و اتصالات را عیبیابی میکند.