دستور tracert چیست و چه کاربردی در حل مشکلات شبکه دارد؟
سلام خدمت تمام خوانندگان عزیز این مطلب. در پست قبلی در مورد یکی از معروفترین و پرکاربردترین دستور CMD صحبت کردیم که مانند همین دستور tracert آن دستور هم از پروتکل ICMP استفاده میکرد. در قسمت قبل در مورد ping (پینگ) صحبت کردیم و متوجه شدیم که برای تست ارتباطات و اتصالات شبکه از این دستور به همراه نام هُوست، بَله نام هُوست نه هاست و یا IP آدرس استفاده میکنیم. دستور tracert هم همانطور که اشاره کردیم از پروتکل ICMP استفاده میکند و اگر بخواهیم در یک جمله به این سوال پاسخ دهیم که دستور tracert چیست و چه کاربردی در حل مشکلات شبکه دارد؟ باید بگوییم برای این است که بدانیم بسته اطلاعاتی ما از چه مسیرهایی عبور میکند تا به مقصد برسد و اگر در این بین یکی از مسیرها(روتر) مشکل داشت، ما دقیقا متوجه میشویم که از کجا به بعد اینترنت یا ارتباط نداریم.
دستور tracert چیست؟
دستور tracert در سیستمعامل ویندوز استفاده میشود و اگر قصد دارید در لینوکس از این دستور بهره ببرید باید معادل آن یعنی traceroute را استفاده کنید که مایکروسافت به اختصار از همین دستور لینوکسی استفاده میکند. دستور tracert و یا traceroute هر دو برای پی بردن به این موضوع است که بسته اطلاعاتی تولید شده از چه مسیری حرکت میکند تا به مقصد برسد. از نام دستور هم میتوان متوجه این موضوع شد.
مکانیزم کاری دستور tracert به چه صورت است؟
این دستور بعد از اجرا شدن مقدار TTL را برابر یک قرار میدهد و به اولین روتری که رسید، مقدار TTL یکی کم میشود و صفر میشود و بسته اطلاعاتی یا همان پکت(Packet) از بین میرود. اگر نمیدانید چرا و یا TTL چیست، حتما پست مربوط به Ping را مطالعه کنید. وقتی پکت از بین رفت، دستور tracert یک گزارش به سمت مبدا ارسال میکند و مشخصات آن روتری که در آن TTL=0 شد را به مبدا اعلام میکند. (بعنوان مثال میگوید بسته من در این روتر با این مشخصات(زمان، IP روتر، اسم روتر و…) از بین رفت). به این بسته اصطلاحا ICMP Time Exceeded Message گفته میشود.
این دستور تا زمانی که به مقصد نرسد، یا به آستانه TTL نرسیم(به صورت پیشفرض تا 30 هاپ یا روتر ادامه میدهد)، متوقف نخواهد شد. پس برای بار دوم TTL=2 قرار میدهد و بسته را ارسال میکند و این بسته تا جایی میرود که مقدار آن برابر با صفر شود و از بین برود و زمانی که از بین رفت، مشخصات روتر آخر را برای مبدا ارسال میکند و این روند تا آنجایی ادامه پیدا میکند که بسته اطلاعاتی به مقصد برسد تا آستانه TTL به پایان برسد. بدین ترتیب ما متوجه میشویم که پکت ما از کجا عبور میکند و چه اتفاقی برای آن میافتد. پس کار دستور Tracert ارسال بستههای ICMP با TTLهای متفاوت برای ردیابی مسیر حرکت بسته است.
مثالی از دستور tracert بزنیم!
فرض کنید از مخابرات لینک ارتباطی دریافت کردهاید و اینترنت قطع میشود، یکی از ابتدائیترین راهکارها برای حل مشکل قطعی اینترنت، استفاده از همین دستور tracert است تا متوجه شویم که از کجا به بعد ارتباط نداریم. در واقع با اجرای این دستور از هر جا به بعد به صورت پشت سرهم Request timed out گرفتیم، یعنی از آنجا به بعد ارتباط قطع است. پس با این دستور دقیقا میتوانیم مطمئن شویم که از سمت ما اینترنت قطع است یا از سمت مخابرات. اگر از سمت مخابرات بود و حاشا کردند، میتوانی آنها را راهنمایی کنی که از چه مکانیزمی مطمئن شدی و بعد با زبان شیرین فارسی بهشون ف****ح****ش بدی. البته این یک شوخی بود. اگر اینکار رو بکنید، کار شما را انجام نمیدهند. 🙂
روش اجرای دستور Tracertچیست؟
برای اجرای این دستور کاربردی بعد از باز کردن CMD به صورت زیر دستور را تایپ کنید و Hostname یا IP آدرس مقصد را بعد از دستور قرار دهید. در تصویر بالا پس از عبور از 9 عدد روتر به وبسایت بامادون رسیدیم.
tracert [Hostname or IP Address] ------ tracert www.bamadoon.com -------tracert -d 8.8.8.8
برای اجرای سریعتر این دستور بهتر است پارامتر d- را بعد از دستور قرار دهید تا دستور از بدست آوردن Hostname روترهای بین راهی صرفنظر کند و سریعتر اجرا شود.
اگر از یک جایی به بعد * برگردانده شد یعنی ارتباط از آنجا به بعد قطع است و اگر یک الی چند ستاره را نشان داد ولی دستور ادامه پیدا کرد، یعنی آن روترها نمیخواستند که Hostname یا نام آنها فاش شود.
بررسی دقیقتر خروجی دستور tracert
5 بخش در خروجی یک دستور tracert وجود دارد که از چپ به راست یکییکی آنها را معرفی میکنیم. عددهایی که در اولین ستون نمایش میدهد، بیانگر تعداد روترها یا Hop هاپهایی است که از آنها بسته عبور کرده است (به روترهایی بین راهی اصطلاحا هاپ میگویند). سه ستون بعدی نمایانگر زمان است که در سه وهله بررسی میشود. یعنی بسته ICMP سهبار به سمت هر روتر ارسال میشود که خروجی قابل اعتمادتری داشته باشد. هر ستون مجموع مدت زمان رفت و برگشت یک بسته ICMP است. اگر یک روتر دچار مشکل شده باشد یا جواب ندهد، بجای زمان یک ستاره * نمایش میدهد. ستون آخر یعنی ستون پنجم هم نام روتر یا IP آن را نمایش میدهد.
چطوری با دستور Tracert عیبیابی کنیم؟
گفتیم که دستور tracert مسیر رسیدن بسته را به مقصد مشخص میکند. اگر از یک روتری به بعد بهجای زمان ستاره (*) و بهجای IP آدرس Request timed out نوشته شده بود، یعنی از آنجا به بعد مشکل داریم و میتوانیم تشخیص دهیم که در شبکه داخلی است یا از شبکه LAN خارج شده است. معمولا IP اولی که نشان میدهد روتر شبکه داخلی ما است البته اگر فقط یک روتر داشته باشیم و IP آدرس آخری که به ما نمایش میدهد، آدرس مقصد است. در تست تصویر بالا ما سایت فیسبوک را Trace گرفتیم که نشان میدهد از کجا این سایت فیلتر شده است.
پارامترهای دستور tracert
دستور tracert هم مانند هر دستور CMD دارای یکسری پارامتر است که مهمترین آنها را با هم بررسی میکنیم.
tracert -d
این پارامتر باعث میشود تا از نمایش دادن نام روترهای اجتناب شود و باعث افزایش سرعت دستور میشود. که در بخشهای قبلی از آن استفاده کردیم.
tracert -h
با این پارامتر تعداد هاپهایی که بسته از آن عبور میکند را مشخص میکنیم. مثلا اگر تعداد 30 هاپ که به صورت پیشفرض است کافی نبود، کافیست که به صورت زیر مقدار آن را به صورت دستی مشخص کنیم.
tracert -d -h 25 www.bamdoon.com
tracert -w
بیانگر Wait یا همان حداکثر زمان منتظر ماندن برای پاسخ از سمت هاپ یا روتر میباشد که باز هم میتوان آن را شخصیسازی کرد. زمان در اینجا بر حسب میلی ثانیه است.
tracert -d -w 1000 www.bamadoon.com
برای پارامترهای دیگر میتوانید از دستور زیر استفاده کنید.
tracert /?
بهدست آوردن اطلاعات IPهای نمایش داده شده در دستور
سایتهایی مانند ip2location و … نمایش گرافیکی دستور را به ما نمایش میدهند ولی مشکلی که وجود دارد این است که، یا فیلتر شده هستند که با نرمافزار تغییر IP مسیر را درست نمایش نمیدهند یا از مبدا خود سایت شروع به نمایش میکنند که برای ما کارساز نیست. اگر بخواهیم بدانیم که یک IP نمایش داده شده در دستور Tracert مربوط به کجاست، میتوانیم از سایت ripe.net کمک بگیریم و در بخش ripe database آن آدرس IP را وارد کنیم تا مشخصات آن را به ما نمایش دهد. بهعنوان مثال IP که من انتخاب کردم مربوط به شاتل است.
آموزش جامع ویندوز 11 | MCSA ویندوز کلاینت
بینیاز از هر دوره دیگر ویندوز با مشاهده دوره میتوانید بعنوان یک IT استخدام شوید!
بدون دانشگاه مهندس کامپیوتر شوید
آنچه نیاز دارید اینجاست!!
جمعبندی
با دستور tracert میتوانیم مسیر حرکت یک بسته ICMP را ردیابی کنیم تا متوجه شویم که یک بسته از چه مسیرهایی عبور میکند تا به مقصد برسد. همچنین برای حل مشکل قطعی ارتباط نیز از این دستور استفاده میکنیم تا متوجه شویم که ارتباط از کجا به بعد قطع میباشد. امیدوارم مورد توجه شما قرار گرفته باشد. هر سوالی داشتید در بخش نظرات بیان کنید تا در اسرع وقت به آن رسیدگی کنم.
منبع: بامادون | کپی و نشر مطلب با ذکر منبع و نام نویسنده بلامانع است.
2 نظر
سلام عالی بود
توی ویندوزهای 10 برای نسخه های متفاوت یه جا باید tracert رد بزاریم و بعد آدرس Ip یا نام سایت ولی در نسخه دیگه باید بزاریم tracert -d و بعد آدرس سایت یا Ip مورد نظر
سلام درود
برای من اکثرا همون روش دوم جواب میده