اشکال زدائی شبکه های مبتنی بر TCP/IP

ipconfig ، يکی از دستورات مفيد به منظور بررسی وضعيت پيکربندی TCP/IP در کامپيوترهای سرويس دهنده و يا سرويس گيرنده ای است که بر روی آنان ويندوز نصب شده است . در يونيکس و لينوکس از دستور ifconfig در اين رابطه استفاده می شود . در سيستم هائی که بر روی آنان ويندوز 9x و يا ME نصب شده است ، می توان از دستور winipcfg استفاده نمود .
سه‌شنبه، 15 بهمن 1387
تخمین زمان مطالعه:
موارد بیشتر برای شما
اشکال زدائی شبکه های مبتنی بر TCP/IP
اشکال زدائی شبکه های مبتنی بر TCP/IP
اشکال زدائی شبکه های مبتنی بر TCP/IP

ipconfig ، يکی از دستورات مفيد به منظور بررسی وضعيت پيکربندی TCP/IP در کامپيوترهای سرويس دهنده و يا سرويس گيرنده ای است که بر روی آنان ويندوز نصب شده است . در يونيکس و لينوکس از دستور ifconfig در اين رابطه استفاده می شود . در سيستم هائی که بر روی آنان ويندوز 9x و يا ME نصب شده است ، می توان از دستور winipcfg استفاده نمود .

استفاده از ipconfig

برای استفاده از دستور فوق، کافی است نام آن را از طريق پنجره command prompt تايپ نمود . عملکرد ipconfig و اطلاعاتی که در اثر اجرای آن نمايش داده خواهد شد به نوع سوئيچ استفاده شده ، بستگی دارد .
استفاده از ipconfig بدون سوئيچ ،اطلاعات پيکربندی TCP/IP در ارتباط با هر يک از آداپتورهای موجود بر روی سيستم را نمايش خواهد داد:
• آدرس IP
• Subnet Mask
• Default gateway
• اطلاعات سرويس دهنده DNS
• Domain

تايپدستور

خروجی

C:\> ipconfig

 Ethernet adapter MyLan1:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . .   : 10.10.1.1
Subnet Mask . . . . . . . . . . . : 255.0.0.0
Default Gateway . . . . . . . . . :

PPP adapter My ISP:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . .   : 10.1.1.216
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 10.1.1.216

دستور فوق ، اطلاعات مربوط به اتصالات از نوع PPP که از آنان در Dialup و VPN استفاده می شود را نيز نمايش خواهد داد .
استفاده از ipconfig به همراه سوئيچ all ، علاوه بر نمايش اطلاعات اشاره شده در بخش قبل ، اطلاعات ديگری را نيز نمايش خواهد داد :
• آدرس سخت افزاری کارت شبکه ( آدرس MAC )
• اطلاعات مربوط به DHCP

تايپدستور

خروجی

C:\> ipconfig /all

 Windows 2000 IP Configuration

Host Name . . . . . . . . . . . . : srco
Primary DNS Suffix . . . . . . . : srco.ir
Node Type . . . . . . . . . . . . : Broadcast
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : srco.ir

Ethernet adapter MyLan1:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : D-Link DFE-680TX CardBus PC Card
Physical Address. . . . . . . . . : 00-50-BA-79-DB-6A
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . .    : 10.10.1.1
Subnet Mask . . . . . . . . . . .  : 255.0.0.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . .  : 127.0.0.1
PPP adapter My ISP:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . .    : WAN (PPP/SLIP) Interface
Physical Address. . . . . . . . . : 00-53-45-00-00-00
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . .    : 10.1.1.216
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . .: 10.1.1.216
DNS Servers . . . . . . . . . . . : x1.y1.z1.w1
                                            x2.y2.z2.w2

