دستور Ping

دستور Ping یا Packet Internet Group از ساده ترین و کاربردی ترین ابزارهای خطایابی قابل دسترس TCP/IP است.این کامند برای تست اتصال یک دستگاه یا سیستم به سیستم های دیگر و تایید فعال بودن سیستم مقصد استفاده می شود.همچنین برای بررسی برقراری ارتباط با یک host در شبکه نیز از این کامند استفاده می شود.زمانی که بین دو کامپیوتر مشکل برقراری اتصال وجود داشته باشد،استفاده از این کامند اولین قدم در پیدا کردن هرگونه خطا در این زمینه است.درواقع ping ساده ترین کامندی است که اگر (خدای نکرده ) یک کارشناس IT با آن آشنایی نداشته باشد،مدرکش زیر سوال میرود!

حال اینکه ping به چه صورت کار می کند:ping از پروتکل ICMP یا Internet Control Message Protocol برای بررسی برقراری اتصال با یک host یا remote host استفاده می کند.درواقع این کامند با ارسال درخواست (request ) به مقصد،منتظر پاسخ (reply) می ماند و دریافت پاسخ از مقصد به معنی وجود ارتباط می باشد. د رمواردی که در برقراری اتصال به اینترنت دچار مشکل هستیم باید مراحل زیر را با استفاده از دستور ping طی کنیم .طی کردن این موارد باعث می شود متوجه شویم گره کار در کدام قسمت است.

·         ابتدا برقراری اتصال سیستم خود را با شبکه از طریق ping 127.0.0.1 چک می کنیم.در صورتی که به درخواست ما (request ) پاسخ داده شود (reply ) پس مشکل از سیستم ما نمی باشد.

1

Ping  IP Address  of local  host

 

1

2

3

4

5

6

7

8

9

10

Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

   

Ping statistics for 127.0.0.1:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

·         سپس شبکه داخلی را تست می کنیم.برای این منظور یکی از کامپیوترهای دیگری که در شبکه محلی ما (local network) قرار دارد را ping می کنیم.

 

1

Ping  IP Address  of local  network

1

2

3

4

5

6

7

8

9

10

Pinging 192.168.0.2 with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

   

Ping statistics for 192.168.0.2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

·         اگر در مرحله ی قبل نیز مشکلی نداشتیم default gateway را ping می کنیم .اینکار را با کامند زیر انجام می دهیم.با این کامند اتصال default gateway را با اینترنت بررسی می کنیم .در صورتی که از این کامند پاسخی (reply ) گرفتیم پس در برقراری اتصال default gateway با اینترنت مشکلی نداریم.

 

1

Ping IP Address of default  gateway

1

2

3

4

5

6

7

8

9

10

Pinging 192.168.0.1 with 32 bytes of data:

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

   

Ping statistics for 192.168.0.1:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

·         در مرحله ی آخر برای بررسی برقراری ارتباط ، یک remote host (یا مثلا یک سایت مثل سایت yahoo.com ) را ping می کنیم تا برقراری ارتباط با روترهای در مسیر را چک کنیم.

1

Ping  IP Address of remote host

1

2

3

4

5

6

7

8

9

10

Pinging itpro.ir [62.193.15.162] with 32 bytes of data:

Reply from 62.193.15.162: bytes=32 time=150ms TTL=116

Reply from 62.193.15.162: bytes=32 time=153ms TTL=116

Reply from 62.193.15.162: bytes=32 time=149ms TTL=116

Reply from 62.193.15.162: bytes=32 time=154ms TTL=116

   

Ping statistics for 62.193.15.162:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 406ms, Maximum = 457ms, Average = 423ms


در طی این چهار مرحله می توان قدم به قدم صحت برقراری ارتباط را در هر سطح چک کرد و بدین صورت مشکل شبکه را خطایابی کرد.دستور ping ،زیرمجموعه های ( switch ) زیادی دارد .با وارد کردن عبارت ping/? در command prompt ،کلیه ی زیرمجموعه ی این کامند را می توان مشاهده کرد. که در اینجا به چندتای آنها به طور مختصر اشاره می کنم:

1.     a- : تبدیل آدرس IP به نام آن

2.     f- : با نوشتن این عبارت ،از قطعه قطعه کردن بسته های ارسالی توسط روترها و getway ها ، جلوگیری می شود.

3.     i- : تعیین مقدار یا ظرفیت داده های ارسالی در یک packet ،این مقدار به صورت پیش فرض 32 بایت است و حداکثر تا 65500 بایت می تواند ظرفیت داشته باشد.

4.     n count - : تعیین تعداد درخواستهای ارسالی که به صورت پیش فرض 4 است.


دستور Hping2


