
در این مقاله به بررسی انواع محدودیت های موجود در اکتیودایرکتوری می پردازیم و همچنین پیشنهادهایی را ارائه می دهیم که رعایت آن ها در طراحی و پیاده سازی زیرساخت اکتیودایرکتوری مهم و حیاتی است. محدودیت هایی که بررسی می کنیم عبارتند از:
هر دامین کنترلر در یک forest در تمام عمرش می تواند کمی کمتر 2.15 بیلیون object بسازد. هر دامین کنترلر در اکتیودایرکتوری یک شناسه منحصر به فرد دارد که مخصوص همان دامین کنترلر است. این شناسه ها که به آن ها Distinguished Name Tag یا DNT هم می گویند، replicate نمی شوند
و ار دید دامین کنترلرهای دیگر پنهان هستند. DNT می تواند مقداری از 0 تا 2,147,483,393 را داشته باشد. زمانی که در دامین کنترلر یک object ساخته می شود، یک مقدار منحصر به فرد به آن اختصاص داده می شود.وقتی که یک object را پاک می کنیم، دیگر از DNT مربوط به آن شی استفاده نخواهد شد.
بنابراین تعداد اشیا هر دامین کنترلر محدود به 2 بیلیون شی می شود (که اشیائی که از طریق replication ساخته می شود را شامل می شود). این محدودیت همه اشیا در همه پارتیشن هایی (domain NC، configuration schema و هر application directory partition) که در آن دامین کنترلر داریم را شامل می شود. زمانی که تعداد DNTها به حداکثر رسیده باشد، در سطح پایگاه داده خطای زیر را می بینید:
Error: Add: Operations Error. <1> Server error: 000020EF: SvcErr: DSID-0208044C, problem 5012 (DIR_ERROR), data -1076.
این قسمت را با ویندوز سرور 2012 شروع می کنیم که بیسترین تعداد SIDهایی که در تمام عمر یک دامین می توان ساخته شود 2,147,483,647 RID است. در ویندوز سرور 2012 بهبودهای چشمگیری در روش های ساخت و نظارت بر RIDها صورت گرفت و همین امر باعث افزایش تعداد شناسه های امنیتی شد.
در ویندوز سرور 2008 و سیستم عامل های قدیمی تر، بیشترین تعداد security identifier در عمر یک دامین در حدود 1 بیلیون است.اندازه دقیق آن 1,073,741,823 RID است.در ویندوز سرور 2012 زمانی که %1 از تعداد RIDها باقی مانده باشد، هر دامین کنترلری که درخواست RID میکند، یک event با شناسه 16656 در event log سیستم هایشان ثبت می کنند.
در ویندوز سرور 2008 R2 و سیستم عامل های قدیمی تر، زمانی که از تمام محدوده RIDها استفاده شده باشد، یک event با شناسه 16644 در event log ثبت می شود که متن آن مشابه متن زیر است:
The maximum domain account identifier value has been reached. No further account-identifier pools can be allocated to domain controllers in this domain.
اگر تمام RIDهای مجاز استفاده شده باشد، دستور Dcdiag را اجرا کنید، با خطای زیر مواجه می شوید:
The DS has corrupt data: rIDAvailablePool value is not valid.
یکی از راه حل های موقتی برای این مشکل این است که یک دامین additional برای مدیریت اکانت ها بسازیم و سپس اکانت ها را به دامین جدید منتقل کنیم. همچنین برای انتقال اکانت ها باید بین دامین ها trustها برقرار کنید.
تعداد موجودیت های هر Discretionary Access Control List (یا DACL) و یا Security Access Control List (یا SACL) با استفاده از ntSecurityDescriptor اندازه 64000 شی است. این تعداد از محدود بودن Access Control List (یا ACL) ایجاد می شود. از آن جا که حجم موجودیت های Access Control (یا ACEها) متفاوت است، تعداد واقعی این موجودیت ها، حداکثر 1820 موجودیت می شود.
Security Principalها (مانند user، group و computer account) می توانند حداکثر عضو 1015 گروه باشند. محدود بودن حجم رمزهای عبور برای هر security policy، این محدودیت را به وجود می آورد. لازم به ذکر است که این محدودیت با چیدمان گروه ها ارتباطی ندارد.
در اکتیو دایرکتوری FQDNها یا همان Fully Qualified Domain Nameها نمی توانند طولی بیشتر از 64 کاراکتر داشته باشند که این مقدار شامل ویرگول و نقطه ها می شود. برای مثال نام هاست زیر 65 کاراکتر دارد که یک دامین مجاز در اکتیودایرکتوری نیست:
Server10.branch-15.activedirectory.education.networking.tosinso.com
خیلی مهم است که این محدودیت را هنگام نام گذاری دامین ها در نظر داشته باشید.
فایل های فیزیکی که اجزا مختلف اکتیودایرکتوری از آن ها استفاده می کنند (مانند SYSVOL، پایگاه داده (یا NTDS.DIT) و آدرس فایل های log) تحت تاثیر تعداد 260 کاراکتر MAX_PATH در APIهای Win32 هستند. هنگام نصب اکتیودایرکتوری، زمانی که آدرس فایلهای SYSVOL و پایگاه داده را تعیین می کنید، از انتخاب فولدرهای تودرتو جلوگیری کنید. زیرا این ساختار تودرتو، طول آدرس فولدرهای SYSVOL، پایگاه داده و فایل های log را بیشتر از 260 کاراکتر می کند.
در اکتیودایرکتوری محدودیت های دیگری برای طول نام ها وجود دارد که عبارتند از:
Schema بر روی نام objectهای مختلف در اکتیودایرکتوری محدودیت هایی اعمال می کند. موارد زیر مثال هایی از محدودیت های schema برای نام ها است:
در عملیات های اتصال به یک دایرکتوری از طریق LDAP، Distinguished Name (که معمولا آن را با DN می شناسیم) می تواند حداکثر 255 کاراکتر باشد. اگر عملیات LDAP مورد نظرتان طولی بیش از 255 کاراکتر داشته باشد، با خطاهایی درباره اعتبارسنجی مواجه می شوید، مانند نمونه زیر:
Error <49>: ldap_simple_bind_s() failed: Invalid Credentials Server error: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 57, v1771 Error 0x80090308 The token supplied to the function is invalid
برای جلوگیری از وقوع این مشکل می توانید برنامه ها، اسکریپت ها و utilityهایی که سعی می کنند به یک دایرکتوری با استفاده از LDAP متصل شوند را مجبور کنید که از نسخه امن LDAP استفاده کنند. همچنین می توانید از عمق ساختار OUها کم کنید و یا طول اسم OUها را کاهش دهید. برای مثال distinguished name زیر 258 کاراکتر دارد:
CN=SoLand,OU=CorporateVicePresidents,OU=CorporateOfficers,OU=ViewOfPugetSoundOffices,OU=TopFloor,OU=Building1557,OU=CorporateCampus,OU=Redmond,OU=Washington,OU=NorthWestern,OU=UnitedStatesOfAmerica,OU=NorthAmerica,DC=BusinessGroup,DC=humongousinsurance,DC=com
اگر نام OUای که نامش CorporateVicePresident است را به CVP تغییر دهیم، distinguished name برای اکانت SoLand به 239 کاراکتر کاهش می یابد.
به هر user account یا computer account می توانید حداکثر 999 Group Policy Object (یا همان GPO) را اعمال کنید. این یه این معنی نیست که تعداد تنظیمات policy در سیستم 999 تا است. بلکه یعنی هر user یا computer نمی تواند بیش از 999 GPO را پردازش کند. این محدودیت برای بهبود عملکرد سیستم ایجاد شده است.
محدودیت Trustها از تعداد دامین هایی که trust دارند، طول آدرس trust و قابلیت کلاینت ها برای شناسایی trustهای موجود ناشی می شود. محدودیت هایی که اعمال می شوند شامل:
زمانی که اسکریپت یا برنامه ای می نویسید که تراکنش های LDAP را انجام می دهد، توجه داشته باشید که برنامه یا اسکریپت تان نمی تواند بیش از 5000 عملیات را در هر تراکنش انجام دهد. تراکنش LDAP به گروهی از عملیات های دایرکتوری (مانند اضافه کردن، حذف کردن و دستکاری) گفته می شود که با آن به عنوان یک واحد یکتا برخورد می شود.
اگر اسکریپت یا برنامه تان بیش از 5000 عملیات در یک تراکنش LDAP داشته باشد، ممکن است که با خطای محدودیت منابع و یا وقفه در عملیات ها مواجه شوید. اگر همچین اتفاقی رخ دهد، همه عملیات های تراکنش (تغییرات، عملیات های اضافه کردن، دستکاری ها) به وضعیت اولیه خود بازمی گردند، به بیان دیگر تمام تغییراتی که ایجاد کرده اید از بین می روند.
برای مثال اگر با استفاده از ADSI یا همان Active Directory Service Interface اسکریپت می نویسید، تابع SetInfo یک تراکنش کامل را انجام می دهد.در یک مثال دیگر داریم، زمانی که از System.DirectoryServices یا S.DS در فریم ورک .Net استفاده کنید، تابع DirectoryEntry.CommitChanges یک تراکنش کامل را انجام می دهد.
در محیط اکتیودایرکتوری ویندوز 2000، پیشنهاد می کنم که حداکثر 5000 کاربر در یک گروه داشته باشید. این محدودیت به دلیل محدود بودن تغییرات همزمان و اتمیک در هر تراکنش پایگاه داده است.در ویندوز سرور 2003، قابلیت replicate کردن تغییرات همزمان به عنوان یک تکنولوژی جدید با نام Linked Value Replication یا LVR معرفی شد.
برای فعال کردن LVR، حداقل سطح عملیاتی forest را ویندوز سرور 2003 انتخاب کنید. افزایش سطح عملیاتی forest روش ذخیره سازی کاربران هر گروه در پایگاه داده و روش replicate کردن بین دامین کنترلرها را تغییر می دهد. با این کار می توانید بیش از 5000 کاربر را در در هر گروه عضو کنید.علاوه بر این، سازمان های تولیدی گزارش 4 میلیون عضو را داده اند و در محیط آزمایشگاهی مایکروسافت این تعداد به 500 میلیون عضو رسیده است.
در ویندوز سرور 2000، پیشنهاد می کنم که حداکثر 800 دامین را در هر forest ایجاد کنید. در ویندوز سرور 2003، زمانی که سطح عملیاتی forest بر روی ویندوز سرور 2003 (به این سطح عملیاتی، سطح عملیاتی دوم هم می گویند) است، حداکثر 1200 دامین را در هر forest بسازید.
برای اطمینان از امکان بازگردانی SYSVOL، پیشنهاد می کنیم که در هر دامین حداکثر 1200 دامین کنترلر بسازید.
بهتر است که بیشترین سایز برای هر تیکت کربروس را 48000 بایت انتخاب کنید که این مقدار از طریق یک کلید DWORD به نام MaxTokenSize در رجیستری (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Lsa\Kerberos\Parameters) و یا از طریق Group Policy تعیین می شود.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود