همه آن چیزی که باید در مورد سرویس DNS بدانید!
همزمان با گسترش اینترنت و افزایش تعداد کامپیوترهای میزبان، یافتن اسامی Netbios غیر تکراری و با معنی بسیار مشکل شد و مدیریت فایل پایگاه داده آن با مشکل مواجه شد. وجود این مشکلات باعث شد تا شرکت مایکروسافت، سرویس DNS را در سال 1984 معرفی نماید.
تنظیم درست سرویس DNS، یکی از اولین اقداماتی است که در طراحی سایت لازم بوده و لزوما هیچ سایتی بدون انجام درست و اصولی این تنظیمات، قابل راه اندازی نیست. پیش از آن ها بتوانیم از سایت خود استفاده نموده و فعالیت های مربوط به سئو و بهینه سازی و همچنین تبلیغاتی را شروع نماییم، لازم است بتوانیم سایت خود را روی آدرس دامنه دلخواه خود Set کنیم. بدین منظور بهتر است آشنایی جزئی با سرویس DNS داشته باشیم.
سرویس DNS چیست؟
سرویس DNS دارای یک ساختار درختی است و یک «بانک اطلاعاتی توزیع شده» است که روی ماشین های متعددی مستقر می شود. اکثر شرکت ها و موسسات دارای یک سرویس دهنده DNS کوچک در سازمان خود می باشند تا این اطمینان ایجاد شود که کامپیوترها بدون بروز هیچ مشکلی، یکدیگر را پیدا می نمایند. این ساختار درختی متشکل از اسامی به نام اسامی دامنه (Domain Names) می باشد. هر دامنه خود به دامنه های کوچکتری تقسیم می شود. تمام این دامنه ها تشکیل درخت می دهند و برگ های درخت دامنه هایی را نشان می دهند که فاقد دامنه های هستند.
دامنه های سطح بالا دو نوع می باشند: عمومی و کشوری. دامنه های عمومی مانند Com (تجاری)، Edu (آموزشی)، Gov (دولت فدرال آمریکا)، Mil (نظامی)، Net (سرویس دهنده های شبکه) و Org (سازمان ها).
دامنه های کشوری جدا تعریف می شوند.
در سرویس DNS، کامپیوتر کاربر به منظور یافتن یک آدرس، اقدام به ارسال یک درخواست مبتنی بر DNS برای یک سرویس دهنده می نماید. مثلا اگر در مرورگر، آدرس https://clickaval.com تایپ شود، یک درخواست مبتنی بر سرویس DNS از سیستم کاربر به مقصد یک سرویس دهنده DNS که آدرس آن از قبل در سیستم ثبت شده است، صادر می شود.
فرآیند تحلیل نام در سرویس DNS
برای ورود به یک سایت در اینترنت، باید در خواست در یک بسته ارسال شود. در سرآیند بسته ها تنها فیلد آدرس IP مقصد وجود دارد و حفظ نمودن این آدرس ها بسیار مشکل است. از این رو اسامی مانند اسامی URL به کار گرفته شد و با روش های تحلیل نام (Name Resolution) تبدیل این اسامی آدرس های IP انجام شد.
وقتی کاربری نام سایت مورد نظر خود را در قسمت آدرس مرورگر وارد ی برای تبدیل این نام به IP ابتدا به تحلیل گر حافظه پنهان محلی (Resolver Cache) خود که همان تر Hosts است مراجعه می کند. این فایل در ویندوز در مسیر زیر وجود دارد:
C:\Windows\System32\driversletc
نمونه ای از محتوای این فایل به صورت زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
.Copyright (c) 1993-1999 Microsoft Corp # # .This is a sample HOSTS file used by Microsoft TCP/IP for Windows # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # .be placed in the first column followed by the corresponding host name # The IP address and the host name should be separated by at least one # .space # Additionally, comments (such as these) may be inserted on individual # .lines or following the machine name denoted by a '#' symbol # # :For example # # 102.54.94.97 # 38.25.63.10 # rhino.acme.com x.acme.com 127.0.0.1 localhost |
روش های پرس و جوی آدرس
اگر کامپیوتر نتوانست در مراجعه به این فایل آدرس مورد نظر را بیابد، یک درخواست آماده و آن را به سرویس دهنده DNS شبکه خود ارسال می کند. این سرویس دهنده بسته را دریافت و ابتدا به قسمت نواحی (zone) تعریف شده در قرارداد مراجعه می کند. اگر در این نواحی جوابی پیدا نشد، شروع به جستجو در DNS Server Cache می کند.
بعد از اتمام کار در صورتی که همچنان جوابی پیدا نشده باشد، درخواست به ریشه ها (Root Hints) ارسال می شود که در حقیقت همان سرویس دهنده های DNS جهانی اینترنت هستند. اگر سرویس دهنده DNS نتوانست پاسخ کاربر را بدهد، طی مراحلی از سرویس دهنده های اینترنتی سطح بالاتر آدرس موردنظر را پرس و جو می کند.
بطور کلی سه روش برای پرس و جو وجود دارد:
- بازگشتی: این روش معمولا بین کامپیوتر کاربر و سرویس دهنده DNS و یا بین چندین سرویس دهنده DNS با تنظیم گزینه هدایت کننده (forwarder) انجام می شود.
- تکراری: این روش معمولا بین سرویس دهنده های DNS انجام می شود. بعد از ارسال درخواست به ریشه، اگر ریشه آدرس IP میزبان را نداشته باشد، آدرس سرویس دهنده ای را برمی گرداند که نواحی مربوط به پسوند Com را دارد. بعد از آن سرویس دهنده نام 1 با سرویس دهنده Com ارتباط برقرار کرده و درخواست IP موردنظر را می دهد. این سرویس دهنده نیز IP کامپیوتر موردنظر را ندارد، اما IP یک سرویس دهنده DNS در دامنه درخواستی را بر می گرداند. سپس سرویس دهنده به دامنه مربوطه مراجعه نموده و آدرس IP را از آن دریافت می کند. سپس آن را برای مشتری در خواست کننده باز می گرداند.
- معکوس: این روش یک آدرس IP را به نام یک میزبان تبدیل می کند. اگر یک سرویس دهنده DNS آدرس IP یک ماشین را بداند، می تواند به این روش نام آن را پیدا کند.
نواحی موجود در سرویس DNS
بعد از راه اندازی سرویس DNS در سرویس دهنده، باید برای پاسخگویی به هر دامنه یک ناحیه (بخشی از فضای نام دامنه با مدیریت واحد را ناحیه می گویند) جداگانه ایجاد و رکوردهای موجود در هر دامنه ی آن قرار گیرد. از جمله ناحیه هایی که می توان در این سرویس ایجاد نمود شامل:
- ناحیه اولیه Primary Zone: این نوع ناحیه همان ناحيه اصلی است و در سرویس دهنده DNS اصلی ایجاد و رکوردها در آن به روز می شوند. رکوردهای این ناحیه قابل ویرایش می باشند.
- ناحیه ثانویه Secondary Zone: این ناحیه معمولا در سرویس دهنده های ثانویه ایجاد می شود. همانند ناحیه اولیه است و تمام رکوردهای موجود در آن را نیز داراست، اما با این تفاوت که این رکوردها قابل ویرایش نمی باشند و در حقیقت یک کپی فقط خواندنی از ناحیه مربوطه است.
- ناحیه ریشه Stub Zone: این ناحیه برخلاف دو ناحیه قبلی اطلاعاتی از رکوردهای موجود در ناحیه را نگهداری نمی کند بلکه تنها آدرس سرویس دهنده های نام موجود در شبکه که اطلاعات آن ناحیه را دارند نگه می دارد و برای تحلیل نام از روش پرس و جوی باز گشتی با سرویس دهنده های نام موجود استفاده می کند.
انواع رکوردهای منبع DNS
هر ناحیه دارای تعدادی رکورد منبع (resource record) است. برای یک کامپیوتر رایج ترین رکورد منبع، آدرس IP آن می باشد. اما انواع دیگری از رکوردهای منبع نیز وجود دارند. وقتی نام یک ناحیه به DNS داده شد تمام رکوردهای منابع وابسته به آن ناحیه برگردانده می شود. در واقع اصلی ترین وظیفه یک DNS تبدیل نام ناحیه به رکوردهای منابع است.
هر رکورد منبع از ۵ قسمت تشکیل می شود. این رکوردها اغلب بصورت متنی ( یک رکورد در هر خط نگهداری می شوند و قالب آنها بصورت زیر است:
Domain_name Time_to_live Class Type Value
که در آن فیلد Domain name نام ناحیه مربوط به این رکورد است. معمولا هر ناحیه تعداد زیادی رکورد دارد و هر پایگاه داده اطلاعات چندین ناحیه را نگهداری می کند. در نتیجه این فیلد کلید اصلی جستجو در پایگاه داده DNS است. فیلد Time_ to_ live مدت زمان بقاء رکورد را مشخص می کند. برای مثال 3600 ( تعداد ثانیه ها در یک ساعت). مقدار فیلد Class برای اطلاعات اینترنتی همیشه IN است؛ برای اطلاعات غیر اینترنتی از کدهای دیگر نیز استفاده می شود. فید Type نوع رکورد را مشخص می نماید.
- (Host (A: این نوع رکورد به صورت متعارف برای اشیاء شبکه اعم از کامپیوتر، چاپگر و غیره استفاده می شود. در این قسمت یک نام کامل و یک آدرس آی پی 32 بیتی درج و ذخیره می شود.
- (Alias (CNAME: این رکورد برای ایجاد یک نام مستعار برای یک کامپیوتر مشتری یا سرویس دهنده بکار می رود. مثلا فرض کنید در یک شبکه کامپیوتری با نام Serverl و نام کامل Server1 . Network . Local یک سرویس دهنده وب شبکه است که دسترسی به این سایت از طریق اینترنت نیز امکان پذیر می باشد.
حال مدیر شبکه برای تامین امنیت سایت و ناشناخته ماندن نام اصلی کامپیوتر سرویس دهنده وب برای جلوگیری از احتمال هک شدن یک رکورد Alias با نام مستعار www ایجاد می کند و از این به بعد کاربران اینترنتی می توانند با آدرس Www.Network.Local به این سایت دسترسی داشته باشند.
- Start Of Authority) SOA): به سرویس دهنده DNS که یک دامنه خاص را مدیریت می کند SOA آن دامنه می گویند. با گذشت زمان نتایج جستجوی هاست ها در SOA در میان سرویس دهنده های DNS دیگر منتشر می گردد و در نهایت در سراسر اینترنت شناخته می شود.
- ointer) PTR): این نوع رکورد نیز مانند CNAME به یک نام دیگر اشاره می کند. اما بر خلاف P CNAME رکورد PTR یک نوع داده معمولی DNS است که بر اساس محتویات این رکورد تفسیر می شود. در عمل، همیشه از این نوع رکورد برای جستجوی معکوس (reverse lookup) یعنی «تبدیل آدرس IP به نام ماشین» استفاده می گردد.
- HINFO: این نوع رکورد اطلاعات مربوط به نوع و سیستم عامل ماشین را بر می گرداند.
- TXT: رکورد TXT هم برای برگرداندن اطلاعات متنی اضافی به کاربران استفاده می شود.
- (Mail Exchanger (MX: از این نوع رکورد برای آدرس دهی سرویس دهنده های پست الکترونیک موجود در شبکه (مانند Exchange) استفاده می شود. این رکورد برای برنامه هایی استفاده می شود که نیاز به ارتباط با این سرویس دهنده ها و ارسال یا دریافت نامه از آنها را دارند. برای مثال اگر کسی بخواهد به user1 [at] microsoft.com ایمیل بفرستد باید آدرس سرویس دهنده پست الکترونیکی microsoft.com را پیدا کند. این اطلاعات را رکورد MX فراهم می کند.
در زیر قسمتی از پایگاه داده DNS در ناحيه cs . vu . nl آورده شده است.
1 2 3 4 5 6 7 8 9 10 11 |
Authoritative data for cs.vu.nl ; cs.vu.nl. 86400 IN SOA star boss (9527,7200,7200,241920,86400) cs.vu.nl. 86400 IN MX 1 zephyr cs.vu.nl. 86400 IN NS star top 86400 IN A 130.37.20.11 www 86400 IN CNAME star.cs.vu.nl |