همانطور که گفتم درستور ping از پروتکل ICMP استفاده می کند،پس در مواردی که پورتهای این پروتکل در فایروال بسته باشد استفاده از این دستور امکانپذیر نمی باشد ! انواع دیگری از این دستور وجود دارد که قابلیت ها و انعطاف پذیری بیشتری در استفاده از این دستور را به ما می دهد مانند Hping و ورژن جدیدترش Hping2 . Hping2 بیشتر مورد استفاده قرار می گیرد چرا که در این کامند به جای استفاده از پروتکل ICMP ،از پروتکل TCP استفاده می شود.پس دیگر نگرانی در استفاده از این کامند وجود نخواهد داشت چرا که هر زمان که خواستید می توانید از این کامند استفاده کنید.


دستور Tracert


Tracert کامندی است که تنها برای انجام یک وظیفه ی اساسی طراحی شده است و آن نیز تعیین مسیری است که بسته های داده برای رسیدن به مقصد طی می کنند.این دستور با دستور ping متفاوت است.درواقع ping به شما می گوید که آدرسی که آن را ping کرده اید فعال یا run است یا خیر و برقراری ارتباط را بررسی می کند اما tracert تک تک روترهایی را که بسته های داده در مسیر با آن برخورد خواهند داشت را برای کاربر نشان می دهد.در واقع زمانی که بسته های داده به مقصد نمی رسند و یا زمان پاسخ دستور ping زمانی نامعقول و طولانی باشد از این دستور استفاده می کنیم.لازم به ذکر است که این کامند هم همانطور که پیشتر ذکر کردم، همانند کامند ping از پروتکل ICMP استفاده می کند.

این کامند به شما کمک می کند تا تعداد شبکه ها یا هاب های بین شما و کامپیوتر مقصد را بدانید.برای درک بهتر کاربرد این دستور یک مثال میزنم: فرض کنید که data packet ها یا همان بسته های داده از دفتر نمایندگی شرکتی در آبادان تا دفتر نمایندگی آن شرکت در تهران به طور معمول 13 هاب را طی می کنند اما یک روز کاربران از سرعت پایین شبکه شاکی می شوند،زمانی که شما از این دستور استفاده می کنید متوجه می شوید که تعداد هاب ها به 20 عدد افزایش یافته است که این بدان معناست که بسته ها مسیر دیگری را برای رسیدن به مقصد طی می کنند و این ممکن است به این علت باشد که مسیری که بسته ها به صورت معمول طی می کرده اند down شده باشد و بسته های داده ی شما برای رسیدن به مقصد مجبورند مسیر دیگری را طی کنند.درواقع در یک شرکت اگرهم شما برای داشتن یک شبکه ی خوب ، از تجهیزات خوب نیز استفاده کنید،اما به محض اینکه داده های شما وارد دنیای وسیع اینترنت شدند کسی نمی تواند تصمیم بگیرد که داده ها چه مسیری را برای رسیدن به مقصد طی کنند.به عبارتی پروسه ی مسیریابی یک پروسه ی پویا است اما با استفاده از این کامند می توانید متوجه شوید که مشکل در شبکه شما از کجا یا کدام روتر است.

برای خطایابی مشکل به وجود آمده می توانید از این دستور بدین صورت استفاده کنید:


یا



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

استفاده از tracert ممکن است در ابتدا کمی گیج کننده باشد.زمانی که یک hostname یا یک ipaddress را tracert می کنیم اطلاعات مربوط به هاب ها در 5 ستون نمایش داده می شود.در ستون اول ،تعداد هاب هایی که بسته ها رد می کنند را نشان می دهند.در 3 ستون بعدی ،مدت زمانی که رسیدن بسته ها به روتر ها را نشان می دهد و در ستون آخر لیست کامل domain name هر روتر نشان داده می شود.

سوئیچ های Tracert


-d : این سوئیچ مانع از تبدیل IP ها به hostname ها می شود.بدون استفاده از این سوئیچ برنامه همچنان کار می کند منتها با تبدیل IP مربوط به هر هاب به hostname آن که این عمل سرعت انجام پروسه را پایین می آورد.

-h : با استفاده از این سوئیچ می توان حداکثر تعداد هاب های یک روتر را تعیین کرد.به صورت پیش فرض تعداد هاب هایی که بسته ها برای رسیدن به remote host رد می کنند 30 عدد می باشد.اما در برخی موارد که لازم است این تعداد محدود شوند می توان از این سوئیچ استفاده کرد.

-w : مدت زمانی را (براساس میلی ثانیه ) که طول می کشد تا یک برنامه منتظر پاسخ بماند را تعیین می کند. در مواقعی که مشکل پهنای باند داریم ، کم یا زیاد کردن این مدت زمان می تواند به ما کمک کند.

-j :بدن استفاده از این سوئیچ،بسته ها از مسیری که به صورت پیش فرض برایشان در نظر گرفته شده عیور می کنند.زمانی که از این سوئیچ استفاده می کنید،tarcert همان مسیری را که برایش تعریف شده دنبال می کند و به کامپیوتر شما برمیگردد.به این option که Loose Source Rooting Option می گویند و کامند آن به صورت زیر اجرا می شود.

< Tracert –j
در آخرtarcert ابزار سودمندی است که علت در دسترس نبودن یک remote host را مشخص می کند.این کامند در ویندوز استفاده می شود.کامند معادل آن در لینوکس tracerout می باشد.جدول سوئیچ های tracert را در زیر می توانید مشاهده کنید.




