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

و

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

معرفی قابلیت Netmask Ordering و Round Robin در DNS سرور

حتما با ساختار کاری سرویس DNS آشنایی دارید ، اگر با این ساختار آشنایی ندارید پیشنهاد می کنم قبل از خواندن این مطلب مقاله بنده با عنوان معرفی سرویس DNS بصورت طنز در انجمن تخصصی فناوری اطلاعات ایران را مشاهده کنید. شاید برای شما جالب باشد بدانید که شما می توانید بصورت همزمان در یک DNS سرور چندین رکورد یا بهتر بگوییم چندین A Record با یک اسم داشته باشید ، برای مثال شما می توانید یک A Record به شکل www با آدرس IP به شماره 192.168.1.100 در Zone ای به نام tosinso.com ایجاد کنید و در کنار همین A Record یک A Record دیگر نیز به شکل www با آدرس IP به شماره 172.16.1.100 نیز داشته باشید. یعنی دو رکورد یکسان با آدرس های IP متفاوت ، این قابلیت در DNS سرور به عنوان قابلیت Round Robin شناخته می شود که در خصوص آن بیشتر با هم صحبت خواهیم کرد. اما نکته قابل تامل در این است که سرویس DNS ما از کجا می تواند تشخیص دهد که کدامیک از این رکوردها باید به درخواست کلاینت ها پاسخ داده شوند ؟ DNS سرور از کجا متوجه می شود که کدامیک از این رکوردها را باید در پاسخ به کلاینت برگرداند ؟ این موضوع دقیقا بحث امروز مقاله ما است.

کاربرد Round Robin چیست

Round Robin چیست ؟


با فعال کردن قابلیت Round Robin در DNS سرور شما می توانید رکوردهای مشابه با آدرس های IP غیرمشابه ایجاد کنید ، Round Robin این امکان را به DNS سرور می دهد که به محض دریافت درخواست رکورد سرور ، بصورت ترتیبی درخواست های کلاینت را به ترتیب بر روی رکوردهای مشابه موجود ارسال کند ، یعنی اولین درخواست به اولین رکورد ارسال می شود و دومین درخواست دومین رکورد را خواهد دید. در واقع با استفاده از این مکانیزم ، شما اگر دو عدد وب سرور مشابه داشته باشید و DNS سرور شما رکوردهای آنها را که دارای آدرس های IP غیرمشابه می باشند در خود داشته باشد ، اولین درخواست وب سایت برای سرور اول و دومین درخواست به سرور دوم ارسال خواهد شد ، در واقع سرویس Round Robin در DNS سرور به نوعی برای ما Load Balancing در سطح DNS سرور ایجاد می کند. به رکوردهای زیر دقت کنید ، هر کدام دارای یک آدرس IP متفاوت در یک DNS سرور هستند اما با قابلیت Round Robin درخواست اول به سمت آدرس IP به شماره 192.168.1.100 و درخواست دوم به سمت آدرس IP به شماره 192.168.1.200 برای برگرداندن اسم www.tosinso.com بازگردانی خواهد شد :

A Record : www.tosinso.com = 192.168.1.100
A Record : www.tosinso.com = 192.168.1.200

Netmask Ordering در DNS چیست

Netmask Ordering چیست ؟


قابلیت Netmask Ordering این امکان را به DNS سرور می دهد که تشخیص دهد که درخواست کلاینت از چه محدوده آدرس IP ای دریافت شده است و با توجه به داشتن چندین رکورد مشابه ، DNS سرور متوجه می شود که کدامیک از رکوردهای را باید به کلاینت معرفی کند ، شاید درک این موضوع کمی مبهم به نظر برسد اما همان مثال بالا را با شرایط زیر در نظر بگیرید ، ما 5 عدد رکورد برای www.tosinso.com به شکل زیر داریم که هر کدام از آنها دارای ادرس های IP متفاوت و بعضا محدوده آدرس آنها با هم متفاوت است ، به مثال زیر توجه کنید :

A Record : www.tosinso.com :192.168.1.100
A Record : www.tosinso.com :192.168.1.200
A Record : www.tosinso.com :172.16.1.100
A Record : www.tosinso.com :172.16.1.200
A Record : www.tosinso.com :85.146.23.77