ساير سوئيچ های دستور ipconfig : با استفاده از دستور ipconfig و برخی سوئيچ های آن ( release ,renew ) ، می توان اطلاعات مربوط به پيکربندی TCP/IP ارائه شده توسط سرويس دهنده DHCP را که در اختيار يک سرويس گيرنده قرار داده شده است را آزاد و يا آنان را مجددا" از سرويس دهنده درخواست نمود . فرآيند فوق به منظور تشخيص عملکرد صحيح سرويس دهنده DHCP در شبکه بسيار مفيد و کارساز است . ( آيا سرويس دهنده DHCP وظايف خود را به خوبی انجام می دهد ؟ آيا يک سرويس گيرنده قادر به برقراری ارتباط با سرويس دهنده DHCP به منظور درخواست و دريافت اطلاعات پيکربندی TCP/IP می باشد ؟ ) . دستور ipconfig دارای سوئيچ های مفيد متعددی است که می توان با توجه به نوع خواسته خود از آنان استفاده نمود :

عملکرد

سوئيچ 

 آدرس IPپيکربندی شده توسط  DHCPرا آزاد می نمايد . در صورتی که سوئيچ فوق را به تنهائی و بدون مشخص نمودن adapterتايپ نمائيم،پيکربندی IPبرای تمامی آداپتورهای موجود بر روی کامپيوتر، آزاد می گردد. در صورتی که قصد آزاد سازی اطلاعات پيکربندی مربوط به يک آداپتور خاص را داشته باشيم ، می بايست به همراه سوئيچ فوق نام آداپتور نيز مشخص گردد .
