اشكال زدائی شبكه : يك رويكرد ساختيافته
در صورت بروز مشكل در شبكه و به منظور اشكال زدائی آن از چه روش و يا روش هائی استفاده می نمائيد ؟ برای حل هر مشكل ، قطعا" می توان يك راه حل مناسب را پيدا نمود ولی مهم استفاده از روشی است كه در كوتاهترين زمان و با صرف كمترين هزينه مشكل را برطرف نمايد .
به منظور اشكال زدائی شبكه های مبتنی بر پروتكل TCP/IP ، می بايست شناخت مناسبی نسبت به اين پروتكل وجود داشته باشد . پروتكل ، در حقيقت مجموعه ای از مراحل به منظور ارسال بيت ها در شبكه را مشخص می نمايد . TCP/IP ، پروتكلی است با چهار لايه و چندين پروتكل در هر لايه .
• استفاده از دستور ipconfig به منظور مشاهده آدرس های IP ، Subnet mask و Gateway و اطمينان از صحت آنها
• استفاده از دستور ping 127.0.0.1 به منظور حصول اطمينان از صحت عملكرد كارت شبكه
• Ping نمودن آدرس IP كامپيوتر به منظور حصول اطمينان از صحت تنظيمات و پيكربندی پروتكل TCP/IP
• ping نمودن آدرس IP ساير كامپيوترهای موجود در Subnet مشابه
• Ping نمودن آدرس Gateway پيش فرض
• Ping نمودن آدرس IP كامپيوتر موجود در Subnet ديگر
در روش فوق ، شعاع ميدان عملياتی به منظور اشكال زدائی بتدريج افزايش خواهد يافت . به عنوان نمونه در ابتدا فرض خواهد شد كه مشكل ايجاد شده مربوط به كامپيوتر كاربر است . در صورت عدم صحت فرضيه فوق ، بر روی شبكه ای متمركز خواهيم شد كه كاربر مورد نظر عضوی از آن است . در صورتی كه مشكل همچنان وجود داشته باشد ، پا را فراتر گذاشته و بر روی ساير شبكه ها متمركز خواهيم شد .
روش فوق در زمانی كه واقعيتی با نام اينترنت وجود نداشت و يا استفاده از DNS برای حل مشكل نام متداول نشده بود و فايروال ها و VPNs به عنوان يك حقيقت انكار ناپذير در حيات اكثر شبكه های سازمانی مورد توجه قرار نگرفته بودند ، در ابعاد گسترده ای استفاده می گرديد ( همچنان نيز مورد توجه است ) .
فرض كنيد يكی از كاربران طی تماس با بخش پشتيبانی شبكه ، عبارت زير را بيان و درخواست كمك نمايد .
من نمی توانم هم اينك به سرور ( server ) متصل شوم .
بد نيست عبارت فوق را آناليز و تمامی احتمالات ممكن را بررسی نمائيم .
من نمی توانم ...
آيا تنها كاربری است كه اين مشكل خاص را در شبكه گزارش می نمايد ؟ آيا ساير كاربران شبكه نيز چنين مشكلی را گزارش نموده اند ؟ در صورتی كه مشكل فوق توسط تعداد زيادی از كاربران شبكه گزارش شده است ، نمی توان از روش اشاره شده به منظور تشخيص و حل مشكل استفاده نمود . مشكل ، كامپيوتر كاربر نيست بلكه اشكال چيز ديگری است . به عنوان نمونه ممكن است سرويس دهنده DNS دچار مشكل و يا offline شده باشد و يا شايد يك روتر در شبكه داخلی دچار مشكل شده باشد و يا سرويس دهنده ای كه كاربران قصد اتصال به آن را دارند مشكل سخت افزاری پيدا كرده است .
آيا می توان بين تمامی كاربرانی كه برای آنان يك مشكل خاص ايجاد شده است ، رابطه ای منطقی پيدا نمود ؟ به عنوان نمونه ، آيا تمامی ماشين های آنان بر روی يك subnet قرار دارد ؟ آيا gateway پيش فرض برای subnet مورد نظر به درستی پيكربندی شده است ؟ آيا روتر دچار مشكل شده است ؟ شايد كابلی كه دپارتمان مورد نظر را به ستون فقرات اصلی شبكه وصل می نمايد ، قطع شده باشد . شايد يك سرويس دهنده DHCP غيرواقعی در subnet مورد نظر نصب و به كاربران ( پس از اتمام مدت زمان IP نسبت داده شده توسط DHCP واقعی) ، يك آدرس IP تقلبی و غيرقابل روت نسبت می دهد .
در صورتی كه مشكل گزارش شده مربوط به يك كاربر باشد ، می توان از روش اشاره شده استفاده و كار اشكال زدائی را با طرح سوالات مورد نظر آغاز نمود .
... متصل شوم .
در چنين مواردی بد نيست كه با صراحت از كاربر سوال شود كه منظور وی از "متصل شدن " چيست ؟ در برخی موارد ، كاربران از واژه فوق در جايگاه خود به درستی استفاده نمی نمايند . در شبكه از واژه اتصال در موارد متعددی استفاده می گردد . TCP Session ، ارتباطات MAC level ، تائيديه رمزعبور ، حقوق دستيابی و مجوزها ، اتصالات عبور يافته از NAT ، عبور از فايروال ها ، Application Session level و ... نمونه هائی در اين زمينه می باشند .
كاربران دارای چه نوع مشكلی ارتباطی می باشند ؟ كاربران پس از اتصال به سرور چه عملياتی را می خواهند انجام دهند ؟ آيا آنها قصد دستيابی و استفاده از يك منبع مشترك بر روی سرور را دارند ؟ آيا كاربران با پيامی نظير "Access denied" مواجه می شوند ؟ آيا از كاربران به منظور اتصال به سرور درخواست نام و رمزعبور می گردد ؟ آيا كاربران در يافتن منابع به اشتراك گذاشته شده در اكتيو دايركتوری دچار مشكل شده اند ؟ آيا كاربران با يك map drive مشكل دارند و سوالات فراوان ديگری .
تمامی سوالات فوق زمانی مطرح می گردد كه يك كاربر قصد اتصال به يك سرور را داشته باشد . اين مشكل می تواند جهت اتصال به ساير سرورها و يا ساير كاربران نيز وجود داشته باشد . تعيين دقيق مختصات مسئله ايجاد شده بسيار حائز اهميت است . آيا مشكل ايجاد شده صرفا" در يك مورد خاص خود را نشان داده است و يا در موارد ديگری نيز مشكل وجود دارد.
... به سرور ....
شما دارای كاربر و سرويس دهنده ای در شبكه هستيد كه عليرغم وجود يك شبكه ارتباطی ، امكان ارتباط بين آنها وجود ندارد . علت چيست ؟ آيا سرور و كاربر عضوءيك subnet مشابه هستند و يا در يك دپارتمان ، subnet ، طبقه و يا ساختمان ديگر مستقر شده اند ؟ كاربر با استفاده از چه نوع لينك ارتباطی به سرور متصل شده است ؟ يك كابل و از طريق LAN ، يك لينك بی سيم WLAN ، يك خط T1 ، يك لينك Frame Relay ، يك ارتباط VPN ، يك ارتباط ازطريق مودم كابلی و يا خطوط DSL ؟
در ابتدا لازم است نوع لينك ارتباطی بين كاربر و سرور دقيقا" مشخص گردد و در ادامه با توجه به ماهيت لينك ارتباطی ، بررسی لازم در خصوص عدم امكان برقراری ارتباط ، انجام پذيرد . شايد CSU/DSU شل شده باشد و يا به علت تميز كردن اطاق سرورها ، برخی كابل ها قطع و باعث خاموش شدن يك سوئيچ اترنت شده است . شايد محل سرور در مكان ديگری است و در آن مكان يك خاموشی غيرقابل پيش بينی اتفاق افتاده باشد .
به هر حال لازم است به دقت مشخص گردد كه مشكل برقراری ارتباط صرفا" در خصوص يك سرور است و يا ساير سرورها نيز دارای مشكل می باشند . چه نوع ارتباط منطقی بين تمامی سرورها وجود دارد ؟ آيا كاربران ديگر از لحاظ ارتباط با ساير سرورها نيز دارای مشكل می باشند ؟
... هم اينك ...
عنصر زمان در اشكال زدائی بسيار تعيين كننده و مهم است . آيا مشكل تازه ايجاد شده است ؟ آخرين مرتبه ای كه كاربران بطور موفقيت آميز به سرور متصل شده اند ، چه زمانی بوده است ؟ از آن زمان تاكنون چه اتفاق خاصی افتاده است ؟ آيا مشكل دائمی است و يا به صورت كاملا" تصادفی خود را نشان می دهد ؟
پارامتر زمان يك عامل تعيين كننده به منظور تشخيص مشكل ارتباطی با ساير رويدادهائی است كه ممكن است شبكه را تحت تاثير قرار داده باشند . آيا مشكل ايجاد شده در يك ساعت خاص خود را نشان می دهد ؟ در آن زمان خاص چه اتفاق ديگری در شبكه افتاده است ؟
با بررسی نمونه پرسش های فوق و يافتن پاسخ مناسب برای هر يك از آنها ، می توان ارتباط احتمالی مشكل ايجاد شده با ساير مسائل موجود را تشخيص و يا حداقل رديابی نمود .
• سرويس دهندگان ، چاپگرها و ساير منابع شبكه نظير اينترنت كه سرويس گيرندگان با آنها مشكل دارند .
• شبكه موجود : كابل ها ( در صورتی كه بی سيم نباشد ) ، هاب ها ، سوئيچ ها ، روترها ، فايروال ها ، و ساير عناصر موجود در زيرساخت شبكه بين سرويس گيرندگان و سرويس دهندگان
• شرايط محيطی : شرايط خارجی نظير قطع جريان برق ، تعمير و نگهداری ساختمان و ساير مواردی كه ممكن است سرويس دهی شبكه را تحت تاثير قرار دهد .
• محدوده بروز مشكل : چه تعداد از سرويس گيرندگان و يا سرويس دهندگان دارای مشكل هستند .
• محدوده زمانی بروز مشكل : مشكل ايجاد شده در چه مقطع و يا مقاطع زمانی ايجاد می شود . ماهيت آن به چه صورت است : هميشگی ، تصادفی و يا بندرت
• نوع مشكل ارتباطی : در كدام لايه امكان برقراری ارتباط وجود ندارد : لايه فيزيكی ، شبكه ، حمل و يا application ، تائيد و يا كنترل دستيابی و ...
• بررسی لاگ ها و خطاها : مشاهده و بررسی پيام های خطاء بر روی ماشين های سرويس گيرنده ، جعبه های login و ...
• برسی پيكربندی TCP/IP سرويس گيرندگان ، سرويس دهندگان و ساير سخت افزارهائی كه از آنها در زيرساخت شبكه استفاده می گردد . بر روی سرويس گيرنده و سرويس دهنده ، می بايست آدرس های IP ، sunbet ، تنظيمات Default Gateway ، سرويس دهنده DNS و ... بررسی گردند.
• بررسی ارتباط روتينگ بين سرويس گيرندگان و سرويس دهندگان . بدين منظور می توان از دستوراتی نظير Ping , Pathping , tracert و ساير ابزارهای مشابه به منظور بررسی صحت ارتباط end-to-end TCP/IP در سطح شبكه ، استفاده از packet sniffing به منظور مانيتورينگ session لايه transport ، استفاده از nslookup و telnet و ساير ابزارها به منظور اشكال زدائی لايه application نظير مسائل name resolution ، مسائل تائيديه و ... استفاده نمود .
• نوع پرسش و نحوه پاسخ به آن ، نحوه ذخيره سازی و ايجاد ارتباط بين اطلاعات دريافتی با اطلاعات ذخيره شده ، يكی از اركان مهم در موفقيت اشكال زدائی شبكه محسوب می گردد . اشكال زدائی ، هنری است ارزشمند كه موفقيت آن به استفاده مناسب از منطق و بصيرت بستگی دارد .
• در نهايت ، به منظور محدود نمودن شعاع عمليات اشكال زدائی ، می بايست همه چيز را تست نمود. بدين منظور ، می توان از نرم افزارهای متنوع اشكال زدائی استفاده نمود .
هيچ چيز در زندگی با ارزش تر از حل يك مسئله سخت و كسب يك تجربه موفقيت آميز نمی باشد.
به منظور اشكال زدائی شبكه های مبتنی بر پروتكل TCP/IP ، می بايست شناخت مناسبی نسبت به اين پروتكل وجود داشته باشد . پروتكل ، در حقيقت مجموعه ای از مراحل به منظور ارسال بيت ها در شبكه را مشخص می نمايد . TCP/IP ، پروتكلی است با چهار لايه و چندين پروتكل در هر لايه .
رويكرد سنتی
• استفاده از دستور ipconfig به منظور مشاهده آدرس های IP ، Subnet mask و Gateway و اطمينان از صحت آنها
• استفاده از دستور ping 127.0.0.1 به منظور حصول اطمينان از صحت عملكرد كارت شبكه
• Ping نمودن آدرس IP كامپيوتر به منظور حصول اطمينان از صحت تنظيمات و پيكربندی پروتكل TCP/IP
• ping نمودن آدرس IP ساير كامپيوترهای موجود در Subnet مشابه
• Ping نمودن آدرس Gateway پيش فرض
• Ping نمودن آدرس IP كامپيوتر موجود در Subnet ديگر
در روش فوق ، شعاع ميدان عملياتی به منظور اشكال زدائی بتدريج افزايش خواهد يافت . به عنوان نمونه در ابتدا فرض خواهد شد كه مشكل ايجاد شده مربوط به كامپيوتر كاربر است . در صورت عدم صحت فرضيه فوق ، بر روی شبكه ای متمركز خواهيم شد كه كاربر مورد نظر عضوی از آن است . در صورتی كه مشكل همچنان وجود داشته باشد ، پا را فراتر گذاشته و بر روی ساير شبكه ها متمركز خواهيم شد .
روش فوق در زمانی كه واقعيتی با نام اينترنت وجود نداشت و يا استفاده از DNS برای حل مشكل نام متداول نشده بود و فايروال ها و VPNs به عنوان يك حقيقت انكار ناپذير در حيات اكثر شبكه های سازمانی مورد توجه قرار نگرفته بودند ، در ابعاد گسترده ای استفاده می گرديد ( همچنان نيز مورد توجه است ) .
فرض كنيد يكی از كاربران طی تماس با بخش پشتيبانی شبكه ، عبارت زير را بيان و درخواست كمك نمايد .
من نمی توانم هم اينك به سرور ( server ) متصل شوم .
بد نيست عبارت فوق را آناليز و تمامی احتمالات ممكن را بررسی نمائيم .
من نمی توانم ...
آيا تنها كاربری است كه اين مشكل خاص را در شبكه گزارش می نمايد ؟ آيا ساير كاربران شبكه نيز چنين مشكلی را گزارش نموده اند ؟ در صورتی كه مشكل فوق توسط تعداد زيادی از كاربران شبكه گزارش شده است ، نمی توان از روش اشاره شده به منظور تشخيص و حل مشكل استفاده نمود . مشكل ، كامپيوتر كاربر نيست بلكه اشكال چيز ديگری است . به عنوان نمونه ممكن است سرويس دهنده DNS دچار مشكل و يا offline شده باشد و يا شايد يك روتر در شبكه داخلی دچار مشكل شده باشد و يا سرويس دهنده ای كه كاربران قصد اتصال به آن را دارند مشكل سخت افزاری پيدا كرده است .
آيا می توان بين تمامی كاربرانی كه برای آنان يك مشكل خاص ايجاد شده است ، رابطه ای منطقی پيدا نمود ؟ به عنوان نمونه ، آيا تمامی ماشين های آنان بر روی يك subnet قرار دارد ؟ آيا gateway پيش فرض برای subnet مورد نظر به درستی پيكربندی شده است ؟ آيا روتر دچار مشكل شده است ؟ شايد كابلی كه دپارتمان مورد نظر را به ستون فقرات اصلی شبكه وصل می نمايد ، قطع شده باشد . شايد يك سرويس دهنده DHCP غيرواقعی در subnet مورد نظر نصب و به كاربران ( پس از اتمام مدت زمان IP نسبت داده شده توسط DHCP واقعی) ، يك آدرس IP تقلبی و غيرقابل روت نسبت می دهد .
در صورتی كه مشكل گزارش شده مربوط به يك كاربر باشد ، می توان از روش اشاره شده استفاده و كار اشكال زدائی را با طرح سوالات مورد نظر آغاز نمود .
... متصل شوم .
در چنين مواردی بد نيست كه با صراحت از كاربر سوال شود كه منظور وی از "متصل شدن " چيست ؟ در برخی موارد ، كاربران از واژه فوق در جايگاه خود به درستی استفاده نمی نمايند . در شبكه از واژه اتصال در موارد متعددی استفاده می گردد . TCP Session ، ارتباطات MAC level ، تائيديه رمزعبور ، حقوق دستيابی و مجوزها ، اتصالات عبور يافته از NAT ، عبور از فايروال ها ، Application Session level و ... نمونه هائی در اين زمينه می باشند .
كاربران دارای چه نوع مشكلی ارتباطی می باشند ؟ كاربران پس از اتصال به سرور چه عملياتی را می خواهند انجام دهند ؟ آيا آنها قصد دستيابی و استفاده از يك منبع مشترك بر روی سرور را دارند ؟ آيا كاربران با پيامی نظير "Access denied" مواجه می شوند ؟ آيا از كاربران به منظور اتصال به سرور درخواست نام و رمزعبور می گردد ؟ آيا كاربران در يافتن منابع به اشتراك گذاشته شده در اكتيو دايركتوری دچار مشكل شده اند ؟ آيا كاربران با يك map drive مشكل دارند و سوالات فراوان ديگری .
تمامی سوالات فوق زمانی مطرح می گردد كه يك كاربر قصد اتصال به يك سرور را داشته باشد . اين مشكل می تواند جهت اتصال به ساير سرورها و يا ساير كاربران نيز وجود داشته باشد . تعيين دقيق مختصات مسئله ايجاد شده بسيار حائز اهميت است . آيا مشكل ايجاد شده صرفا" در يك مورد خاص خود را نشان داده است و يا در موارد ديگری نيز مشكل وجود دارد.
... به سرور ....
شما دارای كاربر و سرويس دهنده ای در شبكه هستيد كه عليرغم وجود يك شبكه ارتباطی ، امكان ارتباط بين آنها وجود ندارد . علت چيست ؟ آيا سرور و كاربر عضوءيك subnet مشابه هستند و يا در يك دپارتمان ، subnet ، طبقه و يا ساختمان ديگر مستقر شده اند ؟ كاربر با استفاده از چه نوع لينك ارتباطی به سرور متصل شده است ؟ يك كابل و از طريق LAN ، يك لينك بی سيم WLAN ، يك خط T1 ، يك لينك Frame Relay ، يك ارتباط VPN ، يك ارتباط ازطريق مودم كابلی و يا خطوط DSL ؟
در ابتدا لازم است نوع لينك ارتباطی بين كاربر و سرور دقيقا" مشخص گردد و در ادامه با توجه به ماهيت لينك ارتباطی ، بررسی لازم در خصوص عدم امكان برقراری ارتباط ، انجام پذيرد . شايد CSU/DSU شل شده باشد و يا به علت تميز كردن اطاق سرورها ، برخی كابل ها قطع و باعث خاموش شدن يك سوئيچ اترنت شده است . شايد محل سرور در مكان ديگری است و در آن مكان يك خاموشی غيرقابل پيش بينی اتفاق افتاده باشد .
به هر حال لازم است به دقت مشخص گردد كه مشكل برقراری ارتباط صرفا" در خصوص يك سرور است و يا ساير سرورها نيز دارای مشكل می باشند . چه نوع ارتباط منطقی بين تمامی سرورها وجود دارد ؟ آيا كاربران ديگر از لحاظ ارتباط با ساير سرورها نيز دارای مشكل می باشند ؟
... هم اينك ...
عنصر زمان در اشكال زدائی بسيار تعيين كننده و مهم است . آيا مشكل تازه ايجاد شده است ؟ آخرين مرتبه ای كه كاربران بطور موفقيت آميز به سرور متصل شده اند ، چه زمانی بوده است ؟ از آن زمان تاكنون چه اتفاق خاصی افتاده است ؟ آيا مشكل دائمی است و يا به صورت كاملا" تصادفی خود را نشان می دهد ؟
پارامتر زمان يك عامل تعيين كننده به منظور تشخيص مشكل ارتباطی با ساير رويدادهائی است كه ممكن است شبكه را تحت تاثير قرار داده باشند . آيا مشكل ايجاد شده در يك ساعت خاص خود را نشان می دهد ؟ در آن زمان خاص چه اتفاق ديگری در شبكه افتاده است ؟
با بررسی نمونه پرسش های فوق و يافتن پاسخ مناسب برای هر يك از آنها ، می توان ارتباط احتمالی مشكل ايجاد شده با ساير مسائل موجود را تشخيص و يا حداقل رديابی نمود .
رويكرد ساختيافته
محور اول : مشخص كردن عناصری كه باعث بروز مشكل شده اند
• سرويس دهندگان ، چاپگرها و ساير منابع شبكه نظير اينترنت كه سرويس گيرندگان با آنها مشكل دارند .
• شبكه موجود : كابل ها ( در صورتی كه بی سيم نباشد ) ، هاب ها ، سوئيچ ها ، روترها ، فايروال ها ، و ساير عناصر موجود در زيرساخت شبكه بين سرويس گيرندگان و سرويس دهندگان
• شرايط محيطی : شرايط خارجی نظير قطع جريان برق ، تعمير و نگهداری ساختمان و ساير مواردی كه ممكن است سرويس دهی شبكه را تحت تاثير قرار دهد .
• محدوده بروز مشكل : چه تعداد از سرويس گيرندگان و يا سرويس دهندگان دارای مشكل هستند .
• محدوده زمانی بروز مشكل : مشكل ايجاد شده در چه مقطع و يا مقاطع زمانی ايجاد می شود . ماهيت آن به چه صورت است : هميشگی ، تصادفی و يا بندرت
• نوع مشكل ارتباطی : در كدام لايه امكان برقراری ارتباط وجود ندارد : لايه فيزيكی ، شبكه ، حمل و يا application ، تائيد و يا كنترل دستيابی و ...
• بررسی لاگ ها و خطاها : مشاهده و بررسی پيام های خطاء بر روی ماشين های سرويس گيرنده ، جعبه های login و ...
محور دوم : مشخص كردن مراحل اشكال زدائی
• برسی پيكربندی TCP/IP سرويس گيرندگان ، سرويس دهندگان و ساير سخت افزارهائی كه از آنها در زيرساخت شبكه استفاده می گردد . بر روی سرويس گيرنده و سرويس دهنده ، می بايست آدرس های IP ، sunbet ، تنظيمات Default Gateway ، سرويس دهنده DNS و ... بررسی گردند.
• بررسی ارتباط روتينگ بين سرويس گيرندگان و سرويس دهندگان . بدين منظور می توان از دستوراتی نظير Ping , Pathping , tracert و ساير ابزارهای مشابه به منظور بررسی صحت ارتباط end-to-end TCP/IP در سطح شبكه ، استفاده از packet sniffing به منظور مانيتورينگ session لايه transport ، استفاده از nslookup و telnet و ساير ابزارها به منظور اشكال زدائی لايه application نظير مسائل name resolution ، مسائل تائيديه و ... استفاده نمود .
محور سوم : درك مناسب ، طرح پرسش و تست
• نوع پرسش و نحوه پاسخ به آن ، نحوه ذخيره سازی و ايجاد ارتباط بين اطلاعات دريافتی با اطلاعات ذخيره شده ، يكی از اركان مهم در موفقيت اشكال زدائی شبكه محسوب می گردد . اشكال زدائی ، هنری است ارزشمند كه موفقيت آن به استفاده مناسب از منطق و بصيرت بستگی دارد .
• در نهايت ، به منظور محدود نمودن شعاع عمليات اشكال زدائی ، می بايست همه چيز را تست نمود. بدين منظور ، می توان از نرم افزارهای متنوع اشكال زدائی استفاده نمود .
هيچ چيز در زندگی با ارزش تر از حل يك مسئله سخت و كسب يك تجربه موفقيت آميز نمی باشد.