دانشجویان کامپیوتر اصفهان

وب سایت سابق(( دانشجویان کامپیوتر جهاد دانشگاهی یزد - خرم آباد ))

آشنائی با پروتکل   DNS

سلام به دوستان خودم دوستان رشته کامپیوتر ....

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

 DNS از کلمات Domain Name System که به ترتیب به معنی ( سیستم نام حوزه ) است و یک پروتکل شناخته شده در عرصه شبکه های کامپیوتری خصوصاً اینترنت است . از پروتکل فوق به منظور ترجمه  اسامی کامپیوترهای میزبان و Domain به آدرس های IP استفاده می گردد. زمانی که شما آدرس www.srco.ir را در مرورگر خود تایپ می نمائید ، نام فوق به یک آدرس IP و بر اساس یک درخواست خاص(query)  که از جانب کامپیوتر شما صادر می شود ، ترجمه می گردد .


تاریخچهDNS :

DNS ، زمانی که اینترنت تا به این اندازه گسترش پیدا نکرده بود و صرفاً در حد و اندازه یک شبکه کوچک بود ، استفاده می گردید . در آن زمان ، اسامی کامپیوترهای میزبان به صورت دستی در فایلی با نام HOSTS درج می گردید . فایل فوق بر روی یک سرویس دهنده مرکزی قرار می گرفت . هر سایت و یا کامپیوتر که نیازمند ترجمه اسامی کامپیوترهای میزبان بود ، می بایست از فایل فوق استفاده می نمود . همزمان با گسترش اینترنت و افزایش تعداد کامپیوترهای میزبان ، حجم فایل فوق نیز افزایش و  امکان استفاده از آن با مشکل مواجه گردید ( افزایش ترافیک شبکه ). با توجه به مسائل فوق ، در سال 1984 تکنولوژی DNS معرفی گردید .

پروتکلDNS :

DNS  ، یک "بانک اطلاعاتی توزیع شده " است که بر روی ماشین های متعددی مستقر می شود ( مشابه ریشه های یک درخت که از ریشه اصلی انشعاب می شوند ) . امروزه اکثر شرکت ها و موسسات دارای یک سرویس دهنده DNS کوچک در سازمان خود می باشند تا این اطمینان ایجاد گردد که کامپیوترها بدون بروز هیچگونه مشکلی ، یکدیگر را پیدا می نمایند . در صورتی که از ویندوز 2000 و اکتیو دایرکتوری استفاده می نمائید، قطعاً از DNS به منظور  ترجمه اسامی کامپیوترها به آدرس های IP ، استفاده می شود . شرکت مایکروسافت در ابتدا نسخه اختصاصی سرویس دهنده DNS  خود را با نام(  WINS (  Windows Internet Name Service  طراحی و پیاده سازی نمود . سرویس دهنده فوق مبتنی بر تکنولوژی های قدیمی بود و از پروتکل هائی استفاده می گردید که هرگز دارای کارائی مشابه DNS نبودند . بنابراین طبیعی بود که شرکت مایکروسافت از WINS فاصله گرفته و به سمت DNS حرکت کند . 

از پروتکل DNS  در مواردی که کامپیوتر شما اقدام به ارسال یک درخواست مبتنی بر DNS برای یک سرویس دهنده نام به منظور یافتن آدرسDomain می نماید ، استفاده می شود .مثلاً در صورتی که در مرورگر خود آدرس www.srco.ir  را تایپ نمائید ، یک درخواست مبتنی بر DNS از کامپیوتر شما و به مقصد یک سرویس دهنده DNS صادر می شود . ماموریت درخواست ارسالی ، یافتن آدرس IP وب سایت سخاروش است .

پروتکل DNS ومدل مرجع OSI :

 پروتکل DNS معمولاً از پروتکل UDP به منظور حمل داده استفاده می نماید . پروتکل UDP نسبت به TCP دارای overhead کمتری می باشد. هر اندازه overhead یک پروتکل کمتر باشد ، سرعت آن بیشتر خواهد بود . در مواردی که حمل  داده با استفاده از پروتکل UDP با مشکل و یا بهتر بگوئیم خطاء مواجه گردد ، پروتکل DNS از پروتکل TCP به منظور حمل داده استفاده نموده تا این اطمینان ایجاد گردد که داده بدرستی و بدون بروز خطاء به مقصد خواهد رسید .

فرآیند ارسال یک درخواست DNS و دریافت پاسخ آن ، متناسب با نوع سیستم عامل نصب شده بر روی یک کامپیوتر است .برخی از سیستم های عامل اجازه  استفاده از پروتکل TCP برای DNS را نداده و صرفاً می بایست از پروتکل UDP  به منظور حمل داده استفاده شود . بدیهی است در چنین مواردی همواره این احتمال وجود خواهد داشت که با خطاهائی مواجه شده و عملاً امکان ترجمه نام یک کامپیوتر و یا Domain به آدرس IP وجود نداشته باشد .

پروتکل DNS از پورت 53 به منظور ارائه خدمات خود استفاده می نماید . بنابراین  یک سرویس دهنده DNS به پورت 53 گوش داده و این انتظار را خواهد داشت که هر سرویس گیرنده ای که تمایل به استفاده از سرویس فوق را دارد از پورت مشابه استفاده نماید . در برخی موارد ممکن است مجبور شویم از پورت دیگری استفاده نمائیم . وضعیت فوق به سیستم عامل و سرویس دهنده DNS نصب شده بر روی یک کامپیوتر بستگی دارد.

ساختار سرویس دهندگان نام دامنه ها در اینترنت :

 امروزه بر روی اینترنت میلیون ها سایت با اسامی Domain ثبت شده  وجود دارد . شاید این سوال برای شما تاکنون مطرح شده باشد که این اسامی چگونه سازماندهی می شوند ؟ ساختار DNS بگونه ای طراحی شده است که یک سرویس دهنده DNS ضرورتی به آگاهی از تمامی اسامی Domainریجستر شده نداشته و صرفاً میزان آگاهی وی به یک سطح بالاتر و یک سطح پائین تر  از خود محدود می گردد . internic ، مسئولیت کنترل دامنه های ریشه را برعهده داشته که شامل تمامی Domain های سطح بالا می باشد. در بخش فوق تمامی سرویس دهندگان DNS  ریشه قرار داشته و آنان دارای آگاهی لازم در خصوص دامنه های موجود  در سطح پائین تر از خود می باشند  مثلا ( microsoft.com ) . سرویس دهندگان DNS ریشه مشخص خواهند کرد که کدام سرویس دهنده DNS در ارتباط با دامنه های microsoft.com و یا Cisco.com می باشد .

هر domain شامل یک Primary DNS  و یک  Secondary DNS می باشد . Primary DNS ، تمامی اطلاعات مرتبط با Domain خود را نگهداری می نماید.

 Secondary DNS به منزله یک backup بوده و در مواردی که Primary DNS با مشکل مواجه می شود از آن استفاده می گردد .به فرآیندی که بر اساس آن یک سرویس دهنده Primary DNS اطلاعات خود را در سرویس دهنده Secondary DNS تکثیر می نماید ، Zone Transfer  گفته می شود .

امروزه صدها وب سایت وجود دارد که می توان با استفاده از آنان یک Domain  را ثبت و یا اصطلاحاً ریجستر نمود . پس از ثبت یک Domain ، امکان مدیریت آن در اختیار شما گذاشته شده و می توان رکوردهای منبع (RR ) را در آن تعریف نمود.

 Support, www و Routers  ، نمونه هائی از رکوردهای منبع در ارتباط با دامنه Cisco.com می باشد. به منظور ایجاد Subdomain می توان از یک برنامه مدیریتی DNS استفاده نمود .  www و یا هر نوع رکورد منبع دیگری را می توان با استفاده از اینترفیس فوق تعریف نمود . پس از اعمال تغییرات دلخواه خود در ارتباط با Domain ، محتویات فایل های خاصی که بر روی سرویس دهنده ذخیره شده اند  نیز تغییر نموده و در ادامه تغییرات فوق به سایر سرویس دهندگان تائید شده اطلاع داده می شود . سرویس دهندگان فوق ، مسئولیت Domain شما را برعهده داشته و در ادامه تمامی اینترنت که به این سرویس دهندگان DNS متصل می شوند از تغییرات ایجاد شده آگاه و قادر به برقراری ارتباط با هر یک از بخش های Domain  می گردند.

مثلاً در صورتی که قصد ارتباط با  Support.Cisco.com را داشته باشید، کامپیوتر شما با سرویس دهنده DNS که مسئولیت مدیریت دامنه های Com. را دارد ، ارتباط برقرار نموده و سرویس دهنده فوق اطلاعات لازم در خصوص دامنه Cisco.com را در اختیار قرار خواهد داد . در نهایت سرویس دهنده DNS مربوط به Cisco.com ) ) سرویس دهنده فوق ، تمامی اطلاعات مرتبط با دامنه Cisco.com را در خود نگهداری می نماید، آدرس IP کامپیوتر مربوط به Support.Cisco.com را مشخص نموده تا امکان برقراری ارتباط با آن فراهم گردد .

روش های جستجو در سرویس دهنده های نام :

به سه روش برای پرس جوی نام در سرویس دهنده های نام وجود دارد :

* پرس جوی تکراری ( ITERATIVE QUERY   ) :

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

در غیر این صورت سرویس دهنده محلی ، راساً یک تقاضا برایDNS سطح بال ارسال می کند .

سرویس دهنده سطح بالا ، آدرس ماشینی را که می تواند برای ترجمه نام مورد نظر مفید باشد ، به سرویس دهنده محلی معرفی می کند"سرویس دهنده محلی مجدداً یک تقاضا به ماشین معرفی شده در مرحله قبل ارسال می کند . در این حالت هم سرویس دهنده نام می تواند در صورت یافتن آدرس IP معادل با آن حوزه ، آن را ترجمه کند و یا آنکه آدرس سرویس دهنده سطح پایین تری را به او برگرداند. این روند ادامه می یابد تا DNS نهایی نام مورد نظر را به آدرس IP ترجمه نماید.

پرس و جوی بازگشتی : ( RECURSIVE QUERY )

در این روش  هرگاه برنامه ای بخواهد آدرس IP  معادل یک نام مثل CS.YALE.EDUرا بدست آورد به گونه ای که قبلاً اشاره شد ،(( تابع سیستمی تحلیل گر نام )) را فراخوانی می کند . این تابع یک ماشین را به عنوان سرویس دهنده محلی از قبل می شناسد و بنابراین تقاضای تبدیل نام را از طریق UDP برای آن ارسال کرده و منتظر می ماند (( پاسخ نهایی DNS  طبیعتاً باید یک آدرس 32 بیتی معادل آدرس IP یک ماشین باشد) که به دو حالت ممکن است اتفاق بیفتد :

1. ممکن است در بانک اطلاعاتی مربوط به سرویس دهنده محلی ،آدرس IP معادل با آن نام از قبل وجود داشته باشد و بالطبع به سرعت مقدار معادل IP  آن بر می گردد.

2. ممکن است در بانک اطلاعاتی سرویس دهنده محلی ، معادل IP آن نام وجود نداشته باشد . مثلاً سرویس دهنده محلی در بانک اطلاعاتی خودش معادل آدرس IP نام  CS.MIT.EDU را نداشته باشد و طبیعتاً نمی توان آن را ترجمه کند.

در چنین حالتی سرویس دهنده محلی موظف است بدون آنکه به تقاضاً دهنده خبر بدهد ، خودش راسا به سرویس دهنده سطح بالاتر تقاضای ترجمه آدرس بدهد . در این حالت هم DNS  سطح بالاتر به همین نحوه ترجمه آدرس را پی می گیری می کند یعنی اگر معادل IP آن نام را داشته باشد آن را برمی گرداند و در غیر این صورت خودش از از سرویس دهنده سطح پایینتر تقاضای ترجمه آن را می نماید و این مراحل تکرار می شود . در روش پرس و جوی بازگشتی ماشین سرویس دهنده محلی این مراحل متوالی را نمی بیند و هیچ کاری جز ارسال تقاضای ترجمه یک آدرس بر عهده ندارد و پس از ارسال تقاضا برای سرویس دهنده سطح بال منتظر خواهد ماند .

پرس و جوی معکوس ( REVERSE QUERY  ):

در این حالت فرض کنیدحالتی بوجود بیاید که یک سرویس دهنده DNS ،آدرس IP یک ماشین را بداند ولی نام نمادین معادل با آن را نداند . به عنوان مثال DNS مایل است بداند که چه نامی در شبکه اینترنت معادر 195.13.42.7 می باشد. در چنین حالتی مسئله کمی حادتر به نظر می رسد ، چرا که برای ترجمه نام های نمادین ، چون این نام ها دارای حوزه و زیر حوزه هستند، تحلیل آدرس ها ساده است ولی ترجمه آدرس IP به معادل نام حوزه ، از چنین روابطی تبعیت نمی کند .به عبارت بهتر هیچ ارتباط مستقیم و متناظری بین آدرس های IP و اسامی انتخاب شده در اینترنت وجود ندارد. برای یافتن نام های متناظر با یک آدرس IP باید یک جستجوی کامل و در این حال وقتگیرانجام شود.

کسب اطلاعات از سرویس دهنده DNS در راستای حمله :

سیستم DNS  حاوی اطلاعات بسیار مفیدی است که متاسفانه گاهی بطور معمول نفوذگر برای شناسائی مقدماتی شبکه هدف بوسیله DNS است .

مقابله با نشت اطلاعات حساس شبکه از طریق DNS  :

باید در سیستم DNS  بایستی نکات زیر را رعایت کنید تا اطلاعات مهم و حساس از شبکه شما به بیرون نشت نکند:

وظیفه اصلی یک سرویس دهنده DNS آنست که اسامی ماشین ها را به آدرس IP بنگارد، سرویس پست الکترونیکی

 ( MAIL SERVER ) و سرویس دهنده DNS را تعیین نماید . لزومی ندارد تا با رکورد های HINFO نوع سخت افزار و نرم افزار ماشین را مشخص نمائید . هیچگونه اطلاعات اضافی احتیاج نیست. حتی الامکان از رکوردهای TXT برای ارائه اطلاعات اظافی در مورد ماشین ها استفاده نکنید. چه لزومی دارد که نوع CPU یا سیستم عامل خود را تبلیغ کنید . این اطلاعات بیش از آنکه نفعی داشته باشد ، برعلیه شبکه شما استفاده خواهد شد.

انتخاب نام برای هر ماشین باید به نحوی باشد که در مورد نوع سخت افزار یا نرم افزار آن ماشین اطلاعاتی ارائه نکند. مثلاً انتخاب نام  NTFTP یا SUNFTP یا HPUNIX به هیچ وجه صحیح نیست.

از انتقال کامل رکورد های مرتبط با یک نام حوزه ( ZONE TRANSFER ) جلوگیری کنید .چون معمولاً عمل

 ZONE TERANSFERفقط برای انتقال رکورد ها (به صورت کامل ) از DNS  اولیه به DNS  ثانویه کاربرد دارد.

در پیکربندی شبکه خود از DNS دو بخشی  ( SPLIT DNS ) استفاده نماید. در این پیکربندی شما باید دو ماشین را بعنوان سرویس دهنده DNS در نظر بگیرید .

دیواره آتش شبکه خود را به نحوی پیکربندی کنید که پورت شماره TCP-53 را کاملاً مسدود کند. چون دقت کنید که سرویس دهنده     DNS   از پورت ها TCP-53  برای انتقال کامل رکود ها( ZONE TRANSFER  ) استفاده می کند در حالی که بسته های پرس و جوی DNS از شماره پورت UDP-53 بهره می گیرد . لذا بسته شدن پورت شماره TCP-53 از انتقال کامل رکورد ها جلوگیری به عمل خواهد آورد .

قالب پیام در DNS :

در ساختار پیام هایی که بین DNS مبادله می شود در هر پیام دارای پنج بخش زیر است که آنها را به ترتیب توضیح می هیم :

1.  فیلدهی بخش سرآیند پیام  :

این بخش از ساختار فیلد  ID، فیلد QR ، فیلد OPCOD ، فیلد AA فیلد TC، فیلد RD ، فیلد RA ، بیت های UNUSED ، فیلد RCODE ، فیلد QDCOUNT ، فیلد ANCOUNT ، فیلد ARCOUNT تشکیل شده است

2. فیلد های بخش پرسش : این بخش از ساختار فیلد QNAME ، فیلد QTYPE ، فیلد QCLASS ،

3. فیلدهای بخش پاسخ، اطلاعات ناحیه و بخش اطلاعات اضافی : فیلد NAME ، فیلد TYPE ، فیلد CLASS ، فیلد RDLENGTH ، فیلد RDATA

DNS هیچ کمکی برای یافتن افراد ، منابع ، سرویس ها ، اشیاء و چیز هایی از این قبیل نمی کند.

DNS به راحتی می تواند آدرس های 128 بیتی IPV6 ماشین ها را نیز در پاسخ به تقاضای ترجمه نام نمادین برای متقاضی بفرستد .

ثبت ( DOMAIN NAME ) یک تجارت پر درآمد است

ساختار بانک اطلاعاتی سرویس دهنده های نام :

یک سرویس دهنده نام در دو قسمت سازماندهی می شود:

1. پروسه سرویس دهنده: این پروسه یک برنامه اجرای است که تقاضاهای ترجمه نام از ماشین های دیگر را گرفته و پردازش می کند و پاسخ مناسب را برای تقاضا دهنده بر می گرداند. قالب هرتقاضا در شبکه اینترنت، استانداردو مشخص است تا هر ماشینی فارغ از ساختار و سیستم عامل ، بتواند تقاضا بدهد و پاسخ دریافت کند.

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

طریقه درست کردن DNS 

1. مرورگر خود را باز کرده و در قسمت Address Bar آن، آدرس سایت مرکز (http://www.nic.ir) NIC را تایپ نموده و کلید Enter را فشار دهید.

2. صفحه زیر به عنوان صفحه پیش فرض این وب سایت نمایش داده می شود. بر روی لینک Login کلیک نمایید.

3. در این صفحه نام کاربری (handleو یا آدرس ایمیلی که با آن handle خود را ایجاد کرده اید) و کلمه عبور خود را وارد نموده و کلید Login را فشار دهید. دقت نمایید چنانچه گزینه Use images for domains names فعال باشد نام دامنه های شما به شکل تصویر (bitmap) نمایش داده می شود و چنانچه غیر فعال باشد نام دامنه های شما به شکل متن معمولی (و قابل جستجو در صفحه) نمایش داده می شود.

4. در صورت ورود صحیح اطلاعات، پیام ورود موفقیت آمیز در بالای صفحه نمایش داده می شود.

5. حال برای مثال فرض کنید که می خواهید مقادیر DNS دامنه bike.ir را تغییر دهید. در صورتی که تعداد دامنه های ثبت شده توسط شما زیاد باشد می توانید

 با استفاده از امکان جستجوی موجود در صفحه، دامنه مورد نظر خود (در اینجا bike.ir را یافته و در صورتی که تعداد دامنه های مورد نظر کم باشد می توانید با کلیک بر روی نام آن مستقیماً به آن دسترسی داشته باشید). در اینجا با توجه به تعداد زیاد دامنه ها از امکان جستجوی موجود در صفحه استفاده می کنیم. همانطور که مشاهده می نمایید دو انتخاب برای تنظیم نحوه جستجو در این صفحه وجود دارد. با انتخاب گزینه starts with تمام نام هایی که با عبارت مورد نظر شما شروع می شوند نمایش داده می شوند و با انتخاب گزینه contains تمام نام هایی که حاوی عبارت مورد نظر شما هستند نمایش داده می شوند. بنابراین بنا بر انتخاب شما، ممکن است نتایج متفاوتی نمایش داده شود. حال کلمه bike را در Edit Box موجود در صفحه تایپ کرده و کلید search را فشار دهید.

6. نتیجه جستجو نمایش داده می شود. همانطور که مشاهده می فرمایید تمام اطلاعات به شکل یک جدول نمایش داده می شود. پس از یافتن نام دامنه مورد نظر در لیست دامنه های نمایش داده شده بر روی علامت در انتهای سطر (ستون DNSکلیک کنید).

7.همانطور که مشاهده می نمایید جدولی شامل دو ستون مربوط به اطلاعات اطلاعات DNS این دامنه نمایش داده می شود.

8. در ستون سمت چپ می توانید نام DNS  های مورد نظر خود را وارد نمایید (اجباری) و در سمت راست نیز می توانید آدرس IP متناظر DNS های وارد شده را وارد نمایید (اختیاری).

9. در انتها با فشردن کلید Update، درخواست اعمال تغییرات را ارسال فرمایید. در صورت ارسال موفقیت آمیز اطلاعات جدید، پیامی مبنی بر اعمال تغییرات در بالای صفحه نمایش داده خواهد شد.

10. دقت نمایید که تغییرات DNS بین 15 دقیقه تا 48 ساعت طول می کشد که عملیاتی گردد. بنابراین باید صبر نمایید تا تغییرات به مرور در سیستم منعکس گردد                                                     پایان


نویسنده : م . رحمتی - ساعت ۱۱:٥٩ ‎ب.ظ روز دوشنبه ۱۳۸٩/۱/۳٠
نظرات ()    |   لینک ثابت    |   تگ کامپیوتر


Powered By Persianblog.ir - Designed By Payam salami pargoo