در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

Forwarder و Conditional Forwarding در DNS چیست و روش پیاده سازی

در این مقاله قصد داریم که پیرامون مبحث Forward یا هدایت درخواستها به وسیله DNS به صورت جامع صحبت کنیم. همانطور که می دانید هر DNS سرور بهنگام دریافت یک Query یک سری مراحل را برای یافتن آدرس مورد نظر طی می کند. دوستان من در این سایت به بررسی جز به جز این مراحل پرداخته اند . امید دارم که قبل از خواندن این مقاله حتما مقالات در خصوص مبحث DNS مطالعه نمایید.

ما نیز در اینجا روندی که DNS برای پاسخ به این Query ها طی می کند را به صورت مختصر توضیح خواهیم داد .با یک مثال به توضیح روند کاری DNS می پردازیم : اگر کاربری قصد بازدید از سایت www.tosinso.com را داشته باشد ابتدا بررسی می کند که آیا قبلا به این سایت مراجعه کرده و IP آدرس در Cache سیستم وجودارد یا خیر ؟ اگر IP آدرس مورد نظر یافت نشد Host file سیستم بررسی می شود و در صورت نیافتن آدرس درخواست برای DNS سرور ارسال می شود بنابراین هر DNS Server پس از دریافت یک Query برای یافتن یک آدرس ابتدا در اطلاعات سیستم خود یا به اصطلاح اطلاعات محلی خود به ترتیبی که بیان می شود در جهت یافتن آدرس IP مورد نظر جستجو می کند :

  1. Zone
  2. Cache
  3. اگر تا به این مرحله جواب Query دریافتی پیدا نشد درخواست را برای یک سرور دیگر Forward یا هدایت می کند (که در این مقاله ما به تشریح کامل چگونگی عملیات Forward خواهیم پرداخت )
  4. اگر DNS به کمک Forwarder نیز موفق به یافتن جواب نشد درخواست را برای Root Hint ها (یا همان سرور های ریشه )ارسال خواهد کرد.

تعریف FORWARDER یا هدایت کننده

Forwarder در واقع DNS سروری در شبکه است که به گونه ای تنظیم شده تا Query هایی که در DNS سرور داخل شبکه،جوابی برای آنها یافت نمیشود را برای آدرس های IP یا سرورهای DNS سرور خارج از شبکه ارسال کند. در تصویر زیر چگونگی انجام فرآیند Forward کردن یک Query به DNS سرور های خارجی نمایش داده شده است:

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور


وقتی DNS Server یک Query را برای Forwarder ارسال می کند ، در واقع یک فرآیند رفت و برگشت پرسش و پاسخ صورت می گیرد که این فرآیند با ارسال مکرر Query ها در حالت استاندارد ، توسط DNS Server به DNS سرور های دیگر برای رسیدن به هدف اصلی که همان پیدا کردن آدرس IP مقصد است انجام می شود ، در اصطلاح به این فرآیند رفت و برگشت Recursion نیز گفته می شود.در ساختار DNS به فرآیند ارجاع یک نام مثل www.Itpro.ir به IP مربو طه اش اصطلاحا Name Resolution گویند.) هدف DNS در نهایت یافتن IP متناظر با بخش هاست یک آدرس است.) در اینجا DNS سرور مانند یک دفترچه تلفن برای اینترنت عمل می کند که در آن Host Name ها برابر با IP متناظرشان قرار گرفته می شود ویا بالعکس.

میتوان چنین برداشت کرد که با طراحی و در نظر گرفتن یک DNS سرور در یک سازمان یا یک شبکه داخلی بعنوان Forwarder، آن DNS سرور را برای رسیدگی به ترافیک های خارج از سازمان در نظر گرفته ایم .که موجب کاهش ترافیک های اینترنتی در مقابل DNS سرور میشود. یک Forwarder مجموعه ای از اطلاعات DNS های خارجی را در قالب یک cache بزرگ گردآوری میکند بدین معنی که forwarder پاسخ هر Query ای که دریافت کرده را Cache میکند.زیرا باید پاسخ گوی تمامی Queryهای در یافتی از سراسر یک شبکه باشد.بنابراین Forwarder قادر به پاسخ گویی به مجموعه ای از درخواستها به کمک این اطلاعات موجود در کش خود در بازه ی زمانی محدودی خواهد بود. همانگونه که پیشتر ذکر شد این شرایط، ترافیک اینترنت بر روی شبکه و زمان پاسخ به کلاینتها را توسط DNS به حداقل میرساند.

از forwarder برای مدیریت ترافیک ایجاد شده برای DNS سرور ،میان اینترنت و شبکه داخلی یک سازمان نیز استفاده میکنیم .ساختار فایروال در شبکه تنها اجازه ارتباط یک DNS سرور با محیط بیرون و اینترنت را صادر میکند ،بنابراین برای سایر DNS سرور های موجود در شبکه تعیین میکنیم که اگر برای Query دریافتی به کمک اطلاعات لوکال خود پاسخی نیافتند ، درخواست خود را برای DNS سروری که نقش Forwarder را در سازمان ایفا میکند ،ارسال کنند.


