تبلیغات
ســـــــــی تــــكــــــ - اشکال زدائی شبکه های مبتنی بر TCP/IP قسمت 3
 
ســـــــــی تــــكــــــ
درباره وبلاگ


سی تک ، یک نام نیست ، حتی اوج یک کوه نیست ، ساده تر که بگویم ، " چیزی به وسعت یک عمر خاطره ست " ، چیزی شبیه رقابتی بی ثمــــــر ، شاید برای یک از یاد رفته ی عاصی ، ســــی تک ، نشانه بود ، آواز یک پرنده ی خار زار برای آغـــاز مبارزه ، در جایی که فرصت نبرد نه برای رستم بود و نه ، اسفندیار ....!

مدیر وبلاگ : شیرین عنایتی
نویسندگان
ping  و Tracert  ، دو برنامه مفید به منظور تست وضعیت ارتباطی گره های موجود در یک شبکه مبتنی برTCP/IP می باشند . در اینجا به درخواست برخی از دانشجویان با برنامه بسیار سودمند ping آشنا خواهیم شد و در بخش های بعدی به بررسی دستور tracert خواهیم پرداخت .


دستور 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

Optional data

استفاده از 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 . به همین دلیل ، می بایست همواره یک طرح کامل از شبکه به همراه جزئیات مربوطه وجود داشته باشد تا در صورت بروز مشکلاتی اینچنین به سرعت بتوان مسیر مربوطه را برای اشکال زدائی بررسی نمود . در چنین مواردی ، می بایست هر دستگاه موجود در مسیر ارتباطی بررسی گردد .





نوع مطلب : شبكه های كامپیوتری، 
برچسب ها :
لینک های مرتبط :
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :