DNS چیست ؟
غلب سرویس های اینترنتی با تکیه بر پروتکل DNS کار میکنند. و بنابراین اگر سرویس دهی DNS از کار بیافتد web sites ها نیز امکان آدرس دهی برای کاربران خود را از دست خواهند داد و به طور قطع برای ایمیل هایتان نیز هیچ پیام delivery دریافت نخواهید کرد. وقتی سرویس دهنده DNS نتواند نام میزبان را به یک آدرس IP ترجمه نماید، با سرویس دهنده DNS بالاتر از خود (در سلسله مراتب DNS ها) تماس میگیرد. و به این ترتیب در ادامه کار پرسش DNS یا (DNS query) ممکن است برای انجام کارش تا سرویس دهنده DNS root یا ریشه در سلسله مراتب DNS ها پیش رود. سرویس دهنده DNS root از کلیه انتسابات نام میزبان و آدرس IP تخصیص یافته توسط سازمان IANA آگاه است و در نهایت در صورت وجود به جواب خواهید رسید.
DNS ها دارای دو جنبه مستقل میباشند.
۱٫ مشخص نمودن syntax اسامی و قوانینی برای تفییض اختیار تحت اسامی ، که اساس syntax ها نیز بر مبنای، سایت ، گروه و یا به صورت Local (محلی ) میباشند.
۲٫ پیاده سازی یک سیستم محاسبات توضیع شده که با استفاده از یک نقشه کارآمد اسامی را به آدرس های متناظز ترجمه خواهد نمود.
در طرح نام گزاری اسامی DNS ها، از یک مکانیزم سلسله مراتبی و غیر متمرکزاستفاده میشود و به این صورت است که با استفاده از تفییض اختیار برای بخشی از فضاهای نامی موجود و توضیع مسئولیت برای نقشه برداری اسامی و آدرسها ، اسامی اختصاص یافته به دیوایس های شبکه در سطح جهانی مورد شناسایی قرار گرفته و در نتیجه اجراء آن در یک گستره جغرافیایی بزرگ برای مجموعه بزرگی از اسامی و آدرسها ممکن می شود.در تصویر زیر فضای نامی سلسله مراتبی dns ها را مشاهده میکنید.
بر این اساس، domain name های استانداردی در پروتکل DNS به وجود می آید که، چکیده ای از فضاهای نامی سلسله مراتبی را با استفاده از برچسب هایی ارزش گزاری میکنند. به عنوان مثال هر گروه میتواند با استفاده از این برچسب ها domain system های خود را برای همه بخشها به صورت سلسله مراتبی ایجاد و تعریف نمایید . هرچند که بیشتر کاربران پروتکل DNS به دنبال استفاده از برچسب های سلسله مراتبی رسمی توسط سیستم های دامنه اینترنتی میروند. برخی از اسامی دامنه های اینترنتی که از آنها به عنوان top level domains یاد میشوند عبارتند از COM, EDU, GOV, NET, ORG, BIZ و …. به علاوه کد بسیاری از کشورها را نیز میتواند شامل شود.
طرح های توضیع شده DNS ها اجازه کارآمد بودن و قابل اطمینان بودن نقشه های اسامی اختصاص یافته به IP addresses ها را میدهد. اکثر اسامی میتوانند به صورت locally یا محلی نقشه برداری شوند. و یک مجموعه از سرویس های عملکردی در سایتهای چند گانه را به وجود آورد که با همکاری آنها مشکلات نقشه برداری در شبکه های بزرگ را حل کند. در نتیجه به دلیل طبیعت توضیع شده ، از شکست کاری هر ماشین موجود در شبکه به صورت منفرد جلوگیری شده و سرویس DNS به درستی کار خواهد کرد.
ونکته ای دیگر که باید در مورد DNS بدانیم این است که این پروتکل به صورت پیش فرض از پورت UDP 53 برای انتقال اطلاعات خود استفاده میکند(توضیحات لازم در این مورد، در RFC 1034 بیان شده است) اما اگر حجم یک درخاست زیاد باشد به گونه ای که در یک دیتا گرام UDP جانشود از TCP با پورت ۵۳ استفاده خواهد شد و این دقیقا ازهمان نکته های مهم در طراحی های امنیتی سرویس DNS میباشد که اکثر متخصصین امنیت اطلاعات بدون در نظر گرفتن این مورد به شما پیشنهاد مسدود کردن TCP 53 رامیدهند تا مانع از انتقال اطلاعات مناطق حساس و به نوعی مانع دسترسی سیستمهای غیر مجاز به داده های مهم DNS شوند غافل از اینکه با مسدود شدن TCP 53 روند کاری سیستم DNS را نیز متوقف مینمایند و بعد هم مشکل را در جاهای دیگر جستوجو میکنند برای کسب اطلاعات بیشتر در ضمینه طراحی های امنیتی سرویس DNS میتوانید چند فصلی از کتاب DNS and BIND را مطالعه نمایید.
در تصویر زیر ساختار پروتکل DNS را مشاهده میکنید.
• ID یک فیلد ۱۶ بیتی است و شناسه ای که مرتبط با پرسشها و پاسخها میباشد.
• Q یک فیلد یک بیتی که برای شناسایی پیام های پرسش و پاسخ استفاده میشود
• Query یک فیلد ۴ بیتی که انواع پیامها را شرح میدهد: ۰ برای پرسشهای استاندارد (نام به آدرس) ، ۱ برای پرس وجوی معکوس ، ۲ وضعیت درخواست server ها
• A یا Authoritative Answer فیلد یک بیتی ، برای پاسخهای معتبر . شناسایی پاسخ های ساخته شده توسط name server های معتتبر.
• T یا Truncation یک فید یک بیتی است به معنی لغوی برشی، مجموعه ای است که نشان دهنده پیامهای کوتاه شده است.
• R یک فیلد یک بیتی، مجموعه ای که به حل و فصل درخواست های بازگشتی سرویسها توسط name server میپردازد.
• V فیلد یک بیتی ، سیگنال در دسترس برای سرویس های بازگشتی مورد استفاده برای name server ها
• B فیلد ۳ بیتی ، رزرو شده برای آینده که اغلب مقدار ۰ را به خود میگیرد.
• Rcode کد پاسخ یک فیلد چهار بیتی میباشد که توسط name server برای شناسایی وضعیت query (پرسش ها) استفاده میشود.
• Question count تعداد سوآل : یک فیلد ۱۶ بیتی که عددی را برای بخش سوآلات نوشته شده تعیین میکند.
• Answer count یک فیلد ۱۶ بیتی که عددی را برای resource records در بخش پاسخها تعریف میکند.
• Authority count یک فیلد ۱۶ بیتی که عددی را برای resource records های name server ها در بخش شناسایی تعریف میکند.
• Additional count یک فیلد ۱۶ بیتی که عددی را برای resource records ها در بخش additional records ها تعریف میکند.
پروتکل هایی که در ارتباط با DNS کار میکنند شامل IP, TCP, IGMP, ICMP, SNMP, TFTP , NFS میباشند.