حالا به مثال بالا توجه کنید ، همانطور که مشاهده می کنید ما 5 عدد A Record در DNS سرور خود داریم که همه آنها به www.tosinso.com اشاره می کنند ولی آدرس های IP هر کدام از آنها متفاوت است ، دقت کنید که به هر حال شما باید قابلیت Round Robin را داشته باشید تا بتوانید از Netmask Ordering استفاده کنید ، حالا تصور کنید کلاینتی در شبکه داخلی قرار دارد که یکی از کارت شبکه های این DNS سرور به این شبکه داخلی متصل است و کلاینت دارای آدرس IP به شماره 192.168.1.50 است و درخواست پیدا کردن آدرس IP وب سایت www.tosinso.com را به این وب سایت می دهد ، DNS سرور در لیست رکوردهای خود به دنبال رکوردهای مورد نظر می گردد ، در چنین حالتی متوجه می شود که درخواست کلاینت ما از آدرسی ارسال شده است که با دو عدد از رکوردهای DNS موجود تشابه دارد بنابراین در اینجاست که قابلیت Netmask Ordering به DNS سرور می گوید که در پاسخ به کلاینت بایستی رکورد www.tosinso.com با آدرس IP به شماره 192.168.1.100 یا 192.168.1.200 را باید بازگردانی کند ، در حقیقت اینجاست که Netmask Ordering با استفاده از Subnet Mask ای که درخواست از آن ارسال شده است تشخیص می دهد که کدام آدرس را باید بازگردانی کند.

تصور کنید شما یک وب سایت دارید که بر روی یک سرور قرار گرفته است ، این سرور هم به شبکه داخلی شما با محدوده آدرس 192.168.1.0//24 و هم به شبکه اینترانت سازمان با محدوده آدرس 172.16.0.0//16 و هم دارای سرویس دهی عمومی به شبکه اینترنت می باشد. در چنین شرایطی با استفاده از قابلیت Netmask Ordering اگر درخواستی به DNS سرور ارسال شود که از شبکه داخلی باشد ، یا شبکه اینترانت و یا شبکه اینترنت ، سرور متوجه می شود که باید کدامیک از رکوردها را برای کلاینت بازگردانی کند. در مثال بالا با توجه به اینکه ما Round Robin نیز داریم برای کلاینت های شبکه داخلی ابتدا آدرس های 192.168.1.100 و سپس آدرس 192.168.1.200 برای ایجاد کردن Load Balancing بازگردانی خواهند شد.

  • نکته : استفاده از Netmask Ordering در شبکه هایی که از Subnet Mask های استاندارد محدوده آدرس های Class A یا Class B و C استفاده می کنند بسیار دقیق عمل می کند اما در خصوص Subnet هایی که استاندارد نیستند بصورت حدودی و نزدیک به هدف محاسبات انجام می شود چندان دقیق نیست ، شما می توانید برای هر کدام از رکوردهای خود در این حالت یک Netmask خاص تعریف کنید که معمولا بصورت Hexadecimal با استفاده از دستور dnscmd انجام می شود. امیدوارم مورد توجه شما قرار گرفته باشد در صورتیکه ابهامی در این موضوع هست یا تجربه ای در این خصوص دارید خوشحال می شویم از دانش شما استفاده کنیم . ITPRO باشید

نویسنده : محمد نصیری

منبع : جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#load_balancing_در_dns #round_robin_چیست #کاربرد_netmask_ordering_در_dns #netmask_ordering_چیست #روش_کار_dns #کاربرد_round_robin_در_dns #روش_کار_round_robin #طراحی_ساختار_split_dns #کاربرد_netmask_ordering_در_شبکه
18 نظر
it1

یعنی اگه یه کلاینت درخواست ترجمه ای یه اسم رو بکنه dns سرور هر دفعه ای پی یه سیستم رو میده به کلاینت ؟یا نه به هرکسیکه درخواست کنه هردوتارو میده ولی با ترتیب متفاوت و چرخشی؟

منظورم در حالت round robin هستش

محمد نصیری

