Active Directory içerisindeki her objenin benzersiz bir kimlik numarasına sahip olmasını sağlayan sistem, RID (Relative Identifier) ve SID (Security Identifier) üzerine kuruludur. Her yeni Active Directory nesnesi oluşturulduğunda, bu nesnelere otomatik olarak RID atanır. RID'ler, ilgili Domain'in SID'ine bağlı olarak sıralı bir şekilde verilir. Domain Controller, RID Master FSMO rolünü üstlenen sunucu tarafından yönetilen bir RID havuzundan bu tanımlayıcıları alır. Bu sunucu, her seferinde 500'lük paketler halinde RID'leri diğer Domain Controller'lara dağıtarak, nesne oluşturma işlemlerinin devam etmesini sağlar.
Ancak, The directory service has exhausted the pool of relative identifiers hatası, Active Directory'nin atayabileceği RID'lerin tükendiğini gösterir. Bu durum genellikle, RID Master FSMO rolünü tutan sunucudan yeni bir 500'lük RID paketi alınamadığında meydana gelir. RID havuzunun tükenmesi, çeşitli teknik sebeplerden ötürü olabilir. En yaygın sebeplerden biri, RID Master rolünü barındıran sunucunun Network bağlantı sorunları yaşaması veya sistemsel bir arıza nedeniyle çevrimdışı kalmasıdır. Ayrıca, aşırı sayıda obje oluşturma işlemi de RID havuzunun hızla tükenmesine sebep olabilir.
Bu tür bir sorunla karşılaşıldığında, ilk adım genellikle RID Master FSMO rolünü tutan sunucunun durumunu kontrol etmek olmalıdır. Eğer sunucu çevrimdışı ise, onu yeniden çevrim içi hale getirmek veya gerekirse FSMO rollerini başka bir Domain Controller'a aktarmak gerekebilir. Eğer sunucu çalışır durumda ise ve yine de RID paketleri sağlanamıyorsa, bu durumda yapılandırma veya Network iletişiminde derinlemesine bir sorun olup olmadığını araştırmak önemlidir.
Active Directory içerisinde RID Master FSMO rolünü üstlenen sunucunun varsayılan olarak yönettiği RID havuzu, 1,073,741,823 (1 milyar 73 milyon 741 bin 823) adet RID içerir. Bu rakam, Microsoft tarafından belirlenmiş ve yönetilen bir sınırı temsil eder. Her yeni Active Directory nesnesi için bir RID kullanıldığından, bu havuzun kapasitesi, kuruluşların büyüklüğü ve obje yaratma sıklığına bağlı olarak zamanla tükenmeye başlar.
RID havuzunun bu kapasitesi, genellikle büyük çoğunlukla yeterli olsa da, büyük kuruluşlar veya yoğun Active Directory değişiklikleri gerçekleştiren ortamlar için bu sayı yetersiz kalabilir. RID havuzu tükendiğinde, yeni kullanıcılar, gruplar veya diğer nesneler oluşturulamaz ve bu, "The directory service has exhausted the pool of relative identifiers" hatası ile sonuçlanır. Bu sınırın aşılması durumunda, genellikle RID Master rolünü tutan sunucunun başka bir sunucuya geçirilmesi veya Microsoft'un önerdiği üst sınır olan 2,147,483,647'ye (2 milyar 147 milyon 483 bin 647) kadar RID havuzunun genişletilmesi gibi adımlar gerekebilir. Ancak, Microsoft bu sınırın çok gerekli olmadıkça artırılmamasını önermektedir, çünkü bu, Active Directory'nin performansını ve yönetimini daha karmaşık hale getirebilir.
Aşağıdaki komut yardımıyla RID Pool değerlerinizi kontrol edebilirsiniz. Çıkan sonuç, RID Master FSMO rolünün sahip olduğu toplam RID Pool değeridir.
Dcdiag.exe /TEST:RidManager /v | find /i "Available RID Pool for the Domain" |
Domain ya da Forest ortamındaki RID Master FSMO rolünü tutmayan diğer Domain Controller'lar üzerlerinde 500 adet RID numarası bulunurlar (Windows Server 2016 ile birlikte bu sayı 500'e çıkartılmıştır) ve bu RID Master FSMO rolünü tutmayan diğer Domain Controller'lar, bu sayının %50'si tükendiğinde RID master FSMO rolünü üzerinde tutan Domain Controller ile iletişime geçerek, tekrar bir 500'lük RID talebinde bulunurlar. Tüm bu işlemleri yerine getiren RID Master FSMO rolüdür. RID Matser'ı barındıran Domain Controller'ın herhangi bir sebeple işlevsiz kalması ve yapınızdaki herhangi bir diğer Domain Controller'ın da barındırdığı bu sınırlı RID numarasının tükenmesi durumunda, RID numarasının tükendiği Domain Controller üzerinde yeni Active Directory nesneleri oluşturulamayacaktır ve the directory service has exhausted the pool of relative identifiers hatası oluşacaktır.
Bu bilgileri, aşağıdaki küçük bir uygulama ile size göstermek istiyorum. Örneğimde 3 Site'lı bir Forest yapım bulunuyor. ANTALYA-SITE içinde 1 adet Domain Controller'ım var. Bu Site'ımın RID Master FSMO rolünü tutan ISTANBUL-SITE ile VPN bağlantıısı kesildiği için iletişim kuramıyorlar.
VPN bağlantısının kesildiği ANTALYA-SITE içindeki Active Directory üzerindeki bir OU (Organization Unit) içinde DS (Directory Service) komut setinin FOR döngüsel biçimi ile CMD üzerinde 500 tane kulanıcı oluşturuyorum.
FOR /L %i in (1,1,500) do dsadd user "CN=Kullanici%i,OU=Kullanicilar,OU=IT,OU=Istanbul,OU=Turkiye,DC=firatboyan,DC=com" -pwd Aa11223344 -mustchpwd yes -fn User%i -email User%i@firatboyan.com -upn User%i@firatboyan.com -webpg "www.firatboyan.com" -dept "IT" -title "Sistem Uzmani" |
Kullanıcı nesnelerini oluşturduğum, RID Master FSMO rolünü üzerinde tutmayan bu Domain Controller, kendi üzerinde tuttuğu 500'lük RID paketini kullanırken, bu paketin %50'sini tükettiğinde, RID Master FSMO rolünü tutan Domain Controller ile VPN bağlantısının mevcut olmaması sebebiyle, 500'ncü kullanıcıda "The directory service has exhausted the pool of relative identifiers." hatası ile karşılaştım.
Hemen ardından Active Directory Users and Computers içinde FIRAT BOYAN kullanıcısını eklemeye çalıştığımda da "Windows cannot create FIRAT BOYAN because: The directory service has exhausted the pool of relative identifiers." hatasını alıyorum.
Bu hatanın çözümü için yapılması gereken, RID Master FSMO rolünü tutmayan Domain Controller'ın, RID Master FSMO rolünü tutan Domain Controller ile haberleşmesi ve yeni bir 500'lük RID Pool talebinde bulunması gereklidir. Bunu sağladıktan sonra, yeniden Active Directory kullanıcı nesneleri oluşturabildiğinizi göreceksiniz.
Faydalı olması dileğiyle....
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.