computerwine computerwine .

computerwine

كنترل و اولويت بندي درخواست هاي احراز هويت و Logon كاربر بر روي Domain Controller ها

شايد تا به حال بر اين باور بوده ايد كه در يك شبكه زمانيكه شما دو يا بيش از دو عدد Domain Controller راه اندازي مي كنيد درخواست ها بين اين Domain Controller ها براي احراز هويت كلاينت ها و همچنين Logon به سيستم ها تقسيم مي شود. اين برداشت تا حدودي نادرست است. ما مي توانيم بر اساس نياز خودمان سرورهاي Domain Controller را براي احراز هويت و Logon كلاينت ها اولويت بندي كنيم و در واقع درخواست هاي مختلف را به سرورهاي مختلف ارسال كنيم و خودمان بصورت دستي براي كلاينت ها محدوده احزا هويت تعريف كنيم . اينكار توسط دو پارامتر در ركوردهاي SRV سرويس DNS به نامهاي Weight و Priority تعريف مي شود و شما با دستكاري اين دو ركورد در LDAP SRV Record مي توانيد اولويت هاي خود را تغيير بدهيد.



تصور كنيد كه در شبكه اي قرار داريد كه نرم افزارهاي سرورهاي شما بصورت جداگانه و كلاينت هاي شما هم بصورت جداگانه به Domain Controller درخواست احراز هويت مي دهند و آنقدر سر Domain Controller شلوغ مي شود كه بعضا نمي تواند به درخواست هاي كلاينت ها پاسخ بدهد ، در چنين مواقعي شما مي توانيد دو عدد Domain Controller در شبكه با weight و priority مختلف ايجاد كنيد كه يكي از آنها فقط درخواست هاي كلاينت ها را پاسخگويي كند و ديگري فقط و فقط درخواست هاي نرم افزارهاي كاربردي سرورها را پاسخ بدهد. كلاينت ها زمانيكه مي خواهند به يك Domain Controller درخواست Login بدهند ابتدا درخواست خود را به DNS سرور ارسال مي كنند ، DNS سرور ليستي از Domain Controller هايي را كه سرويس Kerberos و LDAP ارائه مي دهند را به كلاينت ارسال مي كند ، در اين ليست دو پارامتر weight و priority نيز ارسال مي شود كه كلاينت بر اساس آنها تصميم مي گيرد كه بايد درخواست خود را به كداميك از سرورهاي مذكور ارسال كند به مثال زير توجه كنيد در اين شبكه سه عدد Domain Controller وجود دارد كه درخواست كلاينت به شكل زير پاسخ داده شده است :

_exmp1.tcp.itpro.ir IN SRV 10 50 389 server1.itpro.ir
_exmp1.tcp.itpro.ir IN SRV 10 50 389 server2.itpro.ir
_exmp1.tcp.itpro.ir IN SRV 10 50 389 server3.itpro.ir


در مثالي كه در بالا مشاهده مي كنيد و نتيجه Query يك كلاينت از DNS سرور براي پيدا كردن Domain Controller مناسب براي Login به سيستم است عدد 10 نمايانگر priority يا اولويت و عدد 50 به عنوان weight يا بار در server1.itpro.ir نشان داده شده اند. در مثال بالا كلاينت هاي شبكه هميشه براي احراز هويت از سرور server1.itpro.ir استفاده خواهند كرد و تا زمانيكه اين سرور در شبكه فعال باشد به سراغ سرورهاي ديگر نخواهند رفت. اگر مي خواهيد كلاينت هاي شما هميشه براي احراز هويت از سرور server2.itpro.ir استفاده كنند بايستي مقدار عددي priority مربوط به سرور server2.itpro.ir را در كنسول مديريتي DNS تغيير بدهيد. كلاينت ها در صورتيكه همه موارد از قبيل weight و priority براي همه سرورها برابر باشد هميشه از سرور اولي كه در Query بازگشت داده مي شود براي احراز هويت استفاده مي كنند. كلاينت ها هميشه براي احراز هويت به دنبال سروري هستند كه داراي priority پاييتنري باشد. براي مثال اگر شما عدد priority مربوط به سرور server2.itpro.ir را تغيير بدهيد و از عدد 10 به عدد 6 تبديل كنيد. بعد از اعمال تغييرات در SRV Record در DNS سرور ، زمانيكه كلاينت از سرور براي ركوردهاي مورد نظر Domain Controller ها Query بگيرد اينبار پاسخ DNS سرور به شكل زير خواهد بود و ترتيب معرفي سرورها تغيير خواهد كرد :

_exmp1.tcp.itpro.ir IN SRV 6 50 389 server2.itpro.ir
_exmp1.tcp.itpro.ir IN SRV 10 50 389 server1.itpro.ir
_exmp1.tcp.itpro.ir IN SRV 10 50 389 server3.itpro.ir