DNS یا Domain Name System


همانطور که می دانید کلیه آدرس ها در شبکه بر مبنای IP Address است ( که البته در قسمت قبل صحبت کردیم که پشت پرده یه اتفاق دیگه می افته و آدرس ها بر مبنای IP نیست ! ) یعنی برای وارد شدن به سایتی باید آدرس آن سایت یا به عبارتی IP مربوط به آن سایت را بدانیم ، اما آیا واقعا ما IP مربوط به همه ی سایت هایی را که مرتب به آنها مراجعه می کنیم را حفظ هستیم؟مثلا شما هر روز از سایت گوگل استفاده می کنید اما هر بار برای وارد شدن به گوگل به جای نوشتن google.com ، آدرس 173.194.32.33 که یکی از IP های گوگل است را در نوار آدرس می نویسید؟خوب در این صورت ما باید بی نهایت IP رو برای وارد شدن به سایت ها حفظ کنیم ! و استفاده از اینترنت تنها برای تعداد محدودی از افراد امکانپذیر می شد ! در اینجاست که اهمیت سرویس DNS مشخص می شود.در واقع DNS ، IP ها را به اسم سایت ها و بالعکس ، اسامی سایت ها را به IP های آنها تبدیل می کند.یعنی شما زمانی که در نوار آدرس مرورگر خود مثلا Itpro.ir را تایپ می کنید،DNS فورا IP مربوط به این سایت را پیدا می کند و از طریقIP آن ،وارد Itpro.ir می شود.

حال این DNS Server چیست و در کجا قرار دارد؟DSN Server نوع به خصوصی از کامپیوتر است که معمولا به صورت پیشفرض ،شرکت ارائه دهنده ی اینترنت یا همان ISP ،IP های DNS Server را در اختیار کاربران خود قرار می دهد و گاهی چون این سرویسی که در اختیار مشتریان خود قرار می دهد سرعت و کیفیت پایینی دارد سبب کند شدن سرعت در گرفتن اطلاعات می شود.از اینرو تغییر DNS پیش فرض ISP با یک DNS با کیفیت، راه حل مناسبی است.البته برای بهبود عملکرد DNS،هر کاربر پس از وارد شدن به سایتی برای اولین بار و تبدیل hostname آن سایت به IP اش ، آن IP در cache ی که مختص DNS است نگهداری می شود تا در صورتی که کاربر مجددا بخواهد از آن سایت استفاده کند،برای به دست آوردن IP ، به DNS Server مراجعه نشود و این سرعت را در شبکه بالا میبرد.

DNS Server ،اطلاعات مربوط به DNS را در تعدادی فایل که در هارددیسک سرور ذخیره می شوند،نگهداری می کند و این فایل ها مرتب به روزرسانی یا update می شوند که این باعث بهبود عملکرد و افزایش سرعت در به دست آوردن IP ها و اسامی سایت ها می شود.بدین صورت که زمانی که شما برای اولین بار نام سایتی را وارد می کنید و DNS ،IP آن را به دست می آورد ،این IP در حافظه ی سرور آن باقی می ماند تا دفعه ی بعدکه شما خواستید مجددا از آن سایت استفاده کنید ،با داشتن IP آن در Cache مربوط به DNS (یا حافظه ی سرور )،بالا آمدن سایت سریعتر انجام شود.به شکل زیر توجه کنید.




در این شکل کاربر قصد وارد شدن به سایت www.howstuffworks.com را دارد.پس از وارد کردن hostname در مرورگر خود،درخواستش به نزدیکترین DNS ارسال می شود.DNS Server در مرحله 2 می گوید که "من IP متناظر با این hostname را در cache خود ندارم پس اجازه بده از یک سرور دیگر برایت بگیرم ".سپس درخواست بهServer DNS در مرحله 3 ارسال می شود.IP مورد نظر ما آنجا وجود دارد.در رمحله ی بعد این IP ابتدا در cache مربوط به DNS مرحله ی 2 ذخیره می شود تا در دفعات بعدی اگر کاربر مجددا خواست از این سایت استفاده کند ، دسترسی به این IP با یک مرحله کمتر انجام شود و سپس IP برای کاربر ارسال و کاربر می تواند وارد سایت مورد نظر خود شود.

DNS از دو قسمت تشکیل شده است: Forward lookup zone و Reverse lookup zone که هر کدام وظیفه ی خاصی دارند.در Forward lookup zone ،IP ها به اسامی تبدیل می شوند و در Reverse lookup zone اسامی به IP ها.حال که به صورت مختصر با DNS و مفهوم آن آشنا شدید ، به معرفی NSLookup می پردازیم.


دستور NSLookup


