ASTRACEROUTE(8) netsniff-ng toolkit ASTRACEROUTE(8)

astraceroute - ابزار ردیابی مسیر سیستم خودمختار (AS)

astraceroute [گزینه‌ها]

برنامه astraceroute ابزاری کوچک برای بازیابی اطلاعات مسیر مشابه با traceroute است، اما اطلاعات موقعیت جغرافیایی بیشتری را ارائه می‌دهد. این ابزار مسیر یک بسته را از میزبان محلی به سمت میزبان راه دور با افزایش پی‌درپی فیلد TTL بسته IP (با شروع از ۱) دنبال می‌کند، به این امید که هر گره میانی هنگام صفر شدن مقدار TTL، یک اعلان ICMP TIME_EXCEEDED به میزبان محلی ارسال کند.

برنامه astraceroute از پرس‌وجوهای IPv4 و IPv6 پشتیبانی می‌کند و در صورت موجود بودن، اطلاعات کشور و شهر، شماره AS که گام (hop) به آن تعلق دارد و نام ISP آن را نمایش می‌دهد. همچنین astraceroute اطلاعات زمان‌بندی و داده‌های DNS معکوس را نشان می‌دهد.

با توجه به قابلیت پیکربندی بالای astraceroute، جمع‌آوری اطلاعات مفید بیشتری درباره هر گام و آنچه که اجازه عبور می‌دهد یا نمی‌دهد نیز امکان‌پذیر است. این کار با استفاده از رشته‌های متنی آشکار برای سنجش سامانه‌های بازرسی عمیق بسته‌ها (DPI) یا «دیوارهای آتشین بزرگ» جهت تشخیص فیلتر شدن کلیدواژه‌های مسدودشده حساس انجام می‌گیرد. این ابزار می‌تواند نقطه شروع خوبی برای تحلیل عمیق‌تر چنین سیستم‌هایی باشد.

نام میزبان یا نشانی IPv4 یا IPv6 میزبان راه دور که مسیر AS به آن باید ردیابی شود. در صورت استفاده از نشانی یا نام میزبان IPv6، گزینه -6 باید به کار رود. حالت پیش‌فرض IPv4 است.
درگاه TCP برای استفاده در میزبان راه دور. اگر مشخص نشود، درگاه پیش‌فرض ۸۰ خواهد بود.
دستگاه شبکه برای شروع ردیابی مسیر از آن، مانند eth0 یا wlan0.
نشانی IP برای مقیدسازی (bind) به غیر از نشانی دستگاه شبکه. برای یک نشانی IPv6 باید -6 را تعیین کنید.
مقدار اولیه TTL برای استفاده. این گزینه زمانی سودمند است که علاقه‌ای به n گام اول ندارید و تنها گام‌های پس از آن مد نظر شماست. مقدار پیش‌فرض اولیه TTL برابر ۱ است.
حداکثر مقدار TTL برای استفاده. در صورت عدم تعیین، حداکثر مقدار TTL برابر ۳۰ خواهد بود. بنابراین، پس از رسیدن به این مقدار، astraceroute خارج می‌شود.
تعداد پرس‌وجوهایی که باید روی یک گام خاص انجام شوند را مشخص می‌کند. پیش‌فرض ۲ درخواست پرس‌وجو است.
مهلت زمانی پاسخ کاوشگر به ثانیه را مشخص می‌کند، به بیان دیگر حداکثر زمانی که astraceroute باید برای پاسخ ICMP از گام فعلی منتظر بماند. مقدار پیش‌فرض ۳ ثانیه است.
قرار دادن یک رشته متن ساده ASCII در بار داده (payload) بسته. متن ساده حاوی فاصله باید درون علامت نقل‌قول قرار گیرد (مانند: "censor me").
طول کل بسته را مشخص می‌کند. بار داده‌ای که فاقد رشته متن ساده باشد با داده‌های تصادفی پر می‌شود.
-4, --ipv4
استفاده انحصاری از درخواست‌های IPv4. این حالت پیش‌فرض است.
-6, --ipv6
استفاده انحصاری از درخواست‌های IPv6. هنگام ارسال یک میزبان IPv6 به عنوان آرگومان، استفاده از این گزینه الزامی است.
به astraceroute اعلام می‌کند که جستجوی DNS معکوس را برای پاسخ‌های گام‌ها انجام ندهد. گزینه معکوس آن -N است.
فراخوانی سازوکار درونی به‌روزرسانی پایگاه داده جغرافیایی برای دریافت آخرین نسخه Maxmind. فایل /etc/netsniff-ng/geoip.conf حاوی نشانی‌های ممکن برای پیکربندی مکان‌های جستجوی پایگاه داده است. بدین ترتیب برای صرفه‌جویی در پهنای باند یا آینه‌سازی پایگاه‌های داده Maxmind (برای دور زدن محدودیت ترافیک آن‌ها)، می‌توان میزبان‌ها یا نشانی‌های IP مختلف را که با خط جدید جدا شده‌اند در geoip.conf قرار داد.
نمایش عرض و طول جغرافیایی گام‌ها.
به astraceroute اعلام می‌کند که جستجوی DNS معکوس را برای پاسخ‌های گام‌ها انجام دهد. گزینه معکوس آن -n است.
استفاده از پرچم SYN در پروتکل TCP برای درخواست.
استفاده از پرچم ACK در پروتکل TCP برای درخواست.
استفاده از پرچم FIN در پروتکل TCP برای درخواست.
استفاده از پرچم PSH در پروتکل TCP برای درخواست.
استفاده از پرچم URG در پروتکل TCP برای درخواست.
استفاده از پرچم RST در پروتکل TCP برای درخواست.
استفاده از پرچم ECN در پروتکل TCP برای درخواست.
تعیین صریح مقدار فیلد TOS پروتکل IP.
تنظیم پرچم عدم قطعه‌بندی (no fragmentation) در IP.
نمایش و کالبدشکافی بسته بازگردانده‌شده.
نمایش اطلاعات نسخه و خروج.
نمایش راهنمای کاربر و خروج.

ارسال یک کاوشگر TCP SYN از طریق دستگاه شبکه eth0 به سمت میزبان راه دور IPv4 با نشانی netsniff-ng.org. این درخواست بیشترین احتمال عبور را دارد. همچنین به astraceroute دستور می‌دهد برای هر گام جستجوی DNS معکوس انجام دهد.
در این مثال، یک کاوشگر TCP SYN/ECN برای میزبان IPv6 با نشانی www.6bone.net اجرا می‌شود. در این حالت نیز از دستگاه eth0 و جستجوی معکوس DNS برای هر گام استفاده می‌گردد.
ارسال یک کاوشگر TCP FIN به میزبان راه دور netsniff-ng.org. مجدداً روی هر گام جستجوی معکوس DNS انجام شده و پرس‌وجوها از رابط eth0 با پروتکل IPv4 ارسال می‌شوند.
مشابه با بیشتر مثال‌های دیگر، یک ردیابی مسیر به میزبان IPv4 با نشانی netsniff-ng.org انجام داده و این بار کاوشگر TCP Xmas را به کار می‌بریم.
در این مثال، یک کاوشگر Null به میزبان راه دور netsniff-ng.org و درگاه ۸۰ (پیش‌فرض) ارسال می‌کنیم و رشته متنی "censor-me" را در بار داده بسته قرار می‌دهیم تا بررسی کنیم آیا دیوار آتش یا DPI اجازه عبور این رشته را می‌دهد یا خیر. چنین ردیابی را می‌توان یک بار بدون رشته مسدودشده و یک بار با آن انجام داد تا اطلاعات لازم درباره وضعیت سانسور به دست آید.

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

برای جمع‌آوری اطلاعات بیشتر درباره شماره‌های AS نمایش‌داده‌شده توسط astraceroute، برای نمونه پیوند زیر را ببینید: http://bgp.he.net/AS<number>

موقعیت‌های جغرافیایی با کمک پایگاه داده GeoIP متعلق به Maxmind تخمین زده می‌شوند و ممکن است با موقعیت فیزیکی واقعی مغایرت داشته باشند. برای کاهش خطاهای احتمالی، پایگاه داده را مرتباً با استفاده از گزینه --update در astraceroute به‌روزرسانی کنید.

در آینده نیاز به رویکردی مشابه برای جمع‌آوری اطلاعات مطمئن‌تر مسیر مانند ابزار paris-traceroute وجود دارد.

با توجه به ماهیت کلی astraceroute، در حال حاضر این برنامه یک سازوکار داخلی برای توقف ردیابی پس از تعداد مشخصی گام دارد، چرا که پرچم‌های قابل تنظیم TCP می‌توانند هر مقداری را شامل شوند. البته امکان کاهش این مقدار وجود دارد. در آینده، چنانچه یک کاوشگر SYN ارسال شود، باید یک شنودگر تعبیه گردد تا در صورت تشخیص یک دست‌تکانی در حال انجام، ردیابی را متوقف کند.

برنامه astraceroute تحت مجوز GNU GPL نسخه ۲.۰ منتشر شده است.

برنامه astraceroute در اصل توسط Daniel Borkmann برای جعبه‌ابزار netsniff-ng نوشته شد. نگهداری آن در حال حاضر توسط Tobias Klauser <tklauser@distanz.ch> و Daniel Borkmann <dborkma@tik.ee.ethz.ch> انجام می‌شود.

netsniff-ng(8), trafgen(8), mausezahn(8), ifpps(8), bpfc(8), flowtop(8), curvetun(8)

این صفحه راهنما توسط Daniel Borkmann نوشته شده است.

این صفحه بخشی از پروژه جعبه‌ابزار netsniff-ng لینوکس است. توصیفی از پروژه و اطلاعات مربوط به گزارش خطاها را می‌توان در نشانی http://netsniff-ng.org یافت.

03 March 2013 Linux