مراحل انجام عملیات Forwarding در DNS سرور

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

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور


برای روند جست و جوی DNS در حالت عادی یک بازه زمانی برای ارسال درخواست کلاینت و دریافت پاسخ از سرور در نظر گرفته شده است که به آن Round Trip Time یا RTT می گویند باید در نظر داشته باشیم که لیست IP های وجود در Forwarder ، بر اساس RTT مرتب نشده اند و باید بصورت دستی اولویت IP ها را بر حسب RTT تغییر دهیم .


پیاده سازی یک DNS server بعنوان Forwarder

از حداقل ملزومات ایجاد یک forwarder این است که کاربر بایستی عضو Administrator group باشد. در اولین قدم برای ایجاد و راه اندازی یک DNS server بعنوان forwarder عبارت dnsmgmt.msc را در قسمت Run تایپ می کنیم تا کنسول DNS manager برای ما نمایش داده شود ویا برای مشاهده این کنسول می توانیم از مسیر زیر استفاده کنیم:

Start => Administrative tools => DNS

در این کنسول روی نام سرور کلیک می کنیم ومطابق تصویر روی forwarder راست کلیک کرده و properties می گیریم. در تب forwarder می توانیم تنظیمات لازم را انجام دهیم.

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور


پس از کلیک روی گزینه Edit باید IP مربوط به domain Name مورد نظر را وارد کنیم .

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور


میتوان با مارک دار کردن گزینه مشخص شده در تصویر برای DNS سرور تعیین کرد که اگر موفق به دریافت جواب از forwarder نشد درخواست را به Root hint ها ارسال کند.

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور



هدایت Query ها بصورت شرطی یا Conditional Forwarding

Conditional در لغت ،به معنی شرط هست و مثلا اگر درخواستی برای رجوع به آدرس webmail.tosinso.com توسط کلاینت ارسال شد ،DNS این درخواست را مستقیما به IP مربوطه اش ارجاع می دهد.در واقع می توان با استفاده از قابلیتی بنام Conditional forwarder درخواست را برای یک Domain Name خاص ارسال کرد.

مراحل انجام عملیات Forwarding Conditional در DNS سرور

همانگونه که می دانیم وقتی که DNS Client یک Query برای DNS سرور ارسال می کند DNS ابتدا به جستجو در حافظه ی Cache خود و Host File ها و zone ها می پردازد و در صورت عدم یافتن جواب مناسب ،در صورتیکه DNS Server بعنوان یک Conditional forwarder تعیین شده باشد ، domain Name مورد نظرِ Query را روی IP آدرسی که در ساختار Conditional forwarder برای آن در نظر گرفته شده است ،می فرستد.

به بیان ساده ،ما در یک Conditional forwarder یک FQDN خاص و DNS سروری که IP مربوطه آن نام را در بر دارد مشخص و تعیین می کنیم، تا درخواست هر کاربری که قصد مراجعه به آن FQDN را داشت، بطور مستقیم به آن آدرس ، ارجاع داده شود.(این همان تعیین شرط است) و نسبت به forwarder، شرایط بهتری را برای یافتن پاسخ، در حالت forward کردن کلیه درخواستها فراهم می کند و نیز از اولویت بالاتری نسبت به forwarder برخوردار است .

با مشخص کردن Domain Name برای DNS سروری که باید Query را ارسال کند و تعیین یک یا چند آی پی آدرس برای Domain Name هایی که در نظر گرفته ایم می توان تنظیمات مربوط به Conditional forwarder را انجام داد. در شکل زیر نحوه کار Conditional forwarder به روشنی نمایش داده شده است.


تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور

شیوه پیاده سازی یک DNS server بعنوان Conditional forwarder

برای ایجاد یک Conditional forwarder نیز همانند ایجاد forwarder ، وارد کنسول DNS manager میشویم روی Conditional forwarder مطابق تصویر راست کلیک کرده و عبارت New Conditional forwarder را انتخاب می کنیم.در صفحه باز شده آدرس مورد نظر و IP مربوط به DNS سروری که باید برای یافتن جواب به آن رجوع شود را وارد می کنیم.

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور


تذکر: باید در نظر داشت که نمیتوان Domain Name ای که zone آن در DNS server موجود است را برای Conditional forwarder. تعیین کرد.

از Conditional forwarder میتوان برای برقرار کردن ارتباط میان ساختار Name space های خصوصی با یکدیگر که جز DNS Name spaceهای موجود در اینترنت محسوب نمیشوند نیز استفاده کرد.(Name space به ساختار سلسله مراتبی در نظر گرفته شده برای یک اسم FQDN که بترتیب در بر دارنده بخشهایی چون Roottopsecond level domain و host میباشد اطلاق می گردد). اینگونه Name space ها می توانند در بردارنده ساختار سلسله مراتبی از ادغام چند سازمان و یا شرکت باشند.

برای بهتر روشن شدن قضیه دو Name space دو شرکت مجزا را در نظر می گیریم،و برای DNS سرورهایِ ساختار Name space اول تعیین می کنیم که Query های خود را برای DNS سرورهای معتبر درساختارName space دوم ارسال کنند، در اینجا Conditional forwarder کمک خواهد کرد تا فرآیند Name Resolution میان این دو Name space بدون کمک گرفتن از عملیات recursion در DNS Name space موجود درمحیط اینترنت انجام گیرد.این شرایط Name Resolution را افزایش داده و مانع انجام recursion توسط DNS سرور با root های داخلی برای جست و جوی Name space های مختلف موجود در شبکه میشود.


این نکته را نیز باید در نظر داشته باشیم که DNS سرور نمی تواند یک Query را برای Domain Name موجود در zone های خود ارسال کند. ،بعنوان مثال DNS سرور برای zone موجود با نام Itpro.ir قادر به ارسال Query خود برای نام دومین Itpro.ir نخواهد بود و DNS سرور Itpro.ir میتواند Query ها را برای DNS Name هایی که مثلا با Example.Itpro.ir خاتمه می یابند ارسال کند.البته اگر Example.Itpro.ir به DNS سرور های دیگر delegate شده باشد.

اهمیت طول domain Name در Conditional forwarder

فرض را بر این می گذاریم که دو Conditional forwarder برای دو سرور متفاوت با نامهای Itpro.ir و example.Itpro.ir داریم. حال یک Query با محتوای network.example.Itpro.ir برای forwarder ارسال می شود. و تنها برای دو دومینConditional forwarder تعیین شده است. که هر دوی آنها به Itpro.ir ختم شده اند،بنابراین درخواست را برای IP دومینی که نام آن به درخواست موجود در Query نزدیکتر است یعنی example.Itpro.irارسال می کند تا سریعتر به جواب برسد.(با این فرض که در این دومین DNS ای موجود است که می تواند درخواست را به سرور اصلی و مورد نظر برای Query ارجاع دهد)

تشریح مفاهیم Forwarder  و Conditional Forwarding  در DNS و شیوه پیاده سازی آنها در DNS سرور


نویسنده: مریم حیات رمضانی
منبع : جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع دارای اشکال اخلاقی می باشد
#تفاوت_root_hint_و_forwarder #مفهوم_Conditional_Forwarder_در_DNS #آموزش_DNS #مفهوم_Forwarder_در_DNS #forwarder_و_root_hint #تفاوت_forwarder_و_conditional_forwarding #پیاده_سازی_DNS_server_بعنوان_forwarder
9 نظر
علیرضا رنجی

واقعا ممنون

میلاد

تا اون جا که میدونم در DNS SERVER برعکس CLIENT ها اول سراغ ZONE خود میرود بعد CACHE

محمد نصیری

خیر ساختار کاری DNS Server به شکل زیر هست :

  1. ابتدا Cache سیستم بررسی می شه .
  2. بعد فایل Hosts سیستم بررسی میشه.
  3. بعد Zone ها بررسی میشن
  4. بعد Conditional Forwarder بررسی میشه
  5. بعد Forwarder بررسی میشه
  6. در نهایت این Root Hint ها هستن که بررسی میشن
محمد نصیری

بعد از تحقیقاتی که انجام دادم متوجه شدم که دوست عزیزمون درست میگن در DNS سرور ابتدا Zone بررسی میشه و اولویت داره.

سیدمصطفی موسوی نیا

بسیار خوب و جامع بود.

Hamidnch

خیلی ممنون.بسیار عالی.

Mostafa Norzade

با عرض سلام .

میخواستم بدونم که در نهایت Forwarder یک DNS سرور در خارج از شبکه داخلی است(طبق عکس اول ) یا یکی از چندین DNS سرور های موجود در شبکه Local می باشد(طبق شکل 2 که آی پی Valid نیز برایشان در نطر گرفته اید)

با تشکر

leilafrj

سلام

من اومدم اسم دامینم را با اسم هاستم یکی گرفتم(هاستم خارجیه) مشکلی که پیش اومده اینه که الان سایت را باز نمیکنه یعنی requestها را بجای اینکه فوروارد کنه سمت آی پی خارجی میاد از dns میپرسه.

چکار کنم حلش کنم؟

البته یه هاست اد کردم به نام www اما اگه www را نزنم سایت را باز نمیکنه و این اصلا خوب نیست.

متشکرم

رامین حصیبی

خیلی خوب بود. مرسی

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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