NSLookup یک ابزار مفید برای خطایابی ، تست و رفع اشکال مشکلات مربوط به DNS است.زمانی که از این کامند استفاهده می کنیم ،نام host و IP آدرس DNS سیستم نشان داده می شود.درصورتی که DNS ،fail شود یا اطلاعات نادرست ارائه دهد،سرعت برقراری ارتباط در شبکه کاهش می یابد و client ها دچار مشکل می شوند چرا که همانطور که در مورد عملکرد DNS بیان کردیم،Client ها دیگر نمی توانند از طریف اسامی سایتها وارد آنها شوند .در شبکه های برمبنای ویندوز،اکتیودایرکتوری ها به DNS نیازمندند در واقع به عبارتی اگر DNS، fail شود اکتیودایرکتوری و domain نیز fail خواهند شد. NSLook up ،انواع رکوردها در DNS Server را بررسی می کند و برای خطایابی در عدم اتصال سیستم به سیستم های دیگر استفاده می شود.در صورتی که رکورد اشتباهی در DNS Server وجود داشته باشد یا اصلا رکوردی وجود نداشته باشد،برای بررسی مشکل می توان از این کامند استفاده کرد.در صورتی که با Ping،IPمربوط به سرور توانستید از آن Reply بگیرید اما از طریق Ping نام آن سرور نتوانستید،مطمئن باشید که مشکل از DNS شماست.


به طور کلی NSLookup دو حالت دارد : interactive & noninteractive

در حالت interactive ،شما خیلی ساده تنها دستور NSlookup رو در command prompt تایپ می کنید.این حالت زمانی استفاده می شود که شما در پایگاه داده DNS خود بیشتر از یک مورد را بررسی خواهید کرد.بهتر است بدین صورت بگویم:زمانی که دستور NSlookup را در command prompt تایپ می کنید،ابتدا نام و IPمربوط به DNS Server ی که سیستم شما استفاده می کند نشان داده می شود،سپس در سطر بعدی ، خط فاصله ی چشمک زن، منتظر وارد کردن دستور بعدی NSLookup می ماند و تا زمانی که کلید exit یا clt + c را نزنید این انتظار ادامه پیدا خواهد کرد.فرض کنید برای از انتظار در آوردن این خط فاصله ی چشمک زن ، yahoo.com را تایپ کنیم،دراین صورت کلیه ی IP های مربوط به این سایت،و همچنین مجددا IP مربوط به DNS Server ی که استفاده می کنید را مشاهده خواهید کرد.

در حالت noninteractive، تنها یک دستور NSLookup تایپ نمی شود.بلکه گزینه های دیگری نیز در ادامه ی آن تایپ می شود.مثلا اگر برای حل مشکل خود به دنبال یک IP بخصوص می باشید،می توانید پس از تایپ NSlookup ،نام سایتی که به دنبال IP آن هستید را تایپ کنید یا باالعکس یعنی اگر IP را دارید و به دنبال نام سایت هستید نیز می توانید از این حالت استفاده کنید.در جدول زیر،کامندهای دستور NSLookup را ارائه شده است.در پایان به صورت مختصر تعدادی از سوئیچ های این کامند را بررسی می کنم.

Ls :این سوئیچ اطلاعات را برای DNS domain به صورت لیست در می آورد.

Server : سرور DNS را تبدیل به سرور به خصوصی که کاربر می خواهد می کند.