( مثلا" ipconfig / release MyLan1 )

 / release [ adapter]

يک آدرس IPرا بر اساس اطلاعات جديدی که از طريق DHCPدريافت می نمايد ، پيکربندی مجدد می نمايد . در صورتی که سوئيچ فوق را به تنهائی و بدون مشخص نمودن adapterتايپ نمائيم،پيکربندی IP  تمامی آداپتورهای موجود بر روی کامپيوتر، مجددا" انجام خواهد شد.  در صورتی که قصد ايجاد مجدد اطلاعات پيکربندی مربوط به يک آداپتور خاص را داشته باشيم ، می بايست به همراه سوئيچ فوق نام آداپتور نيز مشخص گردد.
( مثلا" ipconfig / renewMyLan1 )

 /renew [adapter]

حذف محتويات Dns Resolver Cache

/ flushdn

Refreshنمودن تمامی اطلاعات توليد شده توسط DHCPبرای آداپتور و ريجستر نمودن اسامی Dns

/ registerdn

 نمايش محتويات DnsResolver Cache

/ displaydns

نمايش تمامی DHCPClass IDمجاز برای آداپتور

/ showclassid [adapter]

تغيير  DHCP ClassID 

/setclassid [adapter] [classidtoset ]

توضيحات :

• تشخيص نام آداپتور : نام آداپتور را می توان با کليک ( Right click ) بر روی Network Neighborhood و انتخاب گزينه properties، از طريق پنجره Network and Dial-up Connections مشاهده نمود ( اسامی آدپتورها ، نام آيکون ها می باشند ) .
• مفهوم DNS Cache : زمانی که يک سيستم ، ترجمه ( تبديل نام host به آدرس ) را از طريق يک سرويس دهنده DNS دريافت می نمايد ، برای مدت زمان کوتاهی آن را در يک Cache ذخيره می نمايد . در صورتی که مجددا" از نام استفاده شود ، پشته TCP/IP محتويات Cache را به منظور يافتن رکورد درخواستی بررسی می نمايد . بدين ترتيب امکان پاسخگوئی سريعتر به درخواست ترجمه نسبت به حالتی که در خواست برای يک سرويس دهنده DNS ارسال می شود ، فراهم می گردد . با توجه به اين که اندازه Cache نمی تواند از يک ميزان منطقی و تعريف شده تجاوز نمايد ، هر رکورد موجود در Cache پس از مدت زمانی خاص حذف می گردد. در صورت اعمال هرگونه تغييرات در DNS ( مثلا" تغيير يک رکورد DNS ) ، می توان با استفاده از دستور ipconfig/flushdns تمامی رکوردهای موجود در cache را حذف نمود . بدين ترتيب در صورت درخواست يک نام host ، با سرويس دهنده DNS مشورت می گردد و نتايج مجددا" در Cache ذخيره خواهند شد . دستور ipconfig / displaydns ، محتويات cache را نمايش خواهد داد. از اطلاعاتی که نمايش داده می شود ، می توان به منظور تشخيص اين موضوع که آيا برای ترجمه نام به آدرس از Cache و يا سرويس دهنده DNS استفاده شده است ، کمک گرفت .
• موارد استفاده از دستور Ipconfig : از دستور فوق در مواردی که قصد تشخيص اين موضوع را داريم که آيا سرويس دهنده DNS و DHCP در شبکه به درستی وظايف خود را انجام می دهند ، استفاده می شود( علاوه بر مشاهده اطلاعات پيکربندی TCP/IP ) . مثلا" با استفاده از سوئيچ های release و renew ، می توان براحتی تشخيص داد که آيا در زمينه دريافت اطلاعات پيکربندی از يک سرويس دهنده DHCP مشکل خاصی وجود دارد .از سوئيچ های مرتبط با DNS می توان به منظور اعمال تغييرات پيکربندی ، بهنگام سازی cache محلی و يا ريجستر نمودن اطلاعات پيکربندی جديد با يک سرويس دهنده DNS ، استفاده نمود .
• امکانات جانبی به همراه دستور ipconfig : با استفاده از سوئيچ all / اطلاعات متنوعی در رابطه با پيکربندی TCP/IP نمايش داده خواهد شد . در صورتی که حجم اطلاعات بگونه ای است که می بايست صفحه را scroll نمود ، می توان از More| به همراه دستور ipconfig استفاده نمود . در صورت تمايل می توان خروجی دستور ipconfig را در مقابل ارسال بر روی دستگاه استاندارد خروجی ( صفحه نمايشگر ) ، در يک فايل ذخيره نمود تا امکان بررسی سريعتر نتايج و رفع مشکل فراهم گردد.
( ipconfg /all > test1.txt )
همانگونه که اشاره گرديد در سيتم هائی که از لينوکس و يا يونيکس استفاده می نمايند ، از دستور ifconfig استفاده می گردد. از دستور فوق برای نمايش اطلاعات پيکربندی IP و اعمال تغييرات لازم استفاده می شود .

دستور Ping

دستور Ping می تواند نقطه شروع مناسبی برای اشکال زدائی يک شبکه مبتنی بر TCP/IP باشد . از برنامه فوق برای تست وضعيت ارتباط بين دو سيستم موجود در شبکه استفاده می شود . اين برنامه از پروتکل ICMP ( اقتباس شده از Internet Control Message Protocol ) به منظور مبادله بسته های اطلاعاتی با سيستم راه دور استفاده می کند (ICMP از پروتکل UDP برای حمل داده استفاده می نمايد ) .
برنامه Ping در ابتدا توسط Mike Muuss و با عملکردی ساده ، پياده سازی گرديد. اين برنامه از پروتکل ICMP به منظور ارسال پيام های UDP به يک آدرس ( ECHO REQUEST ) استفاده می نمايد و پس از ارسال پيام ، در انتظار دريافت پاسخ ( ECHO REPLY ) می ماند . سيستم راه دور، يک بسته اطلاعاتی از نوع پاسخ ( REPLY ) را برای فرستنده پيام ارسال می نمايد و بر اساس آن Round-trip ( ارسال يک درخواست و دريافت پاسخ ) محاسبه می گردد .
ساختار بسته های اطلاعاتی ECHO REQUEST و ECHO REPLY در جدول زير نشان داده شده است . از فيلد اطلاعاتی "نوع پيام " به منظور مشخص نمودن نوع پيام ، استفاده می شود . در صورتی که مقدار اين فيلد هشت باشد ، بسته اطلاعاتی از نوع ECHO REQUEST و در صورتی که مقدار اين فيلد صفر باشد ، بسته اطلاعاتی از نوع ECHO REPLY خواهد بود .

ساختار بسته های اطلاعاتی  ECHO REQUESTو ECHO REPLY

نوع پيام ICMP
( صفر و يا هشت )

کد صفر

CheckSum

Identifier

Sequence number

Optionaldata

استفاده از Ping

Ping دارای عملکردی بسيار ساده است . در ابتدا فيلد Sequence number مقدار صفر را خواهد گرفت و به ازای ارسال هر بسته اطلاعاتی، يک واحد به آن اضافه می شود . مقدار فيلد Identifier ، منحصر بفرد بوده تا امکان تشخيص بسته های اطلاعاتی برگردانده شده وجود داشته باشد ( در مواردی که بيش از يک کاربر بطور همزمان از دستور Ping بر روی يک ماشين استفاده می نمايند) . در اکثر نسخه های يونيکس و لينوکس ، مقدار فيلد Identifier معادل Process ID پردازه ای در نظر گرفته می شود که پيام ECHO REQUEST را ارسال نموده است .
پس از دريافت پيام ECHO REQUEST توسط کامپيوتر دريافت کننده ، وی يک پاسخ ( REPLY ) را برای فرستنده ارسال می نمايد که شامل Identifier و Sequence number مشابه بسته اطلاعاتی ارسالی است .
با توجه به پاسخ ارائه شده توسط دريافت کننده بسته های اطلاعاتی می توان به نتايج متفاوتی دست يافت :
• تمامی بسته های اطلاعاتی ارسالی ، مجددا" برگردانده می شوند . ( بين سيستم ارسال کننده و دريافت کننده مشکل ارتباطی وجود ندارد ) .
• برخی از بسته های اطلاعاتی ارسالی، توسط دريافت کننده برگردانده نمی شوند ( کاهش بسته های اطلاعاتی ارسالی ) و يا با اولويتی که ارسال می گردند با همان اولويت دريافت نمی شوند . اين مسئله می تواند نشاندهنده وجود اشکال در يک شبکه باشد . در اين رابطه احتمال ديگری نيز وجود دارد : سيستم از راه دور ( سيستمی که می بايست به پيام های ارسالی پاسخ دهد ) درگير پردازش های متعددی است و قادر به پاسخگوئی پيام های ECHO REQUEST در مدت زمان مشخص شده نمی باشد .
دستور Ping ، مدت زمان Round-trip بر حسب ميلی ثانيه را محاسبه و نمايش می دهد . برای محاسبه مدت زمان Round-trip ، برنامه ping زمان ارسال بسته اطلاعاتی را در فيلد Optional data قرار داده و پس از برگشت بسته اطلاعاتی، زمان ذخيره شده را با زمان جاری سيستم مقايسه نموده تا در نهايت مدت زمان رفت و برگشت يک بسته اطلاعاتی مشخص گردد . دستور Ping همچنين مقدار TTL ( اقتباس شده از Time To Live ) را در خروجی نمايش خواهد داد .TTL مدت زمان اعتبار يک بسته اطلاعاتی را مشخص نموده و هر host و يا روتر موجود در مسير بسته اطلاعاتی معمولا" به ميزان يک ثانيه آن را کاهش می دهد .
در برخی موارد ممکن است در زمان ارسال درخواست های متوالی ping ، مدت زمان Round-trip کاهش پيدا نمايد . اين موضوع می تواند دلايل متعددی داشته باشد :
• ماشين مقصد ( و يا روتر gateway ) در آن مقطع زمانی در جدول محلی ARP نمی باشد و مدت زمانی طول خواهد کشيد ( ميلی ثاينه ) تا arp آدرس سخت افزاری اولين بسته اطللاعاتی را بدست آورد .
• در صورتی که به همراه دستور ping در مقابل استفاده از آدرس IP از نام host استفاده شود ، ممکن است يافتن سرويس دهنده DNS که برنامه ping می بايست با آن ارتباط برقرار نمايد( ترجمه نام host به آدرس IP ) ، زمان خاص خود را داشته باشد .
در زمان استفاده از دستور Ping بهتر است که در ابتدا عمليات ping را در ارتباط با اينترفيس محلی و يا آدرس
( Loopback ( IP: 127.0.0.1 شروع نمود . آدرس loopback در پشته TCP/IP استفاده شده و می توان از آن به منظور حصول اطمينان از صحت کارکرد پشته محلی ، استفاده نمود . آدرس فوق ، يک آدرس IP رزو شده است که امکان استفاده از آن در اينترنت وجود ندارد . در صورتی که نمی توان آدرس IP سستم محلی را ping نمود ، ممکن است پيکربندی سيستم دارای مشکل باشد . در صورتی که نمی توان آدرس Loopback را ping نمود ، ممکن است پشته TCP/IP و يا آداپتور شبکه مشکل داشته باشند .

استفاده از Ping در ويندوز

جدول زير گرامر دستور Ping به همراه عملکرد برخی از سوئيچ های متداول آن را نشان می دهد :

گرامر دستور Pingدر ويندوز

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]  
[-w timeout] destination-list

عملکرد

سوئيچ

به صورت پيوسته عمليات Pingرا انجام می دهد. برای توقف برنامه pingمی توان از کليدهای CTRL+Cاستفاده نمود .

-t

 ترجمه آدرس به نام را انجام می دهد

-a

تعداد بسته های اطلاعاتی ICMP ECHO REQUESTارسالی را مشخص می نمايد .

-n count

اندازه بافر را ارسال می نمايد.

-1 size

 مقدار TTLرا مشخص می نمايد .

-i TTL

مدت زمان انتظار پاسخ برحسب ميلی ثانيه

-w timeout

نحوه استفاده از دستور Ping :

تايپدستور

خروجی

C:\>ping www.google.com  

 Pinging www.google.akadns.net [64.233.187.99] with 32 bytes of data:

Reply from 64.233.187.99: bytes=32 time=421ms TTL=238
Reply from 64.233.187.99: bytes=32 time=430ms TTL=238
Reply from 64.233.187.99: bytes=32 time=431ms TTL=238
Reply from 64.233.187.99: bytes=32 time=430ms TTL=238

Ping statistics for 64.233.187.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 421ms, Maximum = 431ms, Average = 428ms

توضيحات :

• چهار بسته اطلاعاتی ارسال شده است که همان چهار بسته نيز دريافت شده اند ( در زمان انتقال، هيچيک از بسته های اطلاعاتی گم نشده اند )
• زمان پاسخ حدودا" 430 ميلی ثانيه بوده است
• اندازه بسته های اطلاعاتی ارسالی ، سی و دو بايت است .
اشکال زدائی ارتباط بين گره های يک شبکه با استفاده از دستور Ping
برای اشکال زدائی ارتباط بين گره های يک شبکه ، می توان مراحل زير را دنبال نمود :
• آيا پيکربندی TCP/IP بر روی سيسم محلی ( ارسال کننده ) درست است ؟ برای پاسخ به سوال فوق می توان آدرس IP سيستم محلی را Ping و نتايج را مشاهده نمود . در صورت عدم ارائه پاسخ مناسب ،می تواند مشکل مربوط به پيکربندی تنظيمات TCP/IP بر روی سيستم محلی باشد .
• آيا امکان ping نمودن نام host وجود دارد ؟ برای پاسخ به سوال فوق به همراه دستور ping از نام host استفاده نمائيد . ping ، قبل از ارسال بسته اطلاعاتی برای host مورد نظر ، نام آن را به يک آدرس IP ترجمه می نمايد . اگر آدرسی که Ping ترجمه می نمايد ، آدرسی نيست که تصور آن را داريد ، می بايست پيکربندی سيستم خود را بررسی نمائيد . در چنين مواردی ممکن است شما کامپيوتر خود را بگونه ای پيکربندی نموده ايد که از يک آدرس IP خاص استفاده نمايد ولی در سرويس دهنده DNS ، به کامپيوتر شما يک آدرس IP ديگر مرتبط شده است . در اين رابطه می توان از دستور nslookup به منظور اشکال زدائی ترجمه استفاده نمود .
• آيا امکان ارتباط با سيستمی ديگر در شبکه وجود دارد ؟ برای پاسخگوئی به سوال فوق می بايست يک سيستم ديگر را که مطمئن هستيد در Subnet شما وجود دارد ، ping نمائيد . در صورتی که نتايج موفقيت آميز باشد ، شما می توانيد با اعضاء broadcast Domain ارتباط برقرار نمائيد .
• آيا امکان ارتباط با Default Gateway وجود دارد ؟ Default Gateway ، روتر و يا دستگاهی ديگر است که Subnet شما را به ساير شبکه ها متصل می نمايد. در صورت عدم امکان ping نمودن Default Gateway ، دو احتمال می تواند وجود داشته باشد : احتمال اول : ممکن است آدرس Subnet شما اشتباه باشد . در چنين مواردی می بايست پيکربندی سيستم بررسی گردد تا اين اطمينان حاصل شود که شما از يک آدرس درست برای روتر و يا host ديگر که مسئول فورواردينگ بسته های اطلاعاتی در Local Subnet است ، استفاده می نمائيد . احتمال دوم : ممکن است خود Default gateway دارای مشکل باشد . برای اطمينان از اين موضوع ، می توان از طريق يک سيستم ديگر موجود در شبکه ، Default Gateway را ping نمود . در صورتی که مشکل همچنان باقی است ، می بايست برای حل مشکل بر روی Default Gateway متمرکز گرديد .
• آيا امکان ارتباط با ساير سيستم های موجود در خارج از شبکه محلی وجود دارد ؟ برای پاسخ به سوال فوق ، می توان يک سيستم راه دور را ping نمود . در صورتی که عمليات توام با موفقيت باشد ، ارتباط شما از طريق Default gateway به درستی برقرار شده است و در صورت عدم موفقيت ، دلايل متعددی می تواند وجود داشته باشد : بروز اشکال در سيستم مقصد ، بروز اشکال در روتينگ به سيستم مقصد و يا تجهيزات موجود در خارج از شبکه محلی
و اما دو نکته که بد نيست به آنان نيز اشاره ای داشته باشيم :
• نکته اول : همانگونه که ملاحظه گرديد ، دستور ping دارای امکاناتی مفيد و قدرتمند به منظور اشکال زدائی ارتباط بين گره ها در شبکه های مبتنی بر TCP/IP است، ولی Ping of Death که احتمالا" نام آن را تاکنون شنيده ايد دارای وضعيتی اينچنين نمی باشد . Ping of Death يک نوع تهاجم در شبکه های کامپيوتری است که در آن يک مهاجم با استفاده از برنامه هائی خاص ، بسته های اطلاعاتی ICMP را توليد می نمايد که دارای اندازه ای بيش از حد مجاز می باشند . در صورتی که نرم افزار موجود بر روی سيستم مقصد به درستی Patch نشده باشد ، بسته های اطلاعاتی ارسالی توسط مهاجمان دريافت و بخش عمده ای از حافظه را اشغال نموده و می تواند سرريز حافظه را بدنبال داشته باشد . مديران شبکه می بايست يک محيط ايمن به منظور استفاده از ping را در شبکه فراهم نموده تا امکان تحقق چنين حملاتی در شبکه وجود نداشته باشد .
• نکته دوم : در صورتی که نتوان يک کامپيوتر راه دور را ping نمود ، نمی توان با قاطعيت اعلام نمود که سيستم مقصد به شبکه متصل نمی باشد و يا مشکل مربوط به کابل کشی شبکه است . در اين رابطه دلايل متعددی می تواند وجود داشته باشد : بروز اشکال در هر يک از دستگاه های موجود در مسير ارتباطی نظير هاب ، سوئيچ ، روتر و يا Default Gateway . به همين دليل ، می بايست همواره يک طرح کامل از شبکه به همراه جزئيات مربوطه وجود داشته باشد تا در صورت بروز مشکلاتی اينچنين به سرعت بتوان مسير مربوطه را برای اشکال زدائی بررسی نمود . در چنين مواردی ، می بايست هر دستگاه موجود در مسير ارتباطی بررسی گردد .
هر بسته اطلاعاتی در يک شبکه کامپيوتری دارای مسيری مشخص از زمان ارسال توسط فرستنده تا زمان دريافت توسط گيرنده ( گيرندگان ) می باشد . در صورتی که مقصد يک بسته اطلاعاتی برای سيستمی خارج از شبکه محلی باشد ، وی در مسير خود از بين دستگاه ها و يا روترهای متعددی عبور می نمايد تا به مقصد نهائی خود برسد . مثلا" زمانی که آدرس يک وب سايت را در مرورگر خود تايپ می نمائيد ، درخواست شما از بين روترها و کامپيوترهای متعددی عبور می نمايد تا در نهايت به سرويس دهنده مقصد برسد .
برای مشاهده مسير يک بسته اطلاعاتی، از دستور tracerout که در برخی از سيستم های عامل نظير ويندوز ( از ويندور 98 تا 2003 ) به آن tracert گفته می شود ، استفاده می گردد.در اکثر سيستم هائی که از يونيکس و لينوکس استفاده می نمايند ، می توان از دستور traceroute به منظور مشاهده مسير يک بسته اطلاعاتی استفاده نمود .

موارد استفاده از دستور tracert

• عدم امکان ping نمودن يک کامپيوتر موجود در خارج از Gateway پيش فرض . با استفاده از دستور فوق ، می توان کامپيوترها و روترهای موجود در مسير يک بسته اطلاعاتی تا رسيدن به مقصد نهائی را مشاهده نمود . بدين ترتيب امکان مشاهده محلی که از آن نقطه به بعد امکان حرکت بسته اطلاعاتی وجود ندارد ، فراهم می گردد .
• در صورتی که امکان حرکت بسته های اطلاعاتی از مبداء به مقصد وجود نداشته باشد و يا زمان پاسخ دستور ping زمانی نامعقول و طولانی باشد .
• آگاهی از محل توقف يک بسته اطلاعاتی در شبکه

نحوه عملکرد دستور tracert

دستور فوق از فيلد TTL مربوط به IP در ICMP Echo Request و پيام های ICMP Time Exceeded به منظور تعيين مسير مبداء تا مقصد يک بسته اطلاعاتی استفاده می نمايد . عملکرد اين دستور نيز مشابه ping است و وی نيز از پيام های مبتنی بر ICMP برای يافتن هر يک از دستگاه های موجود در مسير يک بسته اطلاعاتی ، استفاده می نمايد . برای تشخيص مسير حرکت ، به TTL موجود در بسته اطلاعاتی يک مقدار اوليه نسبت داده می شود . TTL ، يک عدد صحيح است که حداکثر تعداد hop ( گره و يا روتر ) را که يک بسته اطلاعاتی در مسير خود با آنان برخورد می نمايد را مشخص می نمايد ( قبل از اين که توسط IP دورانداخته شود ). مقدار TTL در ابتدا يک خواهد بود و هر روتر و دستگاه موجود در مسير بسته اطلاعاتی ، يک واحد به آن اضافه می نمايد .
بدين ترتيب برنامه tracert قادر به دريافت پيام TIME_EXCEEDED ICMP از هر يک از روترها و يا ساير دستگاه های موجود در مسير يک بسته اطلاعاتی می باشد .
شکل زير نحوه عملکرد دستور tracert را نشان می دهد .
همانگونه که در شکل فوق مشاهده می گردد ، کامپيوتر A يک مجموعه از پيام های ICMP ECHO REQUEST را توليد و آنان را برای کامپيوتر B ارسال می نمايد. زمانی که اولين بسته اطلاعاتی ارسال می شود ، مقدار TTL يک خواهد بود و در روتر شماره يک مقدار آن صفر شده و يک پيام TIME_EXCEEDED ICMP ، برای کامپيوتر A ارسال می گردد . کامپيوتر A مجددا" يک بسته اطلاعاتی ICMP ديگر را ارسال می نمايد . ولی اين مرتبه مقدار TTL آن دو در نظر گرفته می شود . در چنين حالتی روتر اول ، بسته اطلاعاتی را عبور داده و يک واحد از مقدار TTL کم می نمايد و آن را برای روتر دوم ارسال می نمايد . ( در اين مقطع مقدار TTL=1 شده است ) . روتر دوم مقدار TTL را بررسی نموده و از آن يک واحد کم خواهد کرد . با توجه به اين که مقدار TTL=0 صفر شده است ، مجددا" يک پيام TIME_EXCEEDED ICMP برای کامپيوتر A ارسال می گردد . زمانی که ICMP ECHO REQUEST به کامپيوتر B می رسد ، وی يک ICMP Echo Reply را برمی گرداند . بدين ترتيب ، کامپيوتر A قادر به تشخيص تعداد hop موجود در مسير خواهد بود.

استفاده از دستور tracert

جدول زير گرامر دستور tracert به همراه عملکرد برخی از سوئيچ های متداول آن را نشان می دهد :

گرامر دستور tracertدر ويندوز

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

عملکرد

سوئيچ

نام hostرا به آدرس IPترجمه نمی نمايد .

-d

حداکثر تعداد hopبرای جستجوی مقصد را مشخص می نمايد .

-h maximum_hops

مدت زمان انتظار برای دريافت پاسخ بر حسب ميلی ثانيه را مشخص می نمايد .

-w timeout

نحوه استفاده از دستور tracert :

تايپدستور

خروجی

C:\>tracert www.google.com

Tracing route to www.google.akadns.net [66.102.11.99]
over a maximum of 30 hops:

1 180 ms 170 ms 191 ms x1.y1.z1.w1
2 201 ms 190 ms 190 ms x2.y2.z2.w2
3 201 ms 180 ms 190 ms x3.y3.z3.w3
4 * 217.218.96.253 reports: Destination net unreachable.

Trace complete.

توضيحات :

• در مواردی که در مسير يک بسته اطلاعاتی مشکل خاصی ايجاد شود و يا پيام ICMP Time Exceeded برگردانده نشود ، در خروجی علامت "ستاره" نشان داده خواهد شد ( در سه ستونی که معمولا" زمان round-trip را نمايش می دهند ) . در چنين مواردی يک پيام Request timed out در قسمت سمت راست نمايش داده می شود .
• در برنامه اوليه tracert مقدار پورت در هدر UDP ، يک پورت UNREACHABLE در نظر گرفته می شد . بنابراين زمانی که بسته اطلاعاتی ICMP به مقصد نهائی خود می رسد ، يک پيام ICMP DESTINATION UNREACHABLE توسط کامپيوتر مقصد برگردانده می شود .
• در صورتی که آخرين گره مشاهده شده در خروجی دستور tracert مقصد نهائی باشد ، تمامی گره ها و يا روترهای موجود در مسير نمايش داده شده اند .




ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط