دستورات شبكه
دستورات شبكه
در اين بخش با دستورات مهمي كه جهت راهبرد شبكه و تست و تشخيص عيب شبكه مورد نياز است مي پردازم. در گرداوري اين مطالب سعي كرده ام دستورات بسيار مهم را در با بياني روان ارائه بدهم تا بتوانيد با استفاده از اين دستورات در محيط Command Prompt سيستم عامل ويندوز به عيب يابي بپردازيد. در اين محيط قادر خواهيد بود با استفاده از دستورات اين مبحث اطلاعاتي بسيار خوبي از وضعيت شبكه گرفته و مانند شكل زير اطلاعات به دست آمده را مورد تحليل قرار دهيد. براي باز شدن اين پنجره به منوي start سيستم عامل ويندوز خود رفته و در قسمت Run دستور cmd را تايپ كرده و كليد Enter را بزنيد.
به خاطر سپردن كار و نقش اين دستورات را به شما توصيه مي كنم.
Ping:
بيشتر مديران شبكه با اين دستور كاملا آشنا هستند و تقريبا هر روز از آن استفاده مي كنند. ساده ترين كاربرد اين دستور تست ارتباط بين دو نقطه از شبكه است. استفاده از اين دستور به ما نشان مي دهد كه آيا دو كامپيوتر همديگر را مي بينند يا خير و همچنين مدت زمان ارسال و دريافت پاكت اطلاعاتي نيز برآورد مي شود. دستور Ping معمولا بصورت تنها بكار برده مي شود اما سوئيچ هايي نيز قابل استفاده با اين دستور هستند. در زير شرح برخي از اين سوئيچ ها آمده است :
Ping –t
تا زماني كه عمل Ping كردن را بطور دستي قطع نكنيم عمليات ارسال و دريافت پاكت اطلاعاتي ادامه پيدا خواهد كرد.
Ping –a
با كمك اين دستور قادر خواهيم شد تا به نام كامپيوتري كه در حال Ping كردن هستيم دسترسي پيدا كنيم.
Ping –n count
تعداد Acho Request ها را مشخص مي كند.
طرز كار ping بدين صورت است كه ابتدا بسته ICMP Echo Request را به سمت كامپيوتر مقصد ارسال مي كند. اگر كامپيوتر مقابل اين بسته را دريافت كند بسته اي به نامه ICMP Echo Reply را به سمت مبدا ارسال مي كند و خبر دريافت پاكت اطلاعاتي اوليه را بطور خودكار مي دهد. بطور پيش فرض تعداد ارسال بسته Echo Request چهار عدد است كه در صورت استفاده از سوئيچ –t اين تعداد بيشتر خواهد گرديد. در صورتيكه روز خوبي را داشته باشيد و ارتباط شما برقرار باشد پاسخ Reply را دريافت خواهيد كرد و در غير اين صورت به پيغام Time out مواجهه خواهيد شد و خب با اين وضعيت بايد دليل عدم ارتباط را كه ممكن است ناشي از مشكلات كارت شبكه و يا لينك فيزيكي شبكه باشد را بيابيد.
The Destination Host Unreachable Message
اين پيغام بدين معني است كه مسيري به كامپيوتر مقصد پيدا نشده است. براي حل اين مشكل كامپيوتر خود را وارسي كنيد و ببينيد آيا تنظيمات آن به درستي انجام شده است يا خير. مطمئن شويد كه default gateway درست تنظيم شده است. در زير نمونه اي از اين پيغام را مشاهده مي كنيد.
Pinging 24.67.54.233 with 32 bytes of data:
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Ping statistics for 24.67.54.233:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
The Request Timed Out Message:
شايد اين پيغام را بسيار ديده باشيد. اين پيغام نشاندهنده اين است كه كامپيوتر شما در مدت مشخص تعيين شده اي پاسخ پاكت ارسال شده را دريافت نكرده است. اگر فرض كنيم مسيرفيزيكي ارتباطي كامپيوتر ما با كامپيوتر مقصد مشكلي نداشته باشد اين پيغام مي تواند نشانگر اين مسئله باشد كه كامپيوتر مقصد به شبكه وصل نيست، خاموش بوده و يا به درستي تنظيم نشده است. همچنين اين پيغام مي تواند نشانگر اين باشد كه يكي از دستگاه هاي مياني درست كار نمي كند. در برخي موارد خاص اين پيغام به دليل ترافيك بسيار بالاي شبكه بوجود مي آيد. همچنين ممكن است كه عمل ping به آدرس شبكه اشتباهي صورت گرفته است يا اينكه آن كامپيوتر در شبكه صحيح وجود ندارد و بايد اصلاح آدرس شبكه در آن صورت بگيرد.در زير نمونه اي از اين پيغام را مشاهده مي كنيد:
C:\>ping 169.76.54.3
Pinging 169.76.54.3 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 169.76.54.3:
Packets: Sent = 4, Received = 0, Lost = 4 (100%
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
در برخي موارد هم مشاهده مي شود كه پاسخ ping بصورت ممتد نمي باشد و گاه پاسخ به پاكت اطلاعاتي ما قطع مي شود در زير نمونه اي از اين حالت را مشاهده مي كنيد:
C:\>ping -t 24.67.184.65
Pinging 24.67.184.65 with 32 bytes of data:
Reply from 24.67.184.65: bytes=32 time=55ms TTL=127
Reply from 24.67.184.65: bytes=32 time=54ms TTL=127
Reply from 24.67.184.65: bytes=32 time=27ms TTL=127
Request timed out.
Request timed out.
Request timed out.
Reply from 24.67.184.65: bytes=32 time=69ms TTL=127
Reply from 24.67.184.65: bytes=32 time=28ms TTL=127
Reply from 24.67.184.65: bytes=32 time=28ms TTL=127
Reply from 24.67.184.65: bytes=32 time=68ms TTL=127
Reply from 24.67.184.65: bytes=32 time=41ms TTL=127
Ping statistics for 24.67.184.65:
Packets: Sent = 11, Received = 8, Lost = 3 (27% loss),
Approximate round trip times in milli-seconds:
Minimum = 27ms, Maximum = 69ms, Average = 33ms
در اين حالت معمولا نياز است تا صحت دستگاه هاي مياني را بررسي كنيد كه آيا درست كار مي كنند يا خير. مشكل كارت شبكه هم به ندرت باعث اين خطا مي شود.
The Unknown Host Message:
هرگاه آدرس مقصد قابليت تشخيص توسط كامپيوترتان را نداشته باشد اين پيغام را دريافت خواهيد كرد. اين پيغام معمولا وقتي از آدرس مقصد اشتباه استفاده كنيد اتفاق مي افتد. همچنين عدم تنظيم DNS يا درست كار نكردن DNS هم امكان ايجاد اين پيغام را مي دهد.
C:\>ping www.comptia.ca
Unknown host www.comptia.ca
در صورتي كه موارد فوق را چك كرديد و هنوز مشكل باقي باشد احتمال دارد مشكل Name Resolution باشيد لذا بايد DNS و WINSرا بررسي كنيد. شما مي توانيد از دستورات nslookup و dig براي اين منظور استفاده كنيد.
The Expired TTL Message
The Time To Live يا TTL مطلبي جالب براي بررسي دستور Ping است. عمل TTL از به لوپ افتادن پاكت هاي پينگ جلوگيري مي كند. TTL هاپ ها را در مسير خود شمارش مي كند و در هر هاپ يك شماره از TTL كم مي شود. وقتي كه عدد TTL به صفر برسد اين بدان معناست كه زمان تعيين شده تمام شده و پيغام زير نمايش داده مي شود :
Reply from 24.67.180.1: TTL expired in transit
در صورتيكه اين پيغام را دريافت كرده باشيد به احتمال قوي مشكل Routing داريد. شما مي توانيد در TTL تغيير حاصل نماييد و براي اين كار از دستور ping –i استفاده كنيد
رفع مشكل توسط دستور Ping
اگرچه دستور ping بطور كامل مشكل را حل نمي كند و احتمال خطا در نتيجه گيري با توجه به تجربه مدير شبكه وجود خواهد داشت اما مي توان تست هاي مفيدي را براي تشخيص بهتر خطا با اين دستور ساده انجام داد.
1- آدرس لوپ بك كامپيوتر خود را توسط دستور ping 127.0.0.1 بررسي كنيد. در صورتيكه موفقيت ping شما از سلامت TCP/IP دستگاه خود مطمئن خواهيد شد. در صورتيكه نتوانيد آدري لوپ بك را پينگ كنيد به احتمال قوي بايد TCP/IP دستگاه خود را دوباره نصب و تنظيم كنيد.
2- آدرس شبكه كارت شبكه خود را پينگ كنيد در صورت موفقيت مطمئن خواهيد شد كه TCP/IP درست كار مي كند و در غير اينصورت مشكل در تنظيم آدرس شبكه رو كارت شبكه داريد و يا اينكه كارت شبكه شما به درستي نصب نشده است.
3- آدرس شبكه كامپيوتر ديگر را پينگ كنيد. با مشاهده پينگ موفق مطمئن خواهيد شد كه كامپيوتر شما در ارتباط با كامپيوترهاي ديگر روي شبكه و ديدن منابع مشكلي نخواهد داشت. در غير اينصورت ارتباط كامپيوتر شما به شبكه داراي مشكل است و بايد اتصالات را بررسي كنيد.
4- پس از اطمينان از اينكه آدرس شبكه كامپيوتر شما درست كار مي كند و قادر هستيد كامپيوتر هاي ديگر در شبكه را ببينيد ، حال بايد ببينيد آيا كامپيوتر شما كامپيوترهاي خارج شبكه را نيز مي تواند به راحتي ببيند يا خير. براي اين منظور بايد آدرس Default Gateway را پينگ كنيد.
5- درصورتيكه كه توانستيد آدرس Default Gateway را در مرحله قبل پينگ كنيد حال مي توانيد اقدام به آدرس شبكه كامپيوتري خارج از شبكه خود را پينگ كنيد.
همانطور كه مشاهده كرديد با انجام موارد بالا بررسي خوبي بر صحت ارتباط كامپيوتر خود خواهيد داشت. در صورتيكه آدم خوشبيني هستيد مي تواند مرحله پنج را در ابتدا انجام دهيد. اگر پينگ در محله پنج بدون مشكل انجام شود نشاندهنده آن است كه كليه مراحل بالا نيز به خوبي كار مي كنند و در غير اينصورت از مرحله يك بررسي خود را شروع كنيد.
Ipconfig
وقتي نياز داريد تنظيمات كارت شبكه و IP دستگاه كامپيوتر خود را بررسي كنيد بهترين دستوري كه به داد شما خواهد رسيد ipconfig است. در صورتيكه اين دستور تنها بكار برده شود تنها اطلاعات اوليه كارت شبكه را نشان خواهد داد نظير نام كارت شبكه ، آدرس IP ، subnetmask و default gateway. در صورتيكه از سوئيچ /all استفاده نماييد با جزئيات كاملتري روبه رو خواهيد شد. در زير نمونه اي از اين دستور را آورده ام :
C:\>ipconfig /all
Windows 2000 IP Configuration
Host Name . . . . . . . . . . . . : server
Primary DNS Suffix . . . . . . . : write
Node Type . . . . . . . . . . . . : Broadcast
IP Routing Enabled. . . . . . . . : Yes
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : write
ok.anyotherhost.net
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . : ok.anyotherhost.net
Description . . . . . . . . . . . : D-Link DFE-530TX PCI Fast Ethernet
Physical Address. . . . . . . . . : 00-80-C8-E3-4C-BD
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 24.67.184.65
Subnet Mask . . . . . . . . . . . : 255.255.254.0
Default Gateway . . . . . . . . . : 24.67.184.1
DHCP Server . . . . . . . . . . . : 24.67.253.195
DNS Servers . . . . . . . . . . . : 24.67.253.195
24.67.253.212
Lease Obtained.. . . . : Thursday, February 07, 2002 3:42:00 AM
Lease Expires .. . . . : Saturday, February 09, 2002 3:42:00 AM
همانطور كه مي بينيد شما قادر خواهيد بود موارد بسياري را بررسي كرده و براي آن ها راه حل پيدا كنيد. در زير مواردي را كه مي توانيد از دستور ipconfig استفاده كرده و رفع عيب كنيد آورده ام :
1- كاربر امكان ارتباط با كامپيوتر هاي ديگر را ندارد
مطمئن شويد آدرس TCP/IP و Subnet mask دستگاه كامپيوتر شما درست هستند. در صورتيكه شبكه از DHCP استفاده مي كند مطئمن شويد كه DHCP بر روي كامپيوتر شما enableاست.
2- امكان ارتباط با كامپيوتر هاي محلي وجود دارد اما ارتباط با كامپيوتر هاي دور ميسر نيست. (كامپيوترهاي خارج شبكه محلي)
Default gateway را بررسي كنيد و ببينيد آيا آدرس درست به آن داده شده است
3- كاربر امكان ارتباط با اينترنت را ندارد!
پارامترهاي مربوط به DNS را بررسي كنيد و درستي آن را چك كنيد.
4- كاربر امكان browse كردن را در subnet هاي غير از شبكه محلي ندارد
پارامترهاي مربوط به DNSوWINS را بررسي كنيد
با افزودن سوئيچ به دستور Ipconfig مي توانيد از اين دستور بيشتر بهره ببريد.
- ? اين سوئيج صفحه help را نمايش مي دهد
- all/ اين سوئيچ تنظيمات كامل آدرس شبكه را نشان مي دهد
- release/ آدرس IP كارت شبكه با اين سوئيچ پاك مي شود
- renew/ آدرس IP كارت شبكه پاك شده و دوباره ايجاد م مي گردد.
Ifconfig
در سيستم هاي يونيكس ، لينوكس و مكينتاش از دستور ifconfig به جاي ipconfig بايد استفاده كنيد. براي اينكه صفحه help مربوط به اين دستور را نگاه كنيد بايد از دستور ifconfig –helpاستفاده كنيد. خروجي زير پس از استفاده تنها از دستور ifconfig حاصل شده است.
eth0 Link encap:Ethernet HWaddr 00:60:08:17:63:A0
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:911 errors:0 dropped:0 overruns:0 frame:0
TX packets:804 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xe400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
دستور ifconfig آدرس IP ، subnet mask و default gateway را براي كارت شبكه هاي محلي و loopback نشان مي دهد اما اطلاعات مربوط به وضعيت dhcp را نمايش نمي دهد. براي اين منظور بايد از دستور ديگري به شكل “pump s” استفاده كنيد. Pump همچنين قادر است IP آدرس شبكه اي را كه با DHCP و DNS تنظيم شده است release و renew نمايد.
Winipcfg
در Windows 98 Second Edition و Windows Me systems مي توانيد از دستور winipcfg استفاده كنيد.
nslookup :
Nslookup
اين دستور ابزاري است كه معمولا براي رفع مشكل در DNS بكار برده مي شود. با nslookup مي توانيد بصورت دستي از DNS يك يا چند query بگيريد ، اطلاعات مربوط به نحوه تنظيم DNS در سيستمتان را بررسي كنيد و يا حتي مشخص كنيد چه ركوردDNS بايد resolved شود.وقتي كه nslookup اجرا شود به شما نشان خواهد داد كه نام host و آدرس IP سرور DNS شما به چه صورتي است. پس از اجرا اين دستور خط فرماني به شما نمايش داده خواهد شد كه مي توانيد query هاي ديگري بگيريد. به اين حالت Interactive mode گفته مي شود. دستوراتي را كه در اين قسمت مي توانيد وارد كنيد در زير آورده ام :
search: Uses domain search list
vc: Always uses a virtual circuit
domain=NAME: Sets default domain name to NAME
srchlist=N1[/N2/.../N6]: Sets domain to N1 and search list to N1, N2, and so on
root=NAME: Sets root server to NAME
retry=X: Sets number of retries to X
timeout=X : Sets initial timeout interval to X seconds
type=X : Sets query type (for example, A, ANY, CNAME, MX, NS, PTR, SOA, or SRV)
querytype=X : Same as type
class=X: Sets query class (for example, IN [Internet], ANY)
msxfr: Uses MS fast zone transfer
ixfrver=X : Current version to use in IXFR transfer request
server NAME: Sets default server to NAME, using current default server
exit: Exits the program
بجاي interactive mode شما همچنين مي توانيد از دستور nslookup بطور مستقيم استفاده كنيد. در زير مثالي را آورده ام كه نام دامنه را توسط اين دستور resolve نمايم :
C:\>nslookup comptia.org
Server: nsc1.ht.ok.shawcable.net
Address: 64.59.168.13
Non-authoritative answer:
Name: comptia.org
Address: 208.252.144.4
همانطور كه در خروجي ديده مي شود، خروجي نام host و آدرس IP سرور DNS است و در ادامه نام و آدرس IP دامنه مورد نظر ما مي باشد.
Dig
اين دستورجايگزيني براي nslookup در سيستم هاي يونيكسي ، لينوكسي و همچنين مكينتاش مي باشد. تفاوت اين دستور با nslookup در اين است فاقد interactive mode است. درست مانندnslookup دستور dig مي تواند فرم ساده اي از يافتن dns شبكه را نمايش دهد و همچنين توسط خروجي اين دستور قادر به رفع مشكلات مربوط به DNS خواهيم بود. در زير نمونه اي از خروجي اين دستور آمده است :
; DiG 8.2 xyz.com
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUERY SECTION:
;; xyz.com, type = A, class = IN
;; ANSWER SECTION:
xyz.com. 7h33m IN A 63.240.93.157
;; AUTHORITY SECTION:
xyz.com. 7h33m IN NS usrxdns1.ABC.com.
xyz.com. 7h33m IN NS oldtxdns2.ABC.com.
;; Total query time: 78 msec
;; FROM: localhost.localdomain to SERVER: default -- 209.53.4.130
;; WHEN: Sat Oct 16 20:21:24 2004
;; MSG SIZE sent: 30 rcvd: 103
همانطور كه مشاهده مي كنيد خروجي اين دستور به سه قسمت Answer Section,Authority Section, و چهار خط پاياني تقسيم شده است. قسمت پاسخ يا answer section نام دامنه و آدرس شبكه آن را نمايش مي دهد. A در اين قسمت نشاندهنده نوع ركوردي است كه نمايش داده شده است. قسمت اعتبار يا authority section نشاندهند سرورهاي DNSاي است كه در عمل resolution بر پايه آن ها انجام شده است و اين اطلاعات به ما نشان مي دهد آيا DNS هاي مجاز نشانگر دامنه ما هستند يا خير. چهارخط پاياني اين خروجي نشان مي دهد كه چقدر طول كشيده تا عمل resolve شدن دامنه انجام گيرد همچنين آدرس DNSپايه را كه در عمل resolution مورد استفاده قرار گرفته است را نشان مي دهد. ساعت و تاريخ و همچنين اندازه پاكت هاي دريافتي و ارسالي نيز در اين قسمت نمايش داده شده اند.
tracert :
Tracert/traceroute
همانطور كه از نام اين ابزار پيداست از tracert براي پيدا كردن مسير بين دو Host يا به عبارتي دو دستگاه داراي آدرس شبكه كه همديگر را مي بينند استفاده مي شود و اين دستور از طريق پروتكل ICMPاين عمل را انجام مي دهد و آن بدين صورت است كه پاكت echo request توسط كامپيوتر ما به دستگاه مقصد ارسال مي شود و در هر مرحله اي از اين مسير پاكت exho reply ايجاد شده و به كامپيوتر مبدا (كامپيوتر ما) ارسال مي شود. بايد اين نكته را خاطرنشان كنم هريك از چهار سيستم عامل معروف امروزي داراي دستور ويژه خود در اين ابزار هستند كه در زير ليست آن ها را آورده ام:
Windows Server 2000/2003 tracert
Novell NetWare iptrace
Linux/UNIX traceroute
Macintosh traceroute
اين دستور علاوه بر اينكه اطلاعات جامعي از هر يك از route هاي مسير تا رسيدن به مقصد به ما مي دهد بلكه نام آن روتر ها را در صورتي كه در آن ها تنظيم شده و در دسترس قرار گرفته باشد نشان خواهد داد. همچنين زمان رفت و برگشت بسته ICMP ما از مبدا تا روتر بين راه بر مبناي ميلي ثانيه نيز توسط اين دستور مشخص خواهد شد. اين اطلاعات به ما كمك خواهد كرد تا كشف كنيم در كجاي مسير ارتباطي بين دو نقطه از شبكه مشكل وجود دارد. در زير يك نمونه موفق از استفاده از اين دستور را در ويندوز 2000 آورده ام.
C:\>tracert 24.7.70.37
Tracing route to c1-p4.sttlwa1.home.net [24.7.70.37] over a maximum of 30 hops:
1 30 ms 20 ms 20 ms 24.67.184.1
2 20 ms 20 ms 30 ms rd1ht-ge3-0.ok.shawcable.net [24.67.224.7]
3 50 ms 30 ms 30 ms rc1wh-atm0-2-1.vc.shawcable.net [204.209.214.193]
4 50 ms 30 ms 30 ms rc2wh-pos15-0.vc.shawcable.net [204.209.214.90]
5 30 ms 40 ms 30 ms rc2wt-pos2-0.wa.shawcable.net [66.163.76.37]
6 30 ms 40 ms 30 ms c1-pos6-3.sttlwa1.home.net [24.7.70.37]
Trace complete.
درست مانند ساير دستورات كه در اين بخش با آن پرداخته ام دستور tracert هم داراي ستون هايي است كه اطلاعات مورد نياز ما در آن تفكيك شده اند. ستون اول شماره هاپ را مشخص كرده است به روايت ديگر يعني جايي كه پاكت ICMP ارسالي كامپيوتر ما با آن رسيده است. سه ستون ديگر نمايانگر زمان ارسال و برگشت پاكت ارسالي به ميلي ثانيه و آخرين ستون نام host مقصد و آدرس IP دستگاه پاسخ دهنده را مشخص مي كند. بديهي است درصورت وجود مشكل در مسير ارتباطي به مقصد Trace route هاي ما موفقيت آميز نخواهند بود. در مثال زير نمونه اي از آن را مشاهده مي كنيد:
C:\>tracert comptia.org
Tracing route to comptia.org [216.119.103.72]
over a maximum of 30 hops:
1 27 ms 28 ms 14 ms 24.67.179.1
2 55 ms 13 ms 14 ms rd1ht-ge3-0.ok.shawcable.net [24.67.224.7]
3 27 ms 27 ms 28 ms rc1wh-atm0-2-1.shawcable.net [204.209.214.19]
4 28 ms 41 ms 27 ms rc1wt-pos2-0.wa.shawcable.net [66.163.76.65]
5 28 ms 41 ms 27 ms rc2wt-pos1-0.wa.shawcable.net [66.163.68.2]
6 41 ms 55 ms 41 ms c1-pos6-3.sttlwa1.home.net [24.7.70.37]
7 54 ms 42 ms 27 ms home-gw.st6wa.ip.att.net [192.205.32.249]
8 * * * Request timed out.
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * * * Request timed out.
در اين مثال پاكت ارسالي ICMP ما تنها موفق شده تا هفت مرحله پيش برود و در مرحله هشتم به مشكل برخورد كرده است كه دليل آن مي تواند اين باشد كه دستگاهي كه در مرحله هشتم قراردارد قطع است و يا اينكه دستگاه موجود در مرحله هفتم كار مي كند اما امكان مشخص كردن هاپ بعدي را ندارد. عوامل بسياري مي تواند وجود داشته باشد كه دستگاه مرحله هفت قادر به انجام وظيفه نگرديده است كه ممكن است مشكل در جدول route آن باشد و يا connection صحيحي براي آنن ايجاد نشده باشد. با توجه به موارد بالا متوجه مي شويد كه توسط اين دستور شما بررسي مشكل را تنها بر روي يك يا دو دستگاه محدود كرده ايد. اين دستور همچنين مي تواند به شما كمك كند تا شبكه هاي در مسير با بار زياد و متراكم را محدود سازيد. به يك مثال دقت كنيد:
C:\>tracert comptia.org
Tracing route to comptia.org [216.119.103.72]over a maximum of 30 hops:
1 96 ms 96 ms 55 ms 24.67.179.1
2 14 ms 13 ms 28 ms rd1ht-ge3-0.ok.shawcable.net [24.67.224.7]
3 28 ms 27 ms 41 ms rc1wh-atm0-2-1.shawcable.net [204.209.214.19]
4 28 ms 41 ms 27 ms rc1wt-pos2-0.wa.shawcable.net [66.163.76.65]
5 41 ms 27 ms 27 ms rc2wt-pos1-0.wa.shawcable.net [66.163.68.2]
6 55 ms 41 ms 27 ms c1-pos6-3.sttlwa1.home.net [24.7.70.37]
7 54 ms 42 ms 27 ms home-gw.st6wa.ip.att.net [192.205.32.249]
8 55 ms 41 ms 28 ms gbr3-p40.st6wa.ip.att.net [12.123.44.130]
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 69 ms 68 ms 69 ms gbr2-p20.sd2ca.ip.att.net [12.122.11.254]
14 55 ms 68 ms 69 ms gbr1-p60.sd2ca.ip.att.net [12.122.1.109]
15 82 ms 69 ms 82 ms gbr1-p30.phmaz.ip.att.net [12.122.2.142]
16 68 ms 69 ms 82 ms gar2-p360.phmaz.ip.att.net [12.123.142.45]
17 110 ms 96 ms 96 ms 12.125.99.70
18 124 ms 96 ms 96 ms light.crystaltech.com [216.119.107.1]
19 82 ms 96 ms 96 ms 216.119.103.72
Trace complete.
در بيان كلي tracert با شما كمك مي كند تا مشكل ارتباطي بين دو نقطه در شبكه را پيدا كنيد. پس از مشخص شدن اين محل ممكن است شما از ابزارها و دستورات ديگري نظير ping براي مشخص كردن دقيق مشكل استفاده نماييد. در بسياري مواقع شايد به اين موضوع بر بخوريد كه روتر داراي مشكل بر روي اينترنت يا مكاني دور دست است كه امكان رفع مشكل آن توسط شما مقدور نباشد لذا به نظرم تنها كاري كه مي توانيد بكنيد اعلام مشكل به ISPتان است.
ARP :
ARP
Address Resolution Protocol يا ARP براي استخراج آدرس MAC از آدرس IP استفاده مي شود. اين دستوري بسيار مهم است زيراكه در يك شبكه دستگاه ها توسط آدرس IP همديگر را پيدا مي كنند اما ارتباط بين آنها از طريق آدرس MAC صورت مي گيرد.
وقتي يك كامپيوتر قصد ارسال اطلاعاتي را به كامپيوتر ديگري دارد نياز دارد آدرس MAC كامپيوتر مقصد را بداند لذا براي اين منظور ، ARP يك پاكت تحقيقاتي را براي دانستن آدرس MAC ارسال مي كند و وقتي كه كامپيوتر مقصد اين بسته را دريافت كرد اقدام به ارسال آدرس MAC خود به كامپيوتر درخواست كننده مي نمايد. اين آدرس هاي MAC بطور موقت در جدولي به نام ARP Cache نگهداري مي شود. اين جدول شامل آدرس هاي MAC و آدرس هاي IP متناظر آن ها است. اين جدول هميشه قبل از ارسال پاكت تحقيقاتي توسط كامپيوتر بررسي مي شود تا اگر آدرس مورد نظر در جدول باشد اقدام به ارسال پاكت ARP نشود و آدرس MAC به راحتي در دسترس قرارگيرد. جدول ARP بطور مداوم خالي مي شود تا پر و لبريز نگردد. در زير نمونه دستوري از ARP را مشاهده مي كنيد :
C:\>arp -a
Interface: 24.67.179.22 on Interface 0x3
Internet Address Physical Address Type
24.67.179.1 00-00-77-93-d8-3d dynamic
همانطور كه مشاهده مي كنيد نوع در خط اول dynamic نشان داده شده است. ورودي هاي Static بطور دستي ايجاد مي شوند و هرگز Expire نمي شوند. ورودي هاي dynamic به جدول بصورت اتوماتيك ايجاد مي شوند. سوئيچ هاي مختلفي براي اين دستور وجود دارد كه در Helpسيستم مي توانيد آن ها را مطالعه كنيد.
netstat :
دستور netstat
اين دستور وضعيت پروتكل ها و پورت هاي ارتباطي TCP/IP را نمايش مي دهد. در صورتي كه اين دستور بدون هيچ سوئيچي استفاده شود ، اين دستور كليه پورت ها و ارتباطات خروجي فعال را نمايش مي دهد. چندين نوع سوئيچ با اين دستور مي توانيد بكار ببريد كه نوع خروجي را مشخص مي كنند. در زير برخي از اين سوئيچ ها آمده است.
a- ارتباطات جاري و پورت هايي كه در حال listen هستند را نمايش مي دهد.
e- وضعيت اترنت را نمايش مي دهد
n- ليستي عددي از آدرس ها و پورت ها را نشان مي دهد
p- وضعيت ارتباط را تنها د رخصوص پروتكلي خاص نمايش مي دهد
r-جدول روتينگ را نمايش مي دهد
s-وضعيت pre-protocolها را ليست مي كند
Interval مشخص كننده مدت زماني است كه بايد صبر شود تا وضعيت جديد نمايش داده شود.
دستور netstat براي نمايش وضعيت پورت ها در هردو TCP و UDPبكار مي رود و ارتباطات به خارج و به درون را نمايش مي دهد. وقتي كه از اين دستور بدن سوئيچ استفاده مي كنيد، چهار گونه اطلاعات به شما نمايش داده مي شود:
1- ليست پروتكل هاي استفاده شده و TCPو UDP
2- آدرسهاي كامپيوتر لوكال و پورت هاي استفاده شده
3- آدرس هاي خارجي و پروتكل هاي استفاده شده در آنها
4- وضعيت ارتباط و اينكه آيا پورتي استفاده شده يا خير
در حالت پيش فرض و معمولي استفاده از اين دستور بدون استفاده از سوئيچي خاص ، وضعيت ارتباط هاي از داخل به خارج توسط پروتكل TCPنمايش داده مي شود. در زير نمونه اي از اين دستور و نتيجه آن آمده است :
C:\>netstat
Active Connections
Proto Local Address Foreign Address State
TCP laptop:2848 MEDIASERVICES1:1755 ESTABLISHED
TCP laptop:1833 www.test.com:80 ESTABLISHED
TCP laptop:2858 194.70.58.241:80 ESTABLISHED
TCP laptop:2860 194.70.58.241:80 ESTABLISHED
TCP laptop:2354 www.test.com:80 ESTABLISHED
TCP laptop:2361 www.test.com:80 ESTABLISHED
TCP laptop:1114 www.test.com:80 ESTABLISHED
TCP laptop:1959 www.test.com:80 ESTABLISHED
TCP laptop:1960 www.test.com:80 ESTABLISHED
TCP laptop:1963 www.test.com:80 ESTABLISHED
TCP laptop:2870 localhost:8431 TIME_WAIT
TCP laptop:8431 localhost:2862 TIME_WAIT
TCP laptop:8431 localhost:2863 TIME_WAIT
TCP laptop:8431 localhost:2867 TIME_WAIT
TCP laptop:8431 localhost:2872 TIME_WAIT
Netstat –e
اين دستور ميزان فعاليت كارت شبكه را نمايش مي دهد و همچنين تعداد پاكت هاي ارسالي و دريافتي را مشخص مي كند. در زير مثالي از اين دستور آورده ام :
C:\WINDOWS\Desktop>netstat -e
Interface Statistics
Received Sent
Bytes 17412385 40237510
Unicast packets 79129 85055
Non-unicast packets 693 254
Discards 0 0
Errors 0 0
Unknown protocols 306
همانطور كه مشاهده مي كنيد اطلاعات مختلفي در اين قسمت مشاهده مي شود :
1- ميزان بايتي از اطلاعات ردوبدل شده از زماني كه كامپيوتر روشن شده است.
2- پاكت هاي يونيكستي كه به اين كامپيوتر ارسال يا دريافت شده است.
3- پاكت هاي غير يونيكس كه توسط كارت شبكه دريافت شده است
4- پاكت هاي قبول نشده به دليل خرابي اطلاعاتي
5- خطاهاي صورت گرفته . اين قسمت بايد نمايانگر عدد پاييني باشد درصورتيكه عدد بالا باشد نشانگر خرابي در كارت شبكه مي تواند باشد.
6- پروتكل هاي ناشناخته كه توسط كامپيوتر شناسايي نشده اند.
Netstat –a:
اين دستور وضعيت پروتكل هاي TCP و UDP را نمايش مي دهد. در زير مثالي را آورده ام .
C:\WINDOWS\Desktop>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP laptop:1027 LAPTOP:0 LISTENING
TCP laptop:1030 LAPTOP:0 LISTENING
TCP laptop:1035 LAPTOP:0 LISTENING
TCP laptop:50000 LAPTOP:0 LISTENING
TCP laptop:5000 LAPTOP:0 LISTENING
TCP laptop:1035 msgr-ns41.msgr.hotmail.com:1863 ESTABLISHED
TCP laptop:nbsession LAPTOP:0 LISTENING
TCP laptop:1027 localhost:50000 ESTABLISHED
TCP laptop:50000 localhost:1027 ESTABLISHED
UDP laptop:1900 *:*
UDP laptop:nbname *:*
UDP laptop:nbdatagram *:*
UDP laptop:1547 *:*
UDP laptop:1038 *:*
UDP laptop:1828 *:*
UDP laptop:3366 *:*
همانطور كه مشاهده مي كنيد، خروجي شامل چهار ستون است كه پروتكل ، آدرس لوكال ، آدرس خارجي و وضعيت پورت را مشخص مي كند. ارتباطات TCP آدرس هاي لوكال (محلي) و خارجي و وضعيت ارتباط را مشخص مي كند. UDP هرچند كمي متفاوت است و آن بدين ترتيب است كه تنها پورت استفاده شده نمايش داده شده است و آدرس و وضعيت ارتباط مشخص نمي شود و اين به اين دليل است كه همانطور كه مي دانيد UDP از نوع پروتكل Connectionless مي باشد. در ليست زير اطلاعاتي كه در اينجا نمايش داده شده است را توضيح مي دهم :
1- Proto نوع پروتكل استفاده شده را نمايش مي دهد
2- آدرس لوكال نشانگر آدرس شبكع و پورتي است كه كامپيوتر ما استفاده كرده است. در صورت ديدن ستاره در اين قسمت در مي يابيم كه ارتباط هنوز ايجاد نشده است.
3- آدرس خارجي آدرس كامپيوتر مقصد (دور) و پورت آن است. علامت ستاره هم نشانگر اين است كه ارتباط هنوز برقرار نشده است.
4- State يا وضعيت : نشانگر وضعيت ارتباطي است كه آيا ارتباط ايجاد شده است يا اينكه در حالت هاي listening يا closed يا waiting(انتظار) قرار دارد.
Netstat –r
گاهي از اين دستور براي نمايش جدول روتينگ كامپيوتر استفاده مي شود. سيستم از اين جدول براي تشخيص مسير ترافيك مربوط به TCP استفاده مي نمايد. در زير مثالي را آورده ام :
C:\WINDOWS\Desktop>netstat r
Route table
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 24.67.179.1 24.67.179.22 1
24.67.179.0 255.255.255.0 24.67.179.22 24.67.179.22 1
24.67.179.22 255.255.255.255 127.0.0.1 127.0.0.1 1
24.255.255.255 255.255.255.255 24.67.179.22 24.67.179.22 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
224.0.0.0 224.0.0.0 24.67.179.22 24.67.179.22 1
255.255.255.255 255.255.255.255 24.67.179.22 2 1
Default Gateway: 24.67.179.1
===========================================================================
Persistent Routes:
None
Netstat –s
اين دستور تعداد مشخه هاي مرتبط به پروتكل TCP را نمايش مي دهد. در زير نمونه اي از خروجي اين دستور را آورده ام:
C:\>netstat -s
IP Statistics
Packets Received = 389938
Received Header Errors = 0
Received Address Errors = 1876
Datagrams Forwarded = 498
Unknown Protocols Received = 0
Received Packets Discarded = 0
Received Packets Delivered = 387566
Output Requests = 397334
Routing Discards = 0
Discarded Output Packets = 0
Output Packet No Route = 916
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0
ICMP Statistics
Received Sent
Messages 40641 41111
Errors 0 0
Destination Unreachable 223 680
Time Exceeded 24 0
Parameter Problems 0 0
Source Quenches 0 0
Redirects 0 38
Echos 20245 20148
Echo Replies 20149 20245
Timestamps 0 0
Timestamp Replies 0 0
Address Masks 0 0
Address Mask Replies 0 0
TCP Statistics
Active Opens = 13538
Passive Opens = 23132
Failed Connection Attempts = 9259
Reset Connections = 254
Current Connections = 15
Segments Received = 330242
Segments Sent = 326935
Segments Retransmitted = 18851
UDP Statistics
Datagrams Received = 20402
No Ports = 20594
Receive Errors = 0
Datagrams Sent = 10217
nbtstat :
Nbtstat
اين دستور براي مشخص نمودن وضعيت پروتكل NetBIOS در ارتباط هاي مبتني بر TCP/IP مورد استفاده قرار مي گيرد. Nbtstat معمولا براي تشخيص مشكلات NetBIOS مورد استفاده قرار مي گيرد. به دليل اينكه nbtstat· بر بروي NetBIOSكار مي كند تنها در سيستم هاي مبتني بر ويندوز مورد استفاده قرار مي گيرد. در زير سوئيچ هاي مختلف مورد استفاده در اين دستور را آورده ام :
nbtstat -a
nbtstat -A (IP address)
nbtstat -c (cache)
nbtstat -n (names)
nbtstat -r (resolved)
nbtstat -R (Reload)
nbtstat -S (Sessions)
nbtstat -s (sessions)
nbtstat -RR (ReleaseRefresh)
در زير يك نمونه خروجي حاصل از دستور nbtstat –n· آمده است
C:\>nbtstat -n
Lana # 0:
Node IpAddress: [169.254.196.192] Scope Id: []
··············· NetBIOS Local Name Table
······ Name·············· Type········ Status
··· ---------------------------------------------
··· LAPTOP········ · UNIQUE····· Registered
··· KCS··········· · GROUP······ Registered
··· LAPTOP········ · UNIQUE····· Registered
Route :
Route
توسط اين دستور مي توان جدول محلي IP Routing را بررسي كرد و آن را در صورت نياز تغيير داد. نحوه استفاده از اين دستور به صورت زير است :
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
پارامترهاي مورد استفاده در اين دستور به شرح زير است :
f- كليه Routeهايي كه netmask آنها 255.255.255.255 است ، كليه Route هاي loopback ( مقصد 127.0.0.0 با subnetmask 255.0.0.0 ) يا Routeهاي Multitask (مقصد 224.0.0.0 با netmask 240.0.0.0) را پاك مي كند.
p- وقتي با دستور add بكار برده مي شود Route مشخص شده به رجيستري اضافه مي شود و هرگاه TCP/IP شروع بكار نمايد اين Route هم تشكيل مي شود( بطور پيشفرض Route هايي كه ما ايجاد مي كنيم هنگامي كه TCP/IPشروع به كار مي كند ايجاد نمي شوند). وقتي اين سوئيچ به همراه دستور Print بكار برده شود ليست Routeهاي تثبيت شده نمايش داده خواهد شد. اين سوئيچ به همراه دستورات ديگر كار خاصي انجام نخواهد داد. Route هايي كه تثبيت شده اند در محل رجيستري زير ذخيره مي شوند :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes.
Command :
اين پارامتر دستور مورد نظر شما را مشخص كرده و اعمال مي كند. دستورات قابل استفاده به شرح زير هستند :
Add اين دستور امكان اضافه نمودن Route جديد را به شما خواهد داد.
Change توسط اين دستور قادر خواهيد بود Route خاصي را در جدول Routing تغيير دهيد.
Delete در صورتي كه بخواهيد Routeاي را از جدول پاك كنيد از اين دستور استفاده بايد كرد.
Print توسط اين دستور امكان مشاهده Routeهاي موجود در جدول Routing Table ميسر خواهد شد.
Destination:
مشخص كننده آدرس شبكه مقصد است. اين آدرس مي تواند آدرس IP شبكه ( بيت هاي مربوط به Host در اين آدرس صفر است) ، آدرس IP يك Host مشخص و يا 0.0.0.0 براي Route پيش فرض باشد.
Mask Network:
Netmask يا subnet mask را مشخص مي كند و در ادامه آدرس مقصد نوشته مي شود كه مي تواند بصورت يك Subnet mask شبكه ، بصورت 255.255.255.0 جهت يك Host و يا بصورت 0.0.0.0 براي يك Default Route مورد استفاده قرار گيرد. در صورتيكه اصلا subnet mask در دستور بكار برده نشود پيش فرض 255.255.255.255در نظر گرفته مي شود.
Gateway:
توسط اين دستور هاپ شبكه يا هاپ بعدي را كه آدرس IP ما قابل دسترس گردد مشخص مي كنيم. جهت Route هايي كه بصورت محلي به شبكه ما مرتبط هستند Gateway آدرس IP رابط يا Interfaceاي است كه به شبكه ما مرتبط شده است. براي routeهاي دور ، اين آدرس ، آدرس IP قابل دسترسي مي باشد كه به شبكه هاي همسايه مرتبط است.
metric Metric:
عددي بين 1 تا 9999 مي باشد و مشخص كننده cost يك Route مي باشد و زماني اهميت آن بيشتر مي شود كه چندين راه و يا به عبارتي Route از مبدا به مقصد وجود دارد و قصد آن را داريم كه بهترين و سريعتر مسير را براي دسترسي به مقصد پيدا كنيم. بطور پيش فرض Route با پايين ترين metric اولويت خواهد داشت. metric نمايانگر تعداد هاپ ، سرعت مسير ،ميزان اطمينان به مسير ، توان عملياتي مسير و يا خواص قابل تنظيم مي باشد.
If Interface:
شاخصي براي interface قابل دسترسي مقصد را مشخص مي كند. براي اينكه ليست Interfaceها و شاخص هاي آن ها را مشاهده كنيد از دستور route print استفاده كنيد. همچنين شما مي توانيد از مقادير دسيمال و هگزادسيمال جهت شاخص Interface استفاده كنيد. در ابتداي شماره هاي هگزادسيمال از 0x استفاده نماييد. در صورتي كه پارامتر if را در دستور استفاده نكنيد ، interface از طريق Gateway آن مشخص مي شود.
/? اين سوئيچ Help را نمايش خواهد داد.
در زير چند نمونه از نحوه استفاده از اين دستور را آورده ام :
نمايش كليه route هايي كه آدرس IP آن ها با 10. شروع مي شود بصورت زير است :
route print 10.*
براي اينكه يك route پيش فرض با آدرس 192.168.12.1به جدول Routing اضافه كنيد از دستور زير بايد استفاده كرد :
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1
براي اينكه Route جديدي به مقصد 10.41.0.0 و subnet mask به آدرس 255.255.0.0 با هاپ بعدي به آدرس 10.27.0.1 بسازيد از دستور زير بايد استفاده كنيد :
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1
براي اينكه يك route ثابت به مقصد با آدرس 10.41.0.0 و Subnet mask بصورت 255.255.0.0 با هاپ بعدي به آدرس 10.27.0.1 ايجاد كنيد از دستور زير استفاده كنيد :
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1
براي اينكه يك route به مقصد 10.41.0.0 با subnet mask بصورت 255.255.0.0 و هاپ بعدي 10.27.0.1 و با cost metric 7 ايجاد كنيد از دستور زير استفاده كنيد :
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
براي ايجاد يك route به آدرس 10.41.0.0 با subnet mask بصورت 255.255.0.0 و هاپ بعدي آدرس 10.27.0.1 كه از شاخص interface بصورت عدد هگزا 0x3 از دستور زير استفاده كنيد :
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3
براي حذف يك route به مقصد 10.41.0.0و با subnet mask 255.255.0.0 از دستور زير استفاده كنيد:
route delete 10.41.0.0 mask 255.255.0.0
براي حذف كليه routeهايي كه با 10. در جدول routing شروع مي شوند از دستور زير استفاده كنيد:
route delete 10.*
براي تغيير آدرس هاپ بعدي كه مقصد آن 10.41.0.0 با subnet mask بصورت 255.255.0.0 است و از مقصد 10.27.0.1 به 10.27.0.25 ايجاد شده است از دستور زير استفاده كنيد :
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25
به نام نور