اگر کلاینت A اول به DNS درخواست بده یکی از آدرس هایی که در DNS Round Robin وجود داره بهش داده میشه و از این به بعد همیشه همین آدرس داده میشه ، اگر کلاینت دوم به DNS درخواست بده دومین آدرس در Round Robin بهش داده میشه و همیشه همین آدرس بهش اعلام میشه ...

it1

یعنی وقتی یک کلاینت درخواست میده حتی اگه dns برای اون رکورد چندتا ای پی داشته باشه فقط یکی رو میده به کلاینت؟

it1

ولی من فکر نمیکنم اینجوری باشه که شما میگید چون وقتی dns برای یک اسم چندتا ای پی داشته باشه هر درخواستی براش ارسال بشه همه ای پی هارو میفرسته به کلاینت ولی ترتیب این لیست رو هر بار عوض میکنه و بصورت چرخشی لیست رو مرتب میکنه تا توزیع بار بین اون سرورها بوجو بیاد کلاینت هاهم سعی میکنن با همون ترتیب لیست دریافتی به سرورها وصل شوند ای ن موضوع رو میتونید با دستور nslookup خیلی راحت تست کنید و ببیندی که هر باز که اسم مورد نظر رو با nslookup میخواین ترجمه کنید همه ای پی هاش برمیگرده ولی با ترتیب متفاوتی

محمد نصیری

ممنونم از توضیحاتتون اما یه نکته ای هست ، این کاملا بستگی به نوع درخواست کلاینت داره که لیستی از آدرس های DNS رو درخواست کنه که با این لیست کلیه آدرس های IP ارسال بشن یا یکی از آدرس ها درخواست بشه ، در بیشتر اوقات فقط یک آدرس IP از طرف DNS سرور پاسخ داده میشه ، اگر کلاینت A درخواست وب سایت www.tosinso.com رو داده باشه و در سرور DNS 4 عدد رکورد www.tosinso.com وجود داشته باشه ، ترتیبی عمل میشه ، یعنی کلاینت A اولین رکورد رو دریافت می کنه ، کلاینت B دومین رکورد ، کلاینت C سومین رکورد و کلاینت D چهارمین رکورد ... اگر کلاینت F ای وارد مجموعه بشه حالا بر اساس Round Robin رکورد A از سر لیست باز گردانی میشه ، این قطعا ساختار کاری Round Robin هست ، به نقل از ویکیپدیا :

When one user accesses the home page it will be sent to the first IP address. The 
second user who accesses the home page will be sent to the next IP address, and the 
third user will be sent to the third IP address. In each case, once the IP address is 
given out, it goes to the end of the list. The fourth user, therefore, will be sent to the 
first IP address, and so forth.

لینک مطلب :

http://en.wikipedia.org/wiki/Round-robin_DNS

از طرفی ... کلاینت وقتیکه یکی از آدرس های IP رو دریافت کرد دیگه کار تمومه و عملا در مراحل بعدی Round Robin ای در کار نخواهد بود که بخاد کار کنه ، چون از این به بعد کلاینت از Cache استفاده می کنه نه مراجعه به DNS سرور ، این رو من بارها تست کردم ، دو تا وب سرور ایجاد کنید و براشون با یک اسم Binding در DNS ایجاد کنید ، بعد از فعال کردن Round Robin میبینید که کلاینت اول وقتی درخواست میده به سمت وب سرور 1 و کلاینت دو وقتی درخواست میده به سمت وب سرور 2 هدایت میشه ، حالا یکی از سرورها رو خاموش کنید ، مطمئن باشید کلاینتی که قبلا به این سرور متصل شده بوده دیگه نمیتونه وب سایت رو باز کنه چون IP سرور رو با توجه به رکورد قبلی که DNS برگردونده کش کرده و سراغ DNS نمیره که فرآیند Round Robin انجام بشه ، به خاطر همین موضوع هم هست که Round Robin واقعا Load Balancing داره اما Fail Over نداره ... البته اگر اشتباه می کنم خوشحال میشم دوستان بیشتر راهنماییم کنن.

it1

من ا توصیحات شما موافقم فقط اختلافم توی اینه که دی ان اس لیست همه ای پی هارو به کلاینت میده ولی با ترتیب متفاوت و چرخشی کلاینتدهم به همون اولین ای پی ابتدای لیست وصل میشه

محمد نصیری

دوست من اختلاف من با شما فقط در این هست که شما کاربرد Netmask Ordering رو در ترکیب با Round Robin عنوان می کنید ، زمانیکه روی سرور فقط و فقط Round Robin فعال باشه ، فقط و فقط یک آدرس IP بازگشت داده میشه اما اگر همزمان Netmask Ordering هم در کنار Round Robin فعال باشه این Netmask Ordering هست که باعث میشه لیستی از آدرس های نزدیک به کلاینت به سمت اون ارسال بشن که از طریق محاسبات خاصی اینکار انجام میشه ، در واقع بعد از اینکه Netmask Ordering یک لیست آدرس در پاسخ به کلاینت داد از طریق یک فرآیند به نام Destination address selection روی کلاینت بهترین مسیر انتخاب میشه ، در ویندوز XP این فرآیند خیلی ساده هست و اولین آدرسی که از لیست دریافت بشه به عنوان آدرس مقصد در نظر گرفته میشه ، البته گفتم این فرآیند اصلا ساده نیست و خودش RFC داره که ریز به ریز این فرآیند رو توضیح داده اما قطعا وقتی صحبت از لیست میشه NetMask Ordering وجود داره در ترکیب با Round Robin و Round Robin در لیست نقشی نداره ، می تونید برای اطلاعات بیشتر به لینک زیر مراجعه کنید :

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

Silent

سلام

راند رابین cname رو پشتیبانی نمی کنه ؟ به عنوان مثال : دو تا سرور با دو ip مختلف داشته باشیم بعد بخوایم حالت زیر رو پیاده کنیم :

a.itproi.ir 192.168.1.2

a.itproi.ir 192.168.1.3

mydata.com CNAME a.itpo.ir

mydata.com CNAME b.tosinso.com

محمد نصیری

خیر ، فقط با A Record معنی داره .. CNAME خودش مبهم میشه براش .. بعدشم زیاد از مایکروسافت انتظار نداشته باشید ، بعضی اوقات یه چیزی داره ولی کار نمی کنه ..

Silent

بسیار خوب پس باید این کار رو از طریق load balancer های لایه پایین تر انجام داد . درسته ؟ اگه سناریوی مناسبی دارید ممنون میشم راهنماییم کنید.

محمد نصیری

NLB راه اندازی کنید اگر فقط وب سرور هست و مثل هم هستن.

Silent

NLB برای Exchange هم به همین صورته ؟

محمد نصیری

خیر بریا exchange سرور شما از مکانیزم failover clustering استفاده می کنید چون shared storage دارید.

امیرحسین کریم پور

cname و round robin یجورایی برعکس همن نه؟درست فهمیدم؟!

محمد نصیری

نه اینا هیچ ربطی به هم ندارن ... CNAME یک رکورد هست که به رکورد دیگه ای اشاره میکنه همین

محمد گورکانی زرندی

سلام

من دو تا A Record دارم با این مشخصات:

tosinso.com 192.168.0.1

tosinso.com 48.48.48.48

client range : 192.168.0.0/24

client ها در خواست این سایت را به dns می دهند. طبق بحث بالا dns میاد ip 192.168.0.1 رو بر می گردونه.

سوال:

فرض بر این که ارتباط از طریق ip 192.168.0.1 با سرور سایت قطع شود. آیا dns برای کلاینت ip 48.48.48.48 رو بر می گردونه؟

Linuxi

این Netmask Ordering رو چطوری باید فعال کنیم؟ چطوری باید کانفیگ بشه؟ آیا فقط تیک گزینه راند رابین فعال بشه کافیه یا اینکه نیاز به تنظیمات دیگه ای هم داره.....اگه داره آقای نصیری خیلی عزیز سپاسگذار میشم راهنمایی کنید.

با تشکر.

محمد نصیری

پیشفرض فعال هست در سرورهای جدید نیاز به فعال سازی نیست ، همون تیک زدنش کافیه

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

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