آموزش استفاده از TCP traceroute
trace route چیست ؟
فرض کنید اتصال شما به یک سرور از دست میره. اولین احتمالی که هست خاموش شدن یا مشکل کانفیگ سرور هستش. ولی زمانی که اینترنت خودتون رو تغییر بدید، مثلا به جای ایرانسل از همراه اول استفاده می کنید اتصال برقرار میشه.! اولین احتمالی که هست مشکل در مسیر ارسال پکت هاست. برای چک کردن مسیر ارسال از tracet route استفاده میکنن.
trace route چطوری کار میکنه ؟
زمان ارسال پکت های چیزی بهشون اضافه میشه به نام TTL که مخفف Time to Live هستش. یعنی مدت زمان زنده ماندن پکت شما و یک عددی رو داخل خودش نگاه میداره، این عدد میتونه 1 تا 255 باشه ( این محدودیت به دلیل مقدار حافظه ای هست که برای این عدد در نظر گرفته شده ). البته معیارش زمان نیست معیار تعداد روتر هایی داخل مسیر هستش
خب این یعنی چی ؟
فرض میکنیم شما پکتی رو ارسال میکنید با TTL = 50 و ip =1.1.1.1 زمانی که پکت از مودم شما عبور میکنه. TTL تغییر میکنه به 49 ، وقتی از روتر بالا دستی مودم شما عبور میکنه TTL میشه 48 و این روند ادامه پیدا میکنه تا زمانی که برسه به مقصد که 1.1.1.1 هست.
پس TLL بعد از گذاشت از هر روتر یکی ازش کم میشه
حالا بیایم فرض کنیم قبل از این که پکت به مقصد ما برسه TTL پکت ما داخل یکی از روتر ها 0 بشه ، حالا چه اتفاقی می افته ؟
پکت حذف میشه ولی این آخر کار نیست. روتری که پکت ما رو حذف کرده یک پیام برای ما ارسال میکنه این پیام با پروتکل ICMP که ازش برای عیب یابی در شبکه استفاده میکنن ارسال میشه این پروتکل در لایه network کار میکنه
این قسمت رو دقت کنید ! هر نوع پکتی ارسال کنید با هر پروتکلی ( icmp،udp،tcp) زمانی که TTL =0 بشه پیامی که از سمت روتر برای ما ارسال میشه icmp هستش
داخل این پیام آدرس ip روتر نوشته شده البته اطلاعات دیگه ای هم به ما میده
حالا اگر ما بخوایم آدرس تمام روتر های مسیر رو پیدا کنیم میتونیم یک پکت درست کنیم با TTL که خودمون مشخص کردیم
به این صورت که اگر بخوایم ip روتر اول رو پیدا کنیم پکتی ارسال میکنیم با TTL = 1 و زمانی که به روتر اول میرسه TTL میشه 0 و روتر برای ما یک پیام ارسال میکنه ، حالا اگه بخوایم ip روتر دوم رو پیدا کنیم پکتی ارسال میکنیم با TTL = 2
چطوری از trace route استفاده کنیم ؟
ویندوز :
در ویندوز باید وارد cmd بشید و از دستور tracert استفاده کنید به این صورت
tracert 1.1.1.1
این دستور با پروتکل icmp کار میکنه
لینوکس :
در لینوکس از دو دستور traceroute و tracepath میتونید استفاده کنید
tracepath داخل سیستم عامل موجوده ولی برای traceroute باید برنامه نصب بشه
دستور نصب :
ubuntu : apt install traceroute
centos : yum install traceroute
هر دو دستور از پورتکل udp برای trace استفاده میکنن. با سویچ -T در traceroute میتونید از پروتکل tcp هم استفاده کنید.
آموزش استفاده از TCP traceroute در ویندوز
برای استفاده از tracetcp در ویندوز به دو نرم افزار WinPcap و tracetcp نیاز دارید
(لینک دانلود نرم افزار ها )
ابتدا نرم افزار WinPcap را نصب کنید
سپس نرم افزار tracetcp را داخل مسیر C:\Windows\System32 قرار بدین
بعد از نصب وارد cmd بشید و دستور tracetcp را با ip مدنظرتون وارد کنید
عالی بود