[Ser po[rt : پورتی که توسط DNS استفاده می شود را تغییر می دهد.

[Set ret[ry :تعداد ورودی ها را مشخص می کند.

[Set ty[pe : نوع اطلاعاتی که بررسی می شود را تغییر می دهد.

برای دیدن سوئیچ های این کامند به صورت کامل می توانید از سوئیچ help یا /? استفاده کنید.در اینجا یک مثال عملی از اجرای این دستور را در کامپیوتر خودم برای شما ارائه داده ام.




همانطور که در شکل مشاهده می کنید،دستور nslookup در command prompt اجرا می شود (برای وارد شدن به آن باید run را اجرا کنیم،برای این کار می توان دو کلید win+r را همزمان نگه داشت،در مرحله ی بعد هم میتوان به صورت مستقیم nslookup را نوشت و اجرا کرد و هم می توان cmd را اجرا کرد و سپس در پنجره ی بعدی nslookup را اجرا کرد،که من از روش دوم اینکار را انجام داده ام ) با اجرای دستور nslookup در حالت interactive DNS Server ی که از آن استفاده می کنم را ( که dns server ،گوگل است ) و نام hostname آن نشان داده شده است.underline چشمک زن منتظر وارد کردن درخواست بعدی می ماند،من yahoo.com را به عنوان درخواست بعدی وارد کردم و همانطور که مشاهده می کنید مجددا ابتدا IP و hostname مربوط به DNS Server ی که استفاده می کنم را نشان داده و سپس IP های مربوط به سایت yahoo نمایش داده شده است.در خواست بعدی Itpro.ir بوده است که خودتان نتیجه را مشاهده می کنید.همانطور که گفتم این underline چشمک زن تا زمانی که exit یا clt+c را نزده ایم ،منتظر درخواست می ماند.تمامی این توضیحات در حالت interactive بوده است.در حالت noninteractive بهمین صورت است با این تفاوت که در ادامه ی nslookup لازم است یک سوئیچ هم ذکر شود.

در آخر لازم به ذکر است که DIG دستوری است مشابه NSLookup ، با این تفاوت که این دستور در محیط لینوکس مورد استفاده قرار می گیرد.




 

حال اینکه ping به چه صورت کار می کند:ping از پروتکل ICMP یا Internet Control Message Protocol برای بررسی برقراری اتصال با یک host یا remote host استفاده می کند.درواقع این کامند با ارسال درخواست (request ) به مقصد،منتظر پاسخ (reply) می ماند و دریافت پاسخ از مقصد به معنی وجود ارتباط می باشد. د رمواردی که در برقراری اتصال به اینترنت دچار مشکل هستیم باید مراحل زیر را با استفاده از دستور ping طی کنیم .طی کردن این موارد باعث می شود متوجه شویم گره کار در کدام قسمت است.

·         ابتدا برقراری اتصال سیستم خود را با شبکه از طریق ping 127.0.0.1 چک می کنیم.در صورتی که به درخواست ما (request ) پاسخ داده شود (reply ) پس مشکل از سیستم ما نمی باشد.

1

Ping  IP Address  of local  host

 

1

2

3

4

5

6

7

8

9

10

Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

Reply from 127.0.0.1: bytes=32 time<1ms TTL=64

   

Ping statistics for 127.0.0.1:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

·         سپس شبکه داخلی را تست می کنیم.برای این منظور یکی از کامپیوترهای دیگری که در شبکه محلی ما (local network) قرار دارد را ping می کنیم.

 

1

Ping  IP Address  of local  network

1

2

3

4

5

6

7

8

9

10

Pinging 192.168.0.2 with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

Reply from 192.168.0.2: bytes=32 time<4ms TTL=64

   

Ping statistics for 192.168.0.2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

·         اگر در مرحله ی قبل نیز مشکلی نداشتیم default gateway را ping می کنیم .اینکار را با کامند زیر انجام می دهیم.با این کامند اتصال default gateway را با اینترنت بررسی می کنیم .در صورتی که از این کامند پاسخی (reply ) گرفتیم پس در برقراری اتصال default gateway با اینترنت مشکلی نداریم.

 

1

Ping IP Address of default  gateway

1

2

3

4

5

6

7

8

9

10

Pinging 192.168.0.1 with 32 bytes of data:

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

Reply from 192.168.0.1: bytes=32 time<4ms TTL=64

   

Ping statistics for 192.168.0.1:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

·         در مرحله ی آخر برای بررسی برقراری ارتباط ، یک remote host (یا مثلا یک سایت مثل سایت yahoo.com ) را ping می کنیم تا برقراری ارتباط با روترهای در مسیر را چک کنیم.

1

Ping  IP Address of remote host

1

2

3

4

5

6

7

8

9

10

Pinging itpro.ir [62.193.15.162] with 32 bytes of data:

Reply from 62.193.15.162: bytes=32 time=150ms TTL=116

Reply from 62.193.15.162: bytes=32 time=153ms TTL=116

Reply from 62.193.15.162: bytes=32 time=149ms TTL=116

Reply from 62.193.15.162: bytes=32 time=154ms TTL=116

   

Ping statistics for 62.193.15.162:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 406ms, Maximum = 457ms, Average = 423ms


در طی این چهار مرحله می توان قدم به قدم صحت برقراری ارتباط را در هر سطح چک کرد و بدین صورت مشکل شبکه را خطایابی کرد.دستور ping ،زیرمجموعه های ( switch ) زیادی دارد .با وارد کردن عبارت ping/? در command prompt ،کلیه ی زیرمجموعه ی این کامند را می توان مشاهده کرد. که در اینجا به چندتای آنها به طور مختصر اشاره می کنم:

1.     a- : تبدیل آدرس IP به نام آن

2.     f- : با نوشتن این عبارت ،از قطعه قطعه کردن بسته های ارسالی توسط روترها و getway ها ، جلوگیری می شود.

3.     i- : تعیین مقدار یا ظرفیت داده های ارسالی در یک packet ،این مقدار به صورت پیش فرض 32 بایت است و حداکثر تا 65500 بایت می تواند ظرفیت داشته باشد.

4.     n count - : تعیین تعداد درخواستهای ارسالی که به صورت پیش فرض 4 است.


دستور Hping2


همانطور که گفتم درستور ping از پروتکل ICMP استفاده می کند،پس در مواردی که پورتهای این پروتکل در فایروال بسته باشد استفاده از این دستور امکانپذیر نمی باشد ! انواع دیگری از این دستور وجود دارد که قابلیت ها و انعطاف پذیری بیشتری در استفاده از این دستور را به ما می دهد مانند Hping و ورژن جدیدترش Hping2 . Hping2 بیشتر مورد استفاده قرار می گیرد چرا که در این کامند به جای استفاده از پروتکل ICMP ،از پروتکل TCP استفاده می شود.پس دیگر نگرانی در استفاده از این کامند وجود نخواهد داشت چرا که هر زمان که خواستید می توانید از این کامند استفاده کنید.


دستور Tracert


Tracert کامندی است که تنها برای انجام یک وظیفه ی اساسی طراحی شده است و آن نیز تعیین مسیری است که بسته های داده برای رسیدن به مقصد طی می کنند.این دستور با دستور ping متفاوت است.درواقع ping به شما می گوید که آدرسی که آن را ping کرده اید فعال یا run است یا خیر و برقراری ارتباط را بررسی می کند اما tracert تک تک روترهایی را که بسته های داده در مسیر با آن برخورد خواهند داشت را برای کاربر نشان می دهد.در واقع زمانی که بسته های داده به مقصد نمی رسند و یا زمان پاسخ دستور ping زمانی نامعقول و طولانی باشد از این دستور استفاده می کنیم.لازم به ذکر است که این کامند هم همانطور که پیشتر ذکر کردم، همانند کامند ping از پروتکل ICMP استفاده می کند.

این کامند به شما کمک می کند تا تعداد شبکه ها یا هاب های بین شما و کامپیوتر مقصد را بدانید.برای درک بهتر کاربرد این دستور یک مثال میزنم: فرض کنید که data packet ها یا همان بسته های داده از دفتر نمایندگی شرکتی در آبادان تا دفتر نمایندگی آن شرکت در تهران به طور معمول 13 هاب را طی می کنند اما یک روز کاربران از سرعت پایین شبکه شاکی می شوند،زمانی که شما از این دستور استفاده می کنید متوجه می شوید که تعداد هاب ها به 20 عدد افزایش یافته است که این بدان معناست که بسته ها مسیر دیگری را برای رسیدن به مقصد طی می کنند و این ممکن است به این علت باشد که مسیری که بسته ها به صورت معمول طی می کرده اند down شده باشد و بسته های داده ی شما برای رسیدن به مقصد مجبورند مسیر دیگری را طی کنند.درواقع در یک شرکت اگرهم شما برای داشتن یک شبکه ی خوب ، از تجهیزات خوب نیز استفاده کنید،اما به محض اینکه داده های شما وارد دنیای وسیع اینترنت شدند کسی نمی تواند تصمیم بگیرد که داده ها چه مسیری را برای رسیدن به مقصد طی کنند.به عبارتی پروسه ی مسیریابی یک پروسه ی پویا است اما با استفاده از این کامند می توانید متوجه شوید که مشکل در شبکه شما از کجا یا کدام روتر است.

برای خطایابی مشکل به وجود آمده می توانید از این دستور بدین صورت استفاده کنید:


یا



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

استفاده از tracert ممکن است در ابتدا کمی گیج کننده باشد.زمانی که یک hostname یا یک ipaddress را tracert می کنیم اطلاعات مربوط به هاب ها در 5 ستون نمایش داده می شود.در ستون اول ،تعداد هاب هایی که بسته ها رد می کنند را نشان می دهند.در 3 ستون بعدی ،مدت زمانی که رسیدن بسته ها به روتر ها را نشان می دهد و در ستون آخر لیست کامل domain name هر روتر نشان داده می شود.

سوئیچ های Tracert


-d : این سوئیچ مانع از تبدیل IP ها به hostname ها می شود.بدون استفاده از این سوئیچ برنامه همچنان کار می کند منتها با تبدیل IP مربوط به هر هاب به hostname آن که این عمل سرعت انجام پروسه را پایین می آورد.

-h : با استفاده از این سوئیچ می توان حداکثر تعداد هاب های یک روتر را تعیین کرد.به صورت پیش فرض تعداد هاب هایی که بسته ها برای رسیدن به remote host رد می کنند 30 عدد می باشد.اما در برخی موارد که لازم است این تعداد محدود شوند می توان از این سوئیچ استفاده کرد.

-w : مدت زمانی را (براساس میلی ثانیه ) که طول می کشد تا یک برنامه منتظر پاسخ بماند را تعیین می کند. در مواقعی که مشکل پهنای باند داریم ، کم یا زیاد کردن این مدت زمان می تواند به ما کمک کند.

-j :بدن استفاده از این سوئیچ،بسته ها از مسیری که به صورت پیش فرض برایشان در نظر گرفته شده عیور می کنند.زمانی که از این سوئیچ استفاده می کنید،tarcert همان مسیری را که برایش تعریف شده دنبال می کند و به کامپیوتر شما برمیگردد.به این option که Loose Source Rooting Option می گویند و کامند آن به صورت زیر اجرا می شود.

< Tracert –j
در آخرtarcert ابزار سودمندی است که علت در دسترس نبودن یک remote host را مشخص می کند.این کامند در ویندوز استفاده می شود.کامند معادل آن در لینوکس tracerout می باشد.جدول سوئیچ های tracert را در زیر می توانید مشاهده کنید.




DNS یا Domain Name System


همانطور که می دانید کلیه آدرس ها در شبکه بر مبنای IP Address است ( که البته در قسمت قبل صحبت کردیم که پشت پرده یه اتفاق دیگه می افته و آدرس ها بر مبنای IP نیست ! ) یعنی برای وارد شدن به سایتی باید آدرس آن سایت یا به عبارتی IP مربوط به آن سایت را بدانیم ، اما آیا واقعا ما IP مربوط به همه ی سایت هایی را که مرتب به آنها مراجعه می کنیم را حفظ هستیم؟مثلا شما هر روز از سایت گوگل استفاده می کنید اما هر بار برای وارد شدن به گوگل به جای نوشتن google.com ، آدرس 173.194.32.33 که یکی از IP های گوگل است را در نوار آدرس می نویسید؟خوب در این صورت ما باید بی نهایت IP رو برای وارد شدن به سایت ها حفظ کنیم ! و استفاده از اینترنت تنها برای تعداد محدودی از افراد امکانپذیر می شد ! در اینجاست که اهمیت سرویس DNS مشخص می شود.در واقع DNS ، IP ها را به اسم سایت ها و بالعکس ، اسامی سایت ها را به IP های آنها تبدیل می کند.یعنی شما زمانی که در نوار آدرس مرورگر خود مثلا Itpro.ir را تایپ می کنید،DNS فورا IP مربوط به این سایت را پیدا می کند و از طریقIP آن ،وارد Itpro.ir می شود.

 حال این DNS Server چیست و در کجا قرار دارد؟DSN Server نوع به خصوصی از کامپیوتر است که معمولا به صورت پیشفرض ،شرکت ارائه دهنده ی اینترنت یا همان ISP ،IP های DNS Server را در اختیار کاربران خود قرار می دهد و گاهی چون این سرویسی که در اختیار مشتریان خود قرار می دهد سرعت و کیفیت پایینی دارد سبب کند شدن سرعت در گرفتن اطلاعات می شود.از اینرو تغییر DNS پیش فرض ISP با یک DNS با کیفیت، راه حل مناسبی است.البته برای بهبود عملکرد DNS،هر کاربر پس از وارد شدن به سایتی برای اولین بار و تبدیل hostname آن سایت به IP اش ، آن IP در cache ی که مختص DNS است نگهداری می شود تا در صورتی که کاربر مجددا بخواهد از آن سایت استفاده کند،برای به دست آوردن IP ، به DNS Server مراجعه نشود و این سرعت را در شبکه بالا میبرد.

DNS Server ،اطلاعات مربوط به DNS را در تعدادی فایل که در هارددیسک سرور ذخیره می شوند،نگهداری می کند و این فایل ها مرتب به روزرسانی یا update می شوند که این باعث بهبود عملکرد و افزایش سرعت در به دست آوردن IP ها و اسامی سایت ها می شود.بدین صورت که زمانی که شما برای اولین بار نام سایتی را وارد می کنید و DNS ،IP آن را به دست می آورد ،این IP در حافظه ی سرور آن باقی می ماند تا دفعه ی بعدکه شما خواستید مجددا از آن سایت استفاده کنید ،با داشتن IP آن در Cache مربوط به DNS (یا حافظه ی سرور )،بالا آمدن سایت سریعتر انجام شود.به شکل زیر توجه کنید.




در این شکل کاربر قصد وارد شدن به سایت www.howstuffworks.com را دارد.پس از وارد کردن hostname در مرورگر خود،درخواستش به نزدیکترین DNS ارسال می شود.DNS Server در مرحله 2 می گوید که "من IP متناظر با این hostname را در cache خود ندارم پس اجازه بده از یک سرور دیگر برایت بگیرم ".سپس درخواست بهServer DNS در مرحله 3 ارسال می شود.IP مورد نظر ما آنجا وجود دارد.در رمحله ی بعد این IP ابتدا در cache مربوط به DNS مرحله ی 2 ذخیره می شود تا در دفعات بعدی اگر کاربر مجددا خواست از این سایت استفاده کند ، دسترسی به این IP با یک مرحله کمتر انجام شود و سپس IP برای کاربر ارسال و کاربر می تواند وارد سایت مورد نظر خود شود.

DNS از دو قسمت تشکیل شده است: Forward lookup zone و Reverse lookup zone که هر کدام وظیفه ی خاصی دارند.در Forward lookup zone ،IP ها به اسامی تبدیل می شوند و در Reverse lookup zone اسامی به IP ها.حال که به صورت مختصر با DNS و مفهوم آن آشنا شدید ، به معرفی NSLookup می پردازیم.


دستور NSLookup


NSLookup یک ابزار مفید برای خطایابی ، تست و رفع اشکال مشکلات مربوط به DNS است.زمانی که از این کامند استفاهده می کنیم ،نام host و IP آدرس DNS سیستم نشان داده می شود.درصورتی که DNS ،fail شود یا اطلاعات نادرست ارائه دهد،سرعت برقراری ارتباط در شبکه کاهش می یابد و client ها دچار مشکل می شوند چرا که همانطور که در مورد عملکرد DNS بیان کردیم،Client ها دیگر نمی توانند از طریف اسامی سایتها وارد آنها شوند .در شبکه های برمبنای ویندوز،اکتیودایرکتوری ها به DNS نیازمندند در واقع به عبارتی اگر DNS، fail شود اکتیودایرکتوری و domain نیز fail خواهند شد. NSLook up ،انواع رکوردها در DNS Server را بررسی می کند و برای خطایابی در عدم اتصال سیستم به سیستم های دیگر استفاده می شود.در صورتی که رکورد اشتباهی در DNS Server وجود داشته باشد یا اصلا رکوردی وجود نداشته باشد،برای بررسی مشکل می توان از این کامند استفاده کرد.در صورتی که با Ping،IPمربوط به سرور توانستید از آن Reply بگیرید اما از طریق Ping نام آن سرور نتوانستید،مطمئن باشید که مشکل از DNS شماست.


به طور کلی NSLookup دو حالت دارد : interactive & noninteractive

در حالت interactive ،شما خیلی ساده تنها دستور NSlookup رو در command prompt تایپ می کنید.این حالت زمانی استفاده می شود که شما در پایگاه داده DNS خود بیشتر از یک مورد را بررسی خواهید کرد.بهتر است بدین صورت بگویم:زمانی که دستور NSlookup را در command prompt تایپ می کنید،ابتدا نام و IPمربوط به DNS Server ی که سیستم شما استفاده می کند نشان داده می شود،سپس در سطر بعدی ، خط فاصله ی چشمک زن، منتظر وارد کردن دستور بعدی NSLookup می ماند و تا زمانی که کلید exit یا clt + c را نزنید این انتظار ادامه پیدا خواهد کرد.فرض کنید برای از انتظار در آوردن این خط فاصله ی چشمک زن ، yahoo.com را تایپ کنیم،دراین صورت کلیه ی IP های مربوط به این سایت،و همچنین مجددا IP مربوط به DNS Server ی که استفاده می کنید را مشاهده خواهید کرد.

در حالت noninteractive، تنها یک دستور NSLookup تایپ نمی شود.بلکه گزینه های دیگری نیز در ادامه ی آن تایپ می شود.مثلا اگر برای حل مشکل خود به دنبال یک IP بخصوص می باشید،می توانید پس از تایپ NSlookup ،نام سایتی که به دنبال IP آن هستید را تایپ کنید یا باالعکس یعنی اگر IP را دارید و به دنبال نام سایت هستید نیز می توانید از این حالت استفاده کنید.در جدول زیر،کامندهای دستور NSLookup را ارائه شده است.در پایان به صورت مختصر تعدادی از سوئیچ های این کامند را بررسی می کنم.

Ls :این سوئیچ اطلاعات را برای DNS domain به صورت لیست در می آورد.

Server : سرور DNS را تبدیل به سرور به خصوصی که کاربر می خواهد می کند.

[Ser po[rt : پورتی که توسط DNS استفاده می شود را تغییر می دهد.

[Set ret[ry :تعداد ورودی ها را مشخص می کند.

[Set ty[pe : نوع اطلاعاتی که بررسی می شود را تغییر می دهد.

برای دیدن سوئیچ های این کامند به صورت کامل می توانید از سوئیچ help یا /? استفاده کنید.در اینجا یک مثال عملی از اجرای این دستور را در کامپیوتر خودم برای شما ارائه داده ام.




همانطور که در شکل مشاهده می کنید،دستور nslookup در command prompt اجرا می شود (برای وارد شدن به آن باید run را اجرا کنیم،برای این کار می توان دو کلید win+r را همزمان نگه داشت،در مرحله ی بعد هم میتوان به صورت مستقیم nslookup را نوشت و اجرا کرد و هم می توان cmd را اجرا کرد و سپس در پنجره ی بعدی nslookup را اجرا کرد،که من از روش دوم اینکار را انجام داده ام ) با اجرای دستور nslookup در حالت interactive DNS Server ی که از آن استفاده می کنم را ( که dns server ،گوگل است ) و نام hostname آن نشان داده شده است.underline چشمک زن منتظر وارد کردن درخواست بعدی می ماند،من yahoo.com را به عنوان درخواست بعدی وارد کردم و همانطور که مشاهده می کنید مجددا ابتدا IP و hostname مربوط به DNS Server ی که استفاده می کنم را نشان داده و سپس IP های مربوط به سایت yahoo نمایش داده شده است.در خواست بعدی Itpro.ir بوده است که خودتان نتیجه را مشاهده می کنید.همانطور که گفتم این underline چشمک زن تا زمانی که exit یا clt+c را نزده ایم ،منتظر درخواست می ماند.تمامی این توضیحات در حالت interactive بوده است.در حالت noninteractive بهمین صورت است با این تفاوت که در ادامه ی nslookup لازم است یک سوئیچ هم ذکر شود.

در آخر لازم به ذکر است که DIG دستوری است مشابه NSLookup ، با این تفاوت که این دستور در محیط لینوکس مورد استفاده قرار می گیرد.