هر كلاينتي كه به شبكه دومين ويندوزي ما Join مي شود براي پيدا كردن Domain Controller مورد نظر خود براي Login كردن به اكتيودايركتوري و پروتكل LDAP از يك Component به نام DCLocator كه به عنوان يكي از اجزاي سرويس NETLOGON وجود دارد استفاده مي كند. همانطور كه قبلا هم در پاراگراف هاي قبلي در اين مقاله انجمن تخصصي فناوري اطلاعات ايران ذكر كرديم بايد منطقي پشت اين ماجرا باشد كه بعد از درخواست كلاينت از DNS سرور DCLocator از كجا متوجه مي شود كه بايد از كدام Domain Controller استفاده كند ؟ بر اساس تجربيات خودم ( Unity ) و همچنين جستجوهايي كه در اين خصوص انجام داده ام به اين نتايج رسيده ام كه عوامل زير براي تعيين كردن سرور Login كلاينت ها بسيار مهم هستند :

    نسخه يا Version سيستم عامل سرور Domain Controller ( سيستم عامل جديدتر زودتر از سيستم عامل قديمي جواب مي دهد)
    واكنش سريعتر سرورها ( معمولا سرورها با منابع بيشتر سخت افزاري سريعتر پاسخ مي دهند )
    ترتيب ركورد هايي كه از طريق DNS مشابه پاراگراف هاي قبلي بازگشت داده مي شود ( ركوردهاي gc_ و ldap_ )
    مقادير priority و weight اي كه براي ركوردهاي SRV دامين كنترلرها تعريف مي شود.


موارد متعدد و سناريوهاي مختلفي وجود دارد كه در آنها شما مجبور هستيد كه درخواست هاي LDAP اي كه توسط سيستم هاي كلاينت ها ارسال مي شوند را بين بيش از يك Domain Controller تقسيم كنيد ، بصورت پيشفرض بر خلاف تصوراتي كه مي شود اكثر درخواست هاي كلاينت ها توسط يك Domain Controller انجام مي شود ، از جمله اين سناريوها كه ما بايد درخواست هاي LDAP را به سرورهاي مختلف تقسيم كنيم به موارد زير مي توانيم اشاره كنيم :

    Domain Controller اي كه داراي نقش PDC Emulator است بسيار پر كار شده است و كارايي Login و احراز هويت كاربران كم شده است
    بروز رساني و يا مهاجرت سرورهاي Domain Controller به يك سيستم عامل جديد باعث شده همه درخواست ها در سيستم عامل جديد پاسخگويي شوند
    مي خواهيد احراز هويت سرورها و سرويس هاي سازمان توسط يك Domain Controller اختصاصي انجام شود و نه توسط همان Domain Controller اي كه همه سيستم هاي كلاينت ها از آن استفاده مي كنند.


سرويس Netlogon از دو پارامتر براي كنترل كردن پاسخ هاي درخواست هاي LDAP به نام هاي LdapSrvWeigth و LdapSrvPriority استفاده مي كند. بصورت پيشفرض هر DC يك priority با عدد صفر و يك weight با عدد 100 دارد همانطور كه در مثال اول همين مقاله مشاهده كرديد. پارامتر weight باعث مي شود كه DC هايي كه داراي priority يكسان هستند اما weight بالاتري دارند پاسخگو تر باشند. اما اگر پارامتر priority پيكربندي شود بر روي پارامتر weight اولويت خواهد داشت.Domain Controller هايي كه داراي بالاترين نمره weight باشند و كمترين priority را داشته باشند بيشتر با آنها تماس برقرار مي شود. براي اينكه اين رفتار را بتوانيم تغيير بدهيم ، بايستي دو عدد كليد رجيستري در Domain controller هاي مورد نظرمان بصورت REG_DWORD در مسير زير به نامهاي LdapSrvWeight و LdapSrvPriority ايجاد كنيم :

 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesNetlogonParameters


عددي كه مي توانيم انتخاب كنيم براي هر يك از پارامترهاي ايجاد شده مي تواند بين 0 تا 65535 باشد ، بعد از اعمال تغييرات بر روي Domain Controller مورد نظر سرويس Netlogon را يكبار Restart كنيد و در كنسول DNS به SRV Record هاي مورد نظر مراجعه كنيد و مطمئن شويد كه تغييرات اعمال شده است ، تغييرات معمولا بلا فاصله ايجاد مي شود ، براي مثال در جاييكه شما مي خواهيد دو عدد سرور هميشه پاسخگو باشند پيشنهاد مي شود كه weight سرور اول را 50 و priority آن را 10 قرار بدهيد و براي سرور دوم عدد 100 را براي weight و عدد 10 را براي priority تعريف كنيد و در نهايت براي سومين سرور كه سرور بيكار ما خواهد بود عدد 100 را براي priority و عدد 0 را براي weight قرار بدهيد . ITPRO باشيد


برچسب: ،
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۶ساعت: ۰۱:۵۰:۱۶ توسط:computerwine موضوع:

{COMMENTS}
ارسال نظر
نام :
ایمیل :
سایت :
آواتار :
پیام :
خصوصی :
کد امنیتی :