.\" ************************************************************************* .\" * Copyright © 2005-2006 Rémi Denis-Courmont. * .\" * This program is free software: you can redistribute and/or modify * .\" * it under the terms of the GNU General Public License as published by * .\" * the Free Software Foundation, versions 2 or 3 of the license. * .\" * * .\" * This program is distributed in the hope that it will be useful, * .\" * but WITHOUT ANY WARRANTY; without even the implied warranty of * .\" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * .\" * GNU General Public License for more details. * .\" * * .\" * You should have received a copy of the GNU General Public License * .\" * along with this program. If not, see . * .\" ************************************************************************* .TH "TRACEROUTE6" "8" "$Date$" "traceroute6" "راهنمای مدیر سیستم" .SH "نام (NAME)" rltraceroute6 \- ابزار ردیابی مسیر شبکه در IPv6 .PP tcptraceroute6 \- ابزار ردیابی مسیر مبتنی بر TCP در IPv6 .SH "خلاصه دستور (SYNOPSIS)" .BR "traceroute6" " [" "-AdEILlnrSU" "] [" "-f min_hop" "] [" "-g hop" "] [" .BR "-i iface" "] [" "-m max_hop" "] [" "-p port" "] [" "-q attempts" "] [" .BR "-s source" "] [" "-t tclass" "] [" "-w wait" "] [" "-z delay_ms" "] <" .BR "hostname/address" "> [" "packet length" "]" .BR "tcptraceroute6" " [" "-AdEnrS" "] [" "-f min_hop" "] [" "-g hop" "] [" .BR "-i iface" "] [" "-l packet_size" "] [" "-m max_hop" "] [" "-p port" "] [" .BR "-q attempts" "] [" "-s source" "] [" "-t tclass" "] [" "-w wait" "] [" .BR "-z delay_ms" "] <" .BR "hostname/address" "> [" "port" "]" .SH "توضیحات (DESCRIPTION)" .B rltraceroute6 یک پیاده‌سازی از traceroute برای IPv6 است. .PP این ابزار با ارسال بسته‌ها و افزایش تدریجی محدودیت پرش (hop limit) تا زمان رسیدن به مقصد نهایی، فهرست گره‌ها (hops) در امتداد مسیر شبکه بین سیستم محلی و مقصد مشخص‌شده را نمایش می‌دهد. .PP به‌طور پیش‌فرض، .B rltraceroute6 بسته‌های کاوشگر UDP را به سمت مقصد ارسال می‌کند (این رفتار پیش‌فرض تاریخی است). با این حال، می‌تواند بسته‌های TCP نیز ارسال کند، دقیقاً مشابه عملکرد ابزار .B tcptraceroute متعلق به Michael C. Toren در شبکه‌های IPv4؛ ابزار .B tcptraceroute6 به‌طور پیش‌فرض بسته‌های TCP ارسال می‌کند (و از سینتکس خط فرمان tcptraceroute پیروی می‌نماید). در نهایت، این ابزار می‌تواند مانند برخی پیاده‌سازی‌های دیگر traceroute (نظیر آنچه در مایکروسافت ویندوز وجود دارد)، بسته‌های ICMPv6 Echo Request نیز ارسال کند؛ ابزار .B tracert6 به‌طور پیش‌فرض این کار را انجام می‌دهد. .PP شما باید نام یا نشانی میزبانی را که مسیر شبکه به سمت آن باید تعیین شود، مشخص کنید. یک پارامتر اختیاری اضافی، طول بسته‌های کاوشگر (برای بسته‌های UDP و ICMP) یا شماره درگاه/نام سرویس مقصد (برای بسته‌های TCP) را تعیین می‌کند. .PP توجه داشته باشید که درگاه مقصد TCP صفر، دقیقاً پورت TCP شماره ۰ است (که از طریق رابط برنامه‌نویسی سطح بالای استاندارد TCP/IP قابل استفاده نیست). .SH "گزینه‌ها (OPTIONS)" .TP .B "\-A" ارسال بسته‌های کاوشگر TCP/ACK. این گزینه در برابر فایروال‌های بدون حالت (stateless) بسیار کارآمد است (مانند نسخه‌های رسمی کرنل لینوکس تا نسخه ۲.۴.۳۱ و ۲.۶.۱۴ شامل خود آن‌ها)، اما در برابر فایروال‌های با حالت (stateful) کاملاً بی‌اثر است. توجه داشته باشید که کاوش با TCP/ACK نمی‌تواند باز یا بسته بودن درگاه TCP مقصد را مشخص کند. .TP .B "\-d" فعال‌سازی گزینه اشکال‌زدایی سوکت (SO_DEBUG). مگر در مواردی که مشغول اشکال‌زدایی کرنل باشید، این گزینه احتمالاً هیچ اثر عملی نخواهد داشت. .TP .B "\-E" .RI "ارسال بسته‌های کاوشگر TCP/SYN با قابلیت " "ECN-setup" " (مطابق با RFC 3168)" به جای بسته‌های معمولی بدون تنظیم ECN. این گزینه تا زمانی که گزینه .B \-S نیز در خط فرمان مشخص نشده باشد، هیچ تاثیری ندارد. .TP .B "\-F" این گزینه برای سازگاری با گذشته نادیده گرفته می‌شود. بسته‌های IPv6 هرگز در طول مسیر تکه‌تکه (fragment) نمی‌شوند. .TP .B "\-f" بازنویسی محدودیت پرش اولیه برای بسته‌های IPv6 (پیش‌فرض: ۱). .TP .B "\-g" افزودن یک بخش مسیر IPv6 در یک هدر مسیریابی (Routing Header) در IPv6. این کار امکان مسیریابی مبدا اختیاری (loose source routing) را فراهم می‌کند. در حال حاضر، تنها هدر مسیریابی نوع صفر ("Type 0") پشتیبانی می‌شود. .TP .B "\-h" نمایش راهنما و خروج. .TP .B "\-I" " (تنها در rltraceroute6)" ارسال درخواست‌های ICMPv6 Echo (مشابه ping6) به عنوان بسته‌های کاوشگر. این حالت پیش‌فرض برای .B tracert6 است. .TP .B "\-i" ارسال بسته‌ها تنها از طریق رابط شبکه مشخص‌شده. بخش باگ‌ها (BUGS) را نیز ببینید. .TP .B "\-I" " (تنها در rltraceroute6)" ارسال بسته‌های UDP-Lite (پروتکل ۱۳۶) با پوشش کامل مجموع مقابله‌ای (checksum) به عنوان بسته‌های کاوشگر، به جای UDP معمولی (پروتکل ۱۷). .TP .BR "\-l" " (تنها در rltraceroute6)" چاپ محدودیت پرش (hop limit) بسته‌های دریافتی. این گزینه بیشتر برای تشخیص مسیریابی نامتقارن (asymmetric routing) استفاده می‌شود. .TP .BR "\-l" " (تنها در tcptraceroute6)" تعیین اندازه (به بایت) بسته‌های ارسالی. .TP .B "\-m" بازنویسی بیشینه محدودیت پرش (حداکثر تعداد گره‌ها). مقدار پیش‌فرض ۳۰ پرش است که باید برای مدتی در اینترنت IPv6 کافی باشد. .TP .B "\-N" تلاش برای وضوح‌یابی نشانی IPv6 هر گره به نام میزبان (Reverse DNS). این حالت پیش‌فرض است. این گزینه برای سازگاری با گذشته با tcptraceroute(8) در نظر گرفته شده است. .TP .B "\-n" عدم تلاش برای وضوح‌یابی نشانی IPv6 هر گره به نام میزبان. این کار ممکن است سرعت اجرای traceroute را به میزان قابل توجهی افزایش دهد. .TP .B "\-p" برای .BR rltraceroute6 ، شماره درگاه مقصد پایه را تعیین می‌کند (پیش‌فرض: ۳۳۴۳۴). برنامه .B rltraceroute6 فرض می‌کند که بسته‌های ارسالی به سمت این پورت تا این پورت به علاوه بیشینه محدودیت پرش، توسط هیچ برنامه‌ای در مقصد نهایی مورد استفاده قرار نمی‌گیرند و توسط هیچ فایروالی مسدود نشده‌اند. این واقعیت که این فرض همیشه درست نبود، در نهایت منجر به توسعه نسخه اصلی IPv4 ابزار tcptraceroute توسط Michael Toren شد. .PP برای .BR tcptraceroute6 ، شماره درگاه مبدا را مشخص می‌کند (پیش‌فرض: خودکار). توجه داشته باشید که شماره درگاه مبدا صفر واقعاً به معنای پورت شماره ۰ است، نه پورت تصادفی که مانند نرم‌افزارهای معمول به‌طور خودکار تخصیص داده شود. .TP .B "\-q" تغییر تعداد بسته‌های کاوشگر ارسالی به هر گره (پیش‌فرض: ۳). .TP .B "\-r" عدم مسیریابی بسته‌ها، یعنی بسته‌ها از طریق درگاه پیش‌فرضی که توسط جدول مسیریابی مشخص شده است ارسال نشوند. بخش باگ‌ها (BUGS) را نیز ببینید. .TP .B "\-S" استفاده از بسته‌های کاوشگر TCP/SYN. این حالت پیش‌فرض برای .B tcptraceroute6 است. .TP .B "\-s" تعیین صریح نشانی مبدا برای استفاده در بسته‌های کاوشگر. .TP .B "\-S" استفاده از بسته‌های کاوشگر UDP. این حالت پیش‌فرض برای .B rltraceroute6 است. .TP .B "\-t" تعیین کلاس ترافیک (DSCP) برای بسته‌های کاوشگر. بخش باگ‌ها (BUGS) را نیز ببینید. .TP .B "\-U" " (تنها در rltraceroute6)" ارسال بسته‌های کاوشگر UDP. این حالت پیش‌فرض است. .TP .B "\-V" نمایش نسخه برنامه و مجوز و سپس خروج. .TP .B "\-w" تغییر مدت زمان انتظار (به ثانیه) برای دریافت پاسخ پس از ارسال یک بسته کاوشگر مشخص (پیش‌فرض: ۵ ثانیه). .TP .B "\-x" این گزینه برای مهاجرت بدون دردسر از نسخه IPv4 ابزار traceroute نادیده گرفته می‌شود. سربرگ IPv6 فاقد فیلد مجموع مقابله‌ای (checksum) است. .TP .B "\-z" تعیین تاخیر بر حسب میلی‌ثانیه برای مکث میان هر کاوش با محدودیت پرش یکسان. این گزینه می‌تواند برای دور زدن محدودیت نرخ (rate limiting) بستههای ICMPv6 در برخی میزبان‌ها مفید باشد. .SH "پیام‌های تشخیصی (DIAGNOSTICS)" در صورت دریافت پاسخ، مدت زمان رفت و برگشت (RTT) چاپ می‌شود. علاوه بر این، نمادهای خاصی نشان‌دهنده خطاهای مشخصی هستند: .TP .BR "*" " بدون پاسخ (No response)" هیچ پاسخ معتبری پیش از پایان مهلت زمانی دریافت نشد (گزینه \-w را ببینید). .TP .BR "!N" " مسیری به مقصد وجود ندارد (No route to destination)" هیچ مدخلی برای شبکه مقصد در جدول مسیریابی وجود ندارد. .TP .BR "!A" " ارتباط با مقصد از نظر مدیریتی ممنوع است (Communication with destination administratively prohibited)" یک فایروال به‌طور صریح ترافیک را رد کرده است. .TP .BR "!S" " فراتر از محدوده نشانی مبدا (Beyond scope of source address)" محدوده نشانی مبدا برای رسیدن به نشانی مقصد بسیار کوچک است. در زمان نگارش این راهنما، این حالت فقط هنگام استفاده از یک نشانی مبدا link-local برای دسترسی به مقصدی با دامنه سراسری (global) رخ می‌دهد. (توجه: برخی از پیاده‌سازی‌های traceroute در IPv4 از !S برای خطای مسیریابی مبدا استفاده می‌کنند که کاملاً متفاوت است). .TP .BR "!H" " میزبان در دسترس نیست (Address unreachable)" نشانی میزبان به دلایل دیگری در دسترس نیست، به‌ویژه نقص در لایه پیوند داده (به عنوان مثال، شکست در فرآیند Neighbor Discovery). .TP .BR "!P" " نوع هدر بعدی ناشناخته است (Unrecognized Next Header type encountered)" میزبان مقصد، پروتکل لایه ۴ مورد استفاده را پیاده‌سازی نکرده است. باید با درخواست‌های ICMPv6 Echo (گزینه خط فرمان \-I) که الزاماً توسط هر گره IPv6 پشتیبانی می‌شود، دوباره تلاش کنید. .SH "امنیت (SECURITY)" برنامه .B rltraceroute6 باید دارای مجوز .B setuid root باشد تا کاربران غیرمدیر نیز امکان استفاده از آن را داشته باشند. این برنامه پیش از اقدام به ارسال یا دریافت داده از شبکه، مجوزهای کاربری ریشه (root) خود را رها می‌کند تا از تاثیر بالقوه آسیب‌پذیری‌های امنیتی بکاهد. .SH "باگ‌ها (BUGS)" گزینه‌های .B \-i و .B \-r هر چقدر هم که کاربردی باشند، در زمان نگارش این صفحه راهنما توسط کرنل رسمی لینوکس نادیده گرفته می‌شوند و بنابراین مطابق مستندات عمل نمی‌کنند. .PP پشتیبانی از گزینه .B \-t تا نسخه ۲.۶.۱۸ کرنل لینوکس دارای اشکال بود. .PP استفاده از هدر مسیریابی با گزینه .B \-g در نسخه‌های کرنل لینوکس پایین‌تر از ۲.۶.۱۷.۱۲ منجر به بروز خطای kernel OOPS می‌شود. .PP دریافت بسته‌های TCP/SYN-ACK در FreeBSD اصلاً کار نمی‌کند. این موضوع کارایی .B tcptraceroute6 را در FreeBSD به شدت محدود می‌سازد. .PP طول بسته، هدر IPv6 و در صورت وجود، هدرهای افزونه (extension headers) را محاسبه می‌کند. نسخه‌های .B rltraceroute6 قبل از ۰.۷.۴ در عوض آن را به عنوان طول بار داده (payload) در IPv6 در نظر می‌گرفتند، یعنی هدرهای لایه ۳ را در محاسبه منظور نمی‌کردند. ابزار traceroute6 از بسته iputils لینوکس حتی هدر UDP را هم لحاظ نمی‌کند. در مجموع، مفهوم طول بسته در میان پیاده‌سازی‌های مختلف traceroute برای IPv6 بسیار ناهماهنگ و متناقض است. .SH "همچنین ببینید (SEE ALSO)" .BR ipv6 (7), .BR traceroute (8), .BR tcptraceroute (8), .BR traceroute6 (8) .SH "نویسندگان (AUTHORS)" .MT remi@remlab.net Rémi Denis-Courmont .ME .PP