آشنایی با انواع ابزارها و فرمانهای خطایابی مسیرهای شبکه
ابزارهای عیبیابی
در شمارههای گذشته با هفت ابزار مهم TCP / IP utilities-ping، ipconfig، ifconfig، nslookup، dig، arp و route آشنا شدید. در ادامه با ابزارهای بیشتر TCP / IP که میتوانند به شما در یافتن اطلاعات مربوط به گرهها و شبکهها کمک کرده و در زمینه عیبیابی راهگشا باشند آشنا خواهید شد.
Netstat
ابزار netstat برای مشاهده اطلاعات آماری TCP / IP و جزئیات مربوط به مولفههای TCP / IP و ارتباطاتی که یک میزبان با شبکه برقرار کرده است، استفاده میشود. اطلاعاتی که فرمان netstat ارائه میکند، به شرح زیر است:
- پورتی که یک سرویس TCP / IP روی آن در حال اجرا است
- در حال حاضر کلاینت با چه شبکهای در ارتباط است
- از زمان برقراری ارتباط چند پیام توسط یک رابط شبکه پردازش شده است
- چه تعداد خطای دادهای روی یک رابط شبکه رخ داده است. بهطور مثال، فرض کنید شما یک مدیر شبکه هستید که مسئول فایلها، چاپ و سرورهای وب یک سازمان هستید. شما متوجه میشوید که وب سرور شما که دارای پردازندههای چندگانه، فضای ذخیرهسازی کافی روی هارد دیسک، و کارتهای شبکه متعدد است، بهطور ناگهانی مدت زمان پاسخگویی به درخواستهای HTTP دو برابر بیشتر از حالت عادی شده است. شما ضمن بررسی حافظه اصلی سرور و نرمافزار آن برای شناسایی مشکل، این قابلیت را در اختیار دارید که از فرمان netstat برای بررسی ترافیک وارد و خارج شونده از هر کارت شبکه استفاده کنید. شاید متوجه شوید که یک کارت شبکه به جای آنکه نیمی از ترافیک شبکه را مصرف کند، بیش از ۸۰ درصد از ترافیک شبکه را به خود اختصاص میدهد یا ممکن است فرآیند ارزیابی سختافزاری کارت شبکه را انجام دهید و کشف کنید که مشکل از پردازنده کارت شبکه است که باعث شده است کندتر از سایر کارتهای شبکه کار کند. جدول زیر برخی از پارامترهای فرمان netstat در ویندوز را نشان میدهد که برای بررسی وضعیت شبکه یا اشکالزدایی از آنها استفاده میشود. شما میتوانید از netstat در سیستمعامل لینوکس همراه با مجموعهای از پارامترهای مختلف استفاده کنید.
توضیح | فرمان netstat |
---|---|
فهرست همه ارتباطات TCP / IP فعال روی ماشین محلی، از جمله پروتکل لایه انتقال (معمولا فقط TCP)، پیامهای فرستاده شده و دریافت شده، آدرس IP و وضعیت ارتباط جاری را نشان میدهد. | netstat |
فهرست ارتباطات فعلی، از جمله آدرسهای IP و درگاهها را نشان میدهد. | netstat -n |
فهرست ارتباطات فعلی، از جمله آدرسهای IP، پورتها و FQDNها را نشان میدهد. | netstat -f |
همه ارتباطات TCP فعلی و پورتهای TCP و UDP که در حال گوش دادن است را نشان میدهد. | netstat –a |
یک گزارش آماری در ارتباط با پیامهای ارسال شده از سوی یک رابط شبکه همچون خطاها و دادههای از دست رفته را نشان میدهد. | netstat -e |
آمار مربوط به هر پیغام ارسال شده توسط یک میزبان را در ارتباط با پروتکلهای (TCP، UDP، IP یا ICMP) به شکل تفکیک شده نشان میدهد. | netstat -s |
PID (شناسه پردازه) را برای هر پردازه با استفاده از یک ارتباط و اطلاعاتی در ارتباط با اتصال نشان میدهد. | netstat -o |
اطلاعات جدول مسیریابی را نمایش میدهد. | netstat -r |
نام هر پردازه را با استفاده از اتصال و اطلاعات مربوط به اتصال به شکل فهرست شده نشان میدهد. برای استفاده از این سوییچ باید خط فرمان را با مجوز مدیریتی اجرا کنید. | netstat -b |
نکته: دقت کنید که پارامترهای فرمان netstat را میتوان در قالب یک فرمان واحد استفاده کرد، بهطور مثال، شما میتوانید از فرمان netstat -an برای نمایش آدرس آیپی و پورتهایی که روی ارتباط TCP فعال هستند و همچنین پورتهای UDP و TCP که در حال گوش کردن هستند استفاده کنید.
فرمان tracert یا traceroute
ابزار ویندوزی Tracert از رویکرد ارسال درخواستهای اکو پروتکل ICMP برای ردیابی مسیر دو گره شبکه و شناسایی همه هاپهایی که میان دو گره قرار دارند استفاده میکند. سیستمهای لینوکسی، یونیکس و macOS از دیتاگرامهای UDP یا در برخی موارد پیامهای TCP SYN در ارتباط با ابزارهای ردیابی مسیر استفاده میکنند، اما رویکرد به کارگفته شده در همه موارد یکسان است. Traceroute را میتوان به شکلی پیکربندی کرد که از پیامهای TCP یا ICMP استفاده کند. هر دو ابزار traceroute و tracert از یک روش آزمایش و خطا برای شناسایی گرهها در هر هاپ از مبدا تا مقصد استفاده میکنند. شکل زیر نحوه کارکرد ابزار traceroute در ارتباط با فرآیند ردیابی را نشان میدهد.
دو ابزار traceroute و tracert همراه با پارامترهای مختلفی که در جدول زیر مشاهده میکنید قابل استفاده هستند.
توضیح | فرمان |
---|---|
این سوییچ در زمان بررسی هاپها، تنها آیپی آنها را نشان داده و نام تبدیل شده آنها را باز نمیگرداند. اینکار باعث میشود فرآیند ردیابی با سرعت بیشتری به اتمام برسد. | traceroute –n google.com
یا tracert –d google.com |
اگر در نظر دارید تنها تعداد مشخصی از هاپها ردیابی شوند، کافی است از این سوییچ استفاده کنید. بهطور مثال میتوانید از دستور tracert -h 5 که تنها پنج هاپ را ردیابی میکند استفاده کنید. | traceroute –m 12 google.com یا tracert –h 12 google.com |
این سوییچ حداکثر زمان انتظار برای دریافت پاسخ از هاپ را مشخص میکند. مقداری که بر مبنای میلیثانیه تعیین میشود. | traceroute –w 2 google.com یا tracert –w 2000 google.com |
مقدار تعیین شده تعداد هاپها در اولین روپ را مشخص میکند. مقدار پیشفرض ۱ است که فرآیند ردیابی را از اولین روتری که در مسیر قرار دارد آغاز میکند. پس از شروع کار، در هاپهای بعدی مکانیابی شبکه ممکن است با کاهش سرعت شدید همراه شود. | traceroute –f 3 google.com |
این سوییچ مشخص میکند که دستور فوق باید از درخواستهای ECHO ICMP به جای دیتاگرامهای UDP استفاده کند. | traceroute –I google.com |
این سوییچ مشخص میکند که باید هاپهای TCP SYN به جای دیتاگرامهای UDP استفاده کند. | traceroute –T google.com |
تاکید میکند که تنها از بستههای IPv4 استفاده کند. | traceroute –۴ google.com یا tracert –۴ google.com |
این سوییچ زمانی کاربرد دارد که در نظر داشته باشید یک مقصد را بر مبنای پروتکل IPv4 یا Ipv6 ردیابی کنید. | traceroute –۶ google.com یا tracert –۶ google.com |
توجه داشته باشید که آزمایش مسیریابی ممکن است ممکن است ناتمام خاتمه پیدا کند. از دلایلی که باعث بروز این اتفاق میشوند به موارد زیر میتوان اشاره کرد:
- ۱.شبکه بیش از حد برای پردازش پیامها شلوغ بوده و در نتیجه پیامهایی همچون UDP یا ICMP که اولویت پایینتری دارند پردازش نمیشوند.
- ۲. یک دیوارآتش فرآیند انتقال پیامهای ICMP و UDP را مسدود کرده است، به ویژه اگر دریافت کننده بازه زمانی کوتاهی را تنظیم کرده باشد.
- ۳.دستگاهی که فرآیند ردیابی را انجام میدهد از کار افتاده باشد.
اگر میخواهید مسیر میزبانی را ردیابی کنید که پشت یک دیوارآتش قرار دارد، بهتر از است ازTCP در traceroute استفاده کنید. در غیر این صورت، تلاشهای شما برای ردیابی بی نتیجه خواهند بود. دقت کنید پینگ از انتقال ICMP استفاده میکند که محدودیتهای مشابه با این ابزار را دارد. یک کار ممکن برای گذر از محدودیتهای اعمال شده از سوی دیوارآتش بهکارگیری پروبهای چندگانه UDP یا ICMP در یک بازه زمانی کوتاه است، این رویکرد مبتنی بر تکرار ممکن است تا حدودی مفید واقع شود. برای استفاده از این تکنیک باید از پارامتر -z همراه با تعیین مقداری در واحد ثانیه (بیشتر از ۱۰) برای تعیین حداقل زمان انتظار میان پروبها استفاده کنید. این گزینه مانند بسیاری دیگر از گزینهها تنها در traceroute وجود داشته و در tracert در دسترس نیست. دقت کنید که ردیابی نمیتواند مشکلات پیکربندی روتر را شناسایی کرده یا تغییرات مسیرها در یک دوره زمانی را پیشبینی کند. بنابراین، ردیابی بهتر است در شبکهای که آشنا با آن هستید استفاده شود. ابزار traceroute یا tracert میتواند به شما در تشخیص مشکلات احتمالی شبکه یا تراکم شبکه کمک کند. در ادامه میتوانید بر مبنای تجربه خود و ارزیابی نتایج واقعی آزمون به پیشبینی آنچه بپردازید که ممکن است در آینده رخ دهد.
Pathping
ابزار مسیریابی ویندوزی Pathping ترکیبی از دو ابزار پینگ و tracert است که برای ارائه اطلاعات عمیقتر در مورد مسائل شبکه در امتداد یک مسیر استفاده میشود. این ابزار پینگهای چندگانه را برای هر هاپ در یک مسیر ارسال کرده و سپس اطلاعات تحلیل شده را درون یک گزارش تکمیلی ارسال میکند. برای مشاهده نمونهای از نوع اطلاعاتی که این ابزار ارائه میکند، دستور زیر را امتحان کنید:
Pathping google.com
برای متوقف کردن این فرمان از کلیدهای Ctrl+C استفاده کنید. سوییچهای مهم این فرمان در جدول زیر آورده شده است.
توضیح | فرمان pathping |
---|---|
این سویچ فرآیند تبدیل آدرسهای آیپی به نامها را انجام نمیدهد. | pathping –n google.com |
حداکثر تعداد هاپهایی که پیامها تا رسیدن به میزبان باید دریافت کنند را تعیین میکند. پیشفرض، مقدار ۳۰ است. این سوییچ باید همراه با تعیین تعداد مشخصی از هاپها استفاده شود. | pathping –h 12 google.com |
زمان انتظار میان پینگها را تعیین میکند. مقدار وارد شده برای انتظار بر حسب میلیثانیه محاسبه میشود. (۴۰۰۰ میلیثانیه برابر با ۴ ثانیه است.) | pathping –p 2000 google.com |
تعداد محاورهها برای هر هاپ را محدود میکند. این سوییچ باید همراه با تعداد محاورههایی که اجرا خواهند شد استفاده میشود. مقدار پیشفرض ۱۰۰ پینگ برای هر هاپ است که مدت زمان طولانی را طلب میکند. | pathping –q 4 google.com |
لینوکس ابزار مخصوص به خودش را دارد که mtr نامیده شده و عملکردی یکسان با pathping دارد.
Tcpdump
tcpdump یک ابزار خط فرمان رایگان برای سیستمعاملهای لینوکس و یونیکس است. در شمارههای گذشته با ابزار Wireshark آشنا شدید و دیدید که چگونه از این ابزار تحلیلگر در دنیای ویندوز میتوانید استفاده کنید. دقت کنید tcpdump یک ابزار شنود بستهها است، در حالی که Wireshark یک ابزار تحلیلگر پروتکل است. تفاوت یک ابزار تحلیلگر و ابزار شنود بستهها در سطحی از تحلیل و تفسیری که ارائه میکنند نهفته است. شبیه به ابزار Wireshark، tcpdump ترافیکی که از یک رابط شبکه عبور میکند، را ضبط میکند. خروجی این ابزار را میتوان در یک فایل ذخیره کرد. با توجه به گزینههای پیکربندی قوی و رابط کاربری خط فرمان قدرتمند، این یک ابزار نزد کارشناسان حوزه امنیت و شبکه محبوب است. برای آنکه بتوانید از ابزار فوق استفاده کنید، باید از دستور sudo استفاده کرده یا به سیستمعامل خود با مجوز مدیریتی بالا وارد شوید تا به tcpdump دسترسی داشته باشید. برای انجام این کار، قبل از اجرای هر دستور tcpdump باید sudo را وارد کرده یا sudo su root را وارد کنید تا حساب کاربری شما مجوز دسترسی به ریشه را به دست آورد. جدول زیر مثالهایی از بهکارگیری فرمان tcpdump را نشان میدهد.
توضیح | فرمان tcpdump |
---|---|
بستههای SSH یا تلنت را فیلتر میکند. این سوییچ زمانی مفید است که tcpdump را روی یک دستگاه شبکه از راه دور اجرا میکنید. | tcpdump not port 22 یا tcpdump not port 23 |
این سوییچ آدرسهای آیپی را به نامهای میزبان تبدیل نمیکند. | tcpdump -n |
تعداد بستههای دریافت شده را به ۵۰ عدد محدود میکند. | tcpdump -c 50 |
به همه واسطهای شبکه روی یک دستگاه گوش میدهد. | tcpdump -i any |
تمام اینترفیسهای موجود برای ضبط کردن را فهرست میکند. | tcpdump -D |
همه ترافیک به جزء ترافیک HTTP را فیلتر میکند. | tcpdump port http |
فایل خروجی را با نام capture.cap ذخیره میکند. | tcpdump -w capture.cap |
tcpdump -r capture.cap |
آدرسهای مک تکراری
دستگاهها در شبکههای جداگانه میتوانند آدرس مک یکسانی را بدون هیچگونه مشکلی داشته باشند. دو دستگاه در شبکه یکسان با یک آدرس MAC مشکلساز میشوند. از آنجایی که آدرس MAC به صورت ایستا توسط سازنده تعیین میشود، ممکن است تعجب کنید که چگونه دو دستگاه احتمالا یک آدرس مک MAC دارند. گاهی اوقات تولید کنندگان (به طور تصادفی یا غفلت) یک آدرس MAC را برای دو یا چند دستگاه مجددا استفاده میکنند. علاوه بر این، آدرس MAC را میتوان جعل هویت کرد که یک مشکل امنیتی به نام spoofing را به وجود میآورد. شبکهای که دسترسی به آن محدود به دستگاههای خاص و بر مبنای آدرس مک دستگاهها است، به هکرها اجازه میدهد آدرس MAC یک دستگاه مورد تایید را شنود کرده و به شبکه دسترسی پیدا کنند. پیادهسازی چنین حملهای کار نسبتا سادهای است، به همین دلیل فیلتر کردن آدرس MAC یک راه قابل اعتماد برای کنترل دسترسی به شبکه نیست. در بیشتر موارد آدرس MAC تکراری تنها باعث ایجاد مشکلات متناوب در برقراری ارتباط شده و به کامپیوترها اجازه نمیدهد به راحتی به شبکه متصل شوند. برای حل این مشکل تهمیدات زیر را در نظر بگیرید:
گام اول: هر کامپیوتر بهطور مرتب باید آدرس آیپی و آدرس مک تکراری خود را به شکل پخشی روی شبکه منتشر کند تا دستگاههای دیگر درون شبکه بتوانند جداول ARP خود را بهروزرسانی کنند.
گام ۲: سایر دستگاهها در پاسخ، باید رکوردهای خود را بهروزرسانی کرده و این اطلاعات بهروزشده را بسته به آخرین پیغامی که دریافت کردهاند برای سایر کامپیوترهای روی شبکه ارسال کنند.
گام ۳: گاهی اوقات دستگاهها به درستی با یک کامپیوتر ارتباط برقرار میکنند و گاهی اوقات رکوردهای آنها اشتباه است. خوشبختانه، آدرسهای MAC تکراری یک مشکل نسبتا نادر هستند. . این مشکل بیشتر در زمان مدیریت چندین دستگاه مجازی در یک شبکه بزرگ و در برخی موارد به دلیل خطای انسانی رخ میدهد. اکثر سوئیچها میتوانند مشکل را شناسایی کرده و برخی از آنها قادر به تولید پیامهای خطای مفید در این ارتباط هستند. به همین دلیل است که مبحث بررسی آدرس مک و بهروزرسانی پیکربندی هر دستگاه به ویژه دستگاههای مجازی از اهمیت بالایی برخوردار است.
شکست سختافزاری
هنگامی که یک روتر، سوئیچ، کارت شبکه یا سختافزاری از کار میافتد، کار شما به عنوان یک تکنسین شبکه شناسایی محل خرابی سختافزاری است. حتا در شبکههای کوچکتر نیز همواره این چالش وجود دارد که دقیقا کدام دستگاه باعث بروز مشکل شده است. اگر چه شما میتوانید به صورت دستی هر یک از دستگاههای تحت شبکه بررسی کنید، اما با ترفند ساده زیر میتوانید در وقت خود صرفهجویی کنید.
۱. از ابزار tracert یا traceroute (بسته به سیستمعامل) برای ردیابی روترهای مشکلدار و سایر دستگاهها در شبکههای بزرگتر استفاده کنید. از آنجایی که پیامهای ICMP اولویت پایینی دارند، مطمئن شوید که فرمان را چندین بار اجرا کرده و قبل از نتیجهگیری نتایج را با یکدیگر مقایسه کنید.
۲. در نظر داشته باشید که روترها برای هدایت ترافیک به سمت مقصد طراحی شدهاند. اگر در نظر دارید گرهای که آن سوی یک شبکه قرار دارد را بررسی کرده و این گره یک روتر نیست، بهتر است چند مرتبه بازخوردهای tracert یا traceroute را بررسی کنید.
۳. همانطور که دستگاه مشکلدار را زیر نظر گرفتهاید، از پینگ برای آزمایش اتصال به شبکه استفاده کنید.
منبع: شبکه-مگ