Traceroute 101
چطور مسیرهای شبکه را ترسیم کنیم، خروجی هاپبههاپ را بخوانیم، و محل شروع Latency یا Packet Loss را دقیق پیدا کنیم.
1. Traceroute چیست؟
یک ابزار عیبیابی شبکه که مسیری را که دادههای شما در شبکه برای رسیدن به مقصد طی میکنند، ترسیم میکند. برخلاف Ping — که فقط میگوید یک هاست در دسترس هست یا نه — Traceroute نشان میدهد ترافیک شما از کدام روترها (هاپها) عبور میکند و تأخیرها یا خرابیها دقیقاً کجا رخ میدهند.
Ping به شما میگوید
آیا یک هاست در دسترس است یا نه
Traceroute به شما نشان میدهد
ترافیک از کدام هاپها عبور میکند
- مشخص کنید مشکل دقیقاً در کجای شبکه رخ میدهد
- اتصالات کند و Latency بالا را تشخیص دهید
- مسیرهای مسیریابی بین ISPها و در اینترنت را درک کنید
- در زمان بروز مشکل، با ISPها یا تیمهای شبکه واضح و مستند صحبت کنید
2. Traceroute چگونه کار میکند؟
Traceroute بستههایی با مقادیر TTL (Time To Live) که بهتدریج افزایش مییابد ارسال میکند و به پیامهای خطای ICMP از هر روتر در مسیر گوش میدهد.
اولین روتر پاسخ میدهد
بسته به هاپ ۱ میرسد — TTL به ۰ کاهش مییابد و روتر پیام ICMP Time Exceeded ارسال میکند
دومین روتر پاسخ میدهد
هاپ ۱ بسته را فوروارد میکند، هاپ ۲ آن را در TTL برابر ۰ حذف کرده و پاسخ میدهد
سومین روتر پاسخ میدهد
افزایش تدریجی TTL ادامه پیدا میکند تا زمانی که مقصد برسد
مقصد پاسخ میدهد
آخرین هاپ به جای Time Exceeded، با Echo Reply پاسخ میدهد و پایان Trace را نشان میدهد
- TTL یک شمارنده است که محدود میکند یک بسته از چند روتر میتواند عبور کند
- هر روتر TTL را ۱ واحد کم میکند
- وقتی TTL به ۰ میرسد، روتر بسته را حذف میکند و یک پیام ICMP Time Exceeded برمیگرداند
- Traceroute آدرس IP و زمان رفتوبرگشت را برای هر روتر پاسخدهنده ثبت میکند
3. دستورات پایه
نام دستور بسته به سیستمعامل کمی فرق میکند. اغلب سیستمها ابزار mtr را هم دارند — ترکیبی بلادرنگ از ping و traceroute.
بعضی سیستمها ابزار mtr را هم دارند — ترکیبی بلادرنگ از ping و traceroute.
4. خواندن خروجی Traceroute
هر خط در خروجی یک هاپ را نشان میدهد — یعنی یک روتر یا دستگاه در مسیر بین سیستم شما و مقصد. برای هر هاپ سه اندازهگیری زمانی نمایش داده میشود.
- هر خط یک هاپ است — یک روتر بین دستگاه شما و مقصد
- شمارهٔ هاپ با عبور بسته از هر روتر افزایش پیدا میکند
- سه اندازهگیری برای هر هاپ، ثبات و نوسان را نشان میدهد — اختلاف زیاد بین آنها نشانهٔ Jitter است
- آدرس IP (و گاهی نام DNS) هر روتر را مشخص میکند
5. مکانیسم TTL در عمل
هر روتر که TTL را به ۰ کاهش میدهد، با ارسال یک پیام خطای ICMP خودش را آشکار میکند. Traceroute از این ویژگی استفاده میکند تا بدون دسترسی ویژه به هیچ روتر، مسیر کامل را نقشهبرداری کند.
TTL = 1 ارسال شد
روتر 192.168.1.1 TTL را به ۰ کاهش میدهد، بسته را حذف میکند و با ICMP Time Exceeded پاسخ میدهد. Traceroute IP و زمان هاپ ۱ را ثبت میکند.
TTL = 2 ارسال شد
هاپ ۱ بسته را فوروارد میکند (TTL → 1)، هاپ ۲ روی 10.0.0.1 TTL را به ۰ میرساند و پاسخ میدهد. Traceroute IP و زمان هاپ ۲ را ثبت میکند.
TTL = 3 ارسال شد
فرآیند تکرار میشود — هر Probe یک هاپ جدید در مسیر را آشکار میکند.
مقصد رسید
بسته از تمام هاپها عبور کرده و به مقصد میرسد. مقصد به جای Time Exceeded یک Echo Reply برمیگرداند که نشان میدهد Trace تمام شده است.
6. تفسیر نتایج
خروجی Traceroute میتواند مسیرهای سالم، مشکلات Latency، و هاپهای ساکت را نشان دهد — هر کدام داستان متفاوتی را تعریف میکنند.
مشاهدهافزایش تدریجی و پایدار Latency بدون جهش ناگهانی یا Packet Loss.
نتیجهگیریمسیر پایدار و با عملکرد خوب.
مشاهدهLatency بین هاپ ۲ و ۳ از حدود ۱۰ میلیثانیه به حدود ۱۲۰ میلیثانیه جهش میکند و بعد در همان سطح بالا باقی میماند.
نتیجهگیریلینک شلوغ یا روتر بیشازحد بارگذاریشده در هاپ ۳. آدرس 203.0.113.1 را به ISP خود گزارش دهید.
مشاهدههاپ ۳ پاسخی نشان نمیدهد، اما هاپهای بعدی (۴ و ۵) بهطور عادی پاسخ میدهند.
نتیجهگیریهاپ ۳ بستههای ICMP را بهصورت ساکت فیلتر میکند — مسیر همچنان کار میکند. وجود * بهتنهایی به معنی Packet Loss واقعی نیست.
7. Traceroute در برابر Ping
این دو ابزار مکمل هم هستند. Ping یک چک سلامت سریع به شما میدهد؛ Traceroute به شما میگوید مشکل دقیقاً کجای مسیر است.
Ping
- وقتی میخواهید سریع چک کنید که یک هاست در دسترس است یا نه
- وقتی میخواهید میانگین Latency و Packet Loss را اندازهگیری کنید
- وقتی نیاز به مانیتورینگ مداوم یک مقصد مشخص دارید
Traceroute
- برای عیبیابی کندی یا قطعی اتصال
- برای پیدا کردن اینکه تأخیر از کدام نقطهٔ مسیر شروع میشود
- برای دیدن اینکه ترافیک از چه مسیری بین ISPها و نواحی مختلف عبور میکند
جریان کاری ترکیبی
- با Ping شروع کنید — اگر Latency بالا بود یا هاست در دسترس نبود، بعدش Traceroute را اجرا کنید
- بررسی کنید Latency از کجا بهصورت ناگهانی بالا میرود یا از کجا Timeout شروع میشود
- با توجه به هاپِ مشکلدار، تشخیص دهید مشکل محلی است، در ISP شماست یا در سمت مقصد
8. محدودیتها
Traceroute ابزار قدرتمندی است اما نقاط کوری هم دارد. پیش از نتیجهگیری باید این محدودیتها را بشناسید.
بلوکه شدن ICMP
بعضی روترها ICMP یا بستههای Traceroute را بهطور کامل مسدود میکنند. ممکن است تعداد زیادی * ببینید، در حالیکه ترافیک واقعی بهطور طبیعی در جریان است.
مسیریابی نامتقارن (Asymmetric Routing)
مسیر رفت به مقصد ممکن است با مسیر برگشت از آن متفاوت باشد. Traceroute فقط مسیرِ رفت را نشان میدهد.
تعادل بار (Load Balancing)
در بعضی شبکهها Probeها بین چند مسیر مختلف تقسیم میشوند؛ بنابراین برای یک شمارهٔ هاپ ممکن است IPهای کمی متفاوت یا زمانهای متغیری ببینید.
اولویت پاسخدهی روتر
روترها به فوروارد کردن ترافیک واقعی اولویت میدهند، نه به پاسخ دادن به Probeها. بنابراین Latency بالا روی یک هاپ میانی لزوماً به معنای تأخیر برای کاربران نهایی نیست.
موارد استفادهٔ عملی
Traceroute شکایتهای مبهم را به اطلاعات دقیق و قابلاقدام تبدیل میکند.
«اینترنت کند است»
«سایتهای خارجی کندند، محلیها خوب هستند»
تماس با پشتیبانی ISP
اطلاعات دقیق دربارهٔ هاپها، یک تماس پشتیبانی مبهم را به گفتوگویی مفید و نتیجهمحور تبدیل میکند.