Gestione del rilascio di RID
In questo articolo vengono illustrate le modifiche apportate al ruolo FSMO del master RID, inclusa la nuova funzionalità di rilascio e monitoraggio nel master RID, e viene spiegato come analizzare e risolvere i problemi relativi al rilascio di RID.
Altre informazioni sono disponibili nel blog AskDS.
Gestione del rilascio di RID
Per impostazione predefinita, la capacità di un dominio è di circa un miliardo di entità di sicurezza, ad esempio utenti, gruppi e computer. Ovviamente non esistono domini con così tanti oggetti usati attivamente. Tuttavia, il Servizio Supporto Tecnico Clienti Microsoft ha trovato casi in cui:
Il provisioning di script software o amministrativi ha accidentalmente creato in blocco utenti, gruppi e computer
Molti gruppi di sicurezza e di distribuzione non utilizzati sono stati creati da utenti delegati
Molti controller di dominio sono stati abbassati di livello, ripristinati o privati dei metadati
Sono stati eseguiti recuperi di foreste
L'operazione InvalidateRidPool è stata eseguita di frequente
Il valore del Registro di sistema relativo alla dimensione blocco di RID è stato aumentato in modo errato
In tutte queste situazioni i RID vengono consumati senza necessità, spesso per errore. In molti anni, in alcuni ambienti i RID sono stati esauriti ed è stato necessario eseguire la migrazione a un nuovo dominio o eseguire recuperi di foreste.
Windows Server 2012 risolve solo i problemi relativi all'allocazione del RID divenuti gravi con il tempo e la grande diffusione di Active Directory. Queste soluzioni includono una migliore registrazione degli eventi, limiti più appropriati e la capacità di raddoppiare, in caso di emergenza, la dimensione totale dello spazio RID globale per un dominio.
Avvisi periodici sul consumo
In Windows Server 2012 è stata aggiunta la registrazione degli eventi di spazio RID globale, che avvisa tempestivamente quando vengono superate le principali attività cardine. Il modello calcola il 10% di utilizzo nel pool globale e registra un evento quando viene raggiunto. Calcola quindi il successivo 10% utilizzato della parte rimanente e il ciclo degli eventi continua. Man mano che lo spazio RID globale si esaurisce, gli eventi subiranno un'accelerazione perché il 10% viene raggiunto più rapidamente in un pool decrescente (ma l'attenuazione del registro eventi non consentirà più di una voce all'ora). Il registro eventi di sistema di ogni controller di dominio scrive l'evento avviso Directory-Services-SAM 16658.
Presumendo uno spazio RID globale di 30 bit predefinito, il primo evento viene registrato quando si alloca il pool contenente il RID numero 107.374.182. La frequenza degli eventi accelera spontaneamente fino all'ultimo checkpoint di 100.000, con 110 eventi generati in totale. Il comportamento è simile per lo spazio RID globale di 31 bit sbloccato: si inizia a 214.748.365 e si termina dopo 117 eventi.
Importante
Questo evento non è previsto. Analizzare immediatamente i processi di creazione di utenti, computer e gruppi nel dominio. La creazione di più di 100 milioni di oggetti Servizi di dominio Active Directory non è affatto normale.
Eventi di invalidamento del pool di RID
Esistono nuovi avvisi di evento indicanti che un pool di RID di un controller di dominio locale è stato rimosso. Sono informativi e prevedibili, soprattutto a causa della nuova funzionalità di controller di dominio virtuale. Per i dettagli dell'evento, vedere l'elenco di eventi seguente.
Limite della dimensione del blocco di RID
In genere, un controller di dominio richiede le allocazioni di RID in blocchi di 500 RID per volta. È possibile sostituire questa impostazione predefinita con il seguente valore REG_DWORD del Registro di sistema su un controller di dominio:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\RID Values
RID Block Size
Prima di Windows Server 2012, nessun valore massimo veniva applicato a questa chiave del Registro di sistema, tranne il valore massimo DWORD implicito (il cui valore è 0xffffffff o 4294967295). Questo valore è considerevolmente più grande dello spazio RID globale totale. Gli amministratori a volte configuravano in modo inappropriato o casuale la dimensione del blocco di RID con valori che esaurivano il RID globale a una velocità elevatissima.
In Windows Server 2012, questo valore del Registro di sistema può essere impostato al massimo su 15.000 nel sistema decimale (0x3A98 nel sistema esadecimale). Questo impedisce un'allocazione eccessiva involontaria di RID.
Se si imposta un valore superiore a 15.000, il valore considerato è comunque 15.000 e il controller di dominio registra l'evento 16653 nel registro eventi di Servizi directory a ogni riavvio finché il valore non è corretto.
Sblocco della dimensione dello spazio RID globale
Prima di Windows Server 2012, lo spazio RID globale era limitato a 230 (o 1.073.741.823) RID totali. Una volta raggiunto, solo una migrazione del dominio o il ripristino di una condizione precedente della foresta consentiva la creazione di nuovi SID: si trattava in pratica di un ripristino di emergenza. A partire da Windows Server 2012, è possibile sbloccare i 231 bit in modo da incrementare il pool globale fino a 2,147,483,648 RID.
Servizi di dominio Active Directory memorizza questa impostazione in un speciale attributo nascosto denominato SidCompatibilityVersion nel contesto RootDSE di tutti i controller di dominio. Questo attributo non è leggibile con ADSIEdit, LDP o altri strumenti. Per vedere un incremento nello spazio RID globale, cercare nel registro eventi di sistema l'evento di avviso 16655 di Directory-Services-SAM o usare il comando Dcdiag seguente:
Dcdiag.exe /TEST:RidManager /v | find /i "Available RID Pool for the Domain"
Se si incrementa il pool di RID globale, il pool disponibile verrà impostato su 2.147.483.647 invece che sul valore predefinito 1.073.741.823. Ad esempio:
Avviso
Questo sblocco ha il solo scopo di evitare l'esaurimento dei RID e deve essere usato solo insieme all'imposizione di un limite massimo per il RID (vedere la sezione successiva). Non impostarlo "preventivamente" in ambienti con milioni di RID rimanenti e una crescita bassa, perché esistono potenziali problemi di compatibilità delle applicazioni con i SID generati dal pool di RID sbloccato.
Questa operazione di sblocco non può essere invertita o rimossa, se non da un ripristino completo della foresta ai backup precedenti.
Avvertenze importanti
I controller di dominio di Windows Server 2003 e di Windows Server 2008 non possono rilasciare i RID quando il viene sbloccato il trentunesimo pool di RID globali. I controller di dominio Windows Server 2008 R2 possono usare RID al bit numero 31, ma solo se sono installati hotfix KB 2642658. I controller di dominio non supportati e senza patch considerano il pool di RID globale come esaurito quando viene sbloccato.
Questa funzionalità non viene applicata da tutti i livelli di funzionalità del dominio. Controllare con particolare attenzione che nel dominio esistano solo controller di dominio di Windows Server 2012 o di Windows Server 2008 R2 aggiornati.
Implementazione dello spazio RID globale sbloccato
Per sbloccare il pool di RID al bit numero 31 dopo aver ricevuto l'avviso relativo al limite massimo del RID (vedere sotto), eseguire i passaggi seguenti:
Verificare che il ruolo master RID sia in esecuzione su un controller di dominio di Windows Server 2012. In caso contrario, trasferirlo in un controller di dominio di Windows Server 2012.
Eseguire LDP.exe.
Dal menu Connessione, scegliere Connetti per il master RID di Windows Server 2012 sulla porta 389 e quindi fare clic su Binding come amministratore di dominio.
Selezionare il menu Sfoglia e selezionare Modifica.
Verificare che DN sia vuoto.
In Modifica attributo voce digitare:
SidCompatibilityVersion
In Valori digitare:
1
Verificare che Aggiungi sia selezionato in Operazione e selezionare Immetti. Elenco voci verrà aggiornato.
Selezionare le opzioni Sincrona ed Esteso, quindi fare clic su Esegui.
In caso di esito positivo, nella finestra di output LDP viene visualizzato:
***Call Modify... ldap_modify_ext_s(Id, '(null)',[1] attrs, SvrCtrls, ClntCtrls); modified "".
Per verificare l'incremento del pool di RID globale, cercare nel registro eventi di sistema su questo controller di dominio l'evento informativo Directory-Services-SAM 16655.
Imposizione del limite massimo per il RID
Per offrire una certa protezione e sensibilizzare maggiormente gli amministratori, in Windows Server 2012 è stato introdotto un limite massimo artificiale per l'intervallo di RID globale, che scatta quando rimane il 10% dei RID nello spazio globale. Se entro l'1% del limite massimo artificiale, i controller di dominio che richiedono i pool di RID scrivono l'evento di avviso Directory-Services-SAM 16656 nei registri eventi di sistema. Quando raggiungono il 10% del limite massimo per il ruolo FSMO del master RID, scrivono l'evento Directory-Services-SAM 16657 nel registro eventi di sistema e non allocheranno nessun altro pool di RID finché il limite massimo non viene sostituito. In questo modo non solo si è costretti a valutare lo stato del master RID nel dominio e a risolvere una potenziale allocazione eccessiva di RID, ma si evita anche che i domini esauriscano l'intero spazio RID.
Questo limite massimo è hardcoded al 10% dello spazio RID disponibile rimanente, vale a dire che il limite massimo viene attivato quando il master RID alloca un pool che include il RID corrispondente al 90% dello spazio RID globale.
Per i domini predefiniti, il primo punto trigger è 230-1 * 0,90 = 966.367.640 (o 107.374.183 RID rimanenti).
Per i domini con uno spazio RID di 31 bit sbloccato, il punto trigger è 231-1 * 0,90 = 1.932.735.282 RID (o 214.748.365 RID rimanenti).
Se attivato, il master RID imposta l'attributo di Active Directory msDS-RIDPoolAllocationEnabled (nome comune ms-DS-RID-Pool-Allocation-Enabled) su FALSE nell’oggetto:
CN=RID Manager$,CN=System,DC=<domain>
Viene scritto l'evento 16657 e si impedisce l'ulteriore rilascio di blocchi di RID a tutti i controller di dominio. I controller di dominio continuano a utilizzare i pool di RID in sospeso già rilasciati.
Per rimuovere il blocco e consentire il proseguimento dell'allocazione del pool di RID, impostare il valore su TRUE. Nell'allocazione di RID successiva eseguita dal master RID, verrà ripristinato il valore predefinito NOT SET dell'attributo. In seguito non sono previsti altri limiti massimi e infine lo spazio RID globale si esaurisce e si rende necessario il ripristino della foresta o la migrazione del dominio.
Rimozione del blocco di limite massimo
Per rimuovere il blocco una volta raggiunto il limite massimo artificiale, eseguire i passaggi seguenti:
Verificare che il ruolo master RID sia in esecuzione su un controller di dominio di Windows Server 2012. In caso contrario, trasferirlo in un controller di dominio di Windows Server 2012.
Eseguire LDP.exe.
Dal menu Connessione, scegliere Connetti per il master RID di Windows Server 2012 sulla porta 389 e quindi fare clic su Binding come amministratore di dominio.
Selezionare il menu Visualizza e selezionare Albero, quindi per Nome distinto di base selezionare il contesto di denominazione del dominio del master RID. Selezionare OK.
Nel pannello di navigazione, scorrere nel contenitore CN=System e fare clic sull'oggetto CN=RID Manager$. Selezionarlo con il pulsante destro del codice e selezionare Modifica.
In Modifica attributo voce digitare:
MsDS-RidPoolAllocationEnabled
In Valori digitare (in maiuscolo):
TRUE
Selezionare Sostituisci in Operazione e quindi INVIO. Elenco voci verrà aggiornato.
Abilitare le opzioni Sincrona ed Esteso, quindi fare clic su Esegui:
In caso di esito positivo, nella finestra di output LDP viene visualizzato:
***Call Modify... ldap_modify_ext_s(ld, 'CN=RID Manager$,CN=System,DC=<domain>',[1] attrs, SvrCtrls, ClntCtrls); Modified "CN=RID Manager$,CN=System,DC=<domain>".
Altre correzioni relative al RID
Nei precedenti sistemi operativi Windows Server si verifica una perdita di pool di RID quando l'attributo rIDSetReferences è mancante. Per risolvere questo problema nei controller di dominio che eseguono Windows Server 2008 R2, installare l'hotfix da KB 2618669.
Problemi del RID non risolti
È sempre esistita una perdita di RID in caso di errore di creazione di un account. Quando si crea un account, l'errore causa ancora il consumo di un RID. L'esempio più comune è la creazione di un utente con una password che non soddisfa i requisiti di complessità.
Correzioni relative al RID per versioni precedenti di Windows Server
Tutte le correzioni e le modifiche illustrate sopra sono state rilasciate come hotfix per Windows Server 2008 R2. Nessun hotfix per Windows Server 2008 è attualmente pianificato o in corso.
Risoluzione dei problemi relativi al rilascio di RID
Introduzione alla risoluzione dei problemi
La risoluzione dei problemi di rilascio di RID richiede un metodo logico e lineare. A meno che non si monitorino attentamente i registri eventi per individuare gli avvisi e gli errori generati dal RID, le prime indicazioni di un problema saranno probabilmente date da creazioni di account non riuscite. Per risolvere i problemi di rilascio di RID, è indispensabile comprendere quando il sintomo è previsto oppure no. Molti problemi di rilascio di RID potrebbero interessare un solo controller di dominio e non avere nulla a che fare con i miglioramenti dei componenti. Il semplice diagramma seguente aiuta a decidere più facilmente:
Opzioni di risoluzione dei problemi
Opzioni di registrazione
Tutta la registrazione nel rilascio di RID viene eseguita nel registro eventi di sistema, in Directory-Services-SAM di origine. La registrazione è abilitata e configurata per il massimo livello di dettaglio. Se non vengono registrate voci per le modifiche dei nuovi componenti in Windows Server 2012, trattare il problema come un classico (ovvero legacy, prima di Windows Server 2012) problema di rilascio di RID in Windows 2008 R2 o sistemi operativi precedenti.
Utilità e comandi per la risoluzione dei problemi
Per risolvere i problemi non spiegati dai log menzionati in precedenza, in particolare i problemi di rilascio di RID precedenti, usare l'elenco seguente di strumenti come punto di partenza:
Dcdiag.exe
Repadmin.exe
Network Monitor 3.4
Metodologia generale per la risoluzione dei problemi di configurazione dei controller di dominio
L'errore è causato da un semplice problema di autorizzazioni o di disponibilità del controller di dominio?
Si sta cercando di creare un'entità di sicurezza senza le autorizzazioni necessarie? Esaminare l'output per individuare errori di accesso negato.
È disponibile un controller di dominio? Esaminare l'errore restituito oppure i messaggi sulla disponibilità di LDAP o del controller di dominio.
L'errore restituito cita alcuni RID in particolare ed è abbastanza specifico per ricavarne delle linee guida? Se sì, seguire le linee guida.
L'errore restituito cita alcuni RID in particolare, ma non fornisce altre indicazioni specifiche? Ad esempio, "Impossibile creare l'oggetto a causa dell'errore: Il servizio directory non è in grado di allocare l'identificatore relativo".
Esaminare il registro eventi di sistema sul controller di dominio per gli eventi RID "legacy" (pre-Windows Server 2012) descritti in dettaglio in Richiesta pool RID (16642, 16643, 16644, 16645, 16656).
Esaminare l'evento di sistema sul controller di dominio e il master RID per individuare nuovi eventi indicanti un blocco descritti in dettaglio più avanti in questo articolo (16655, 16656, 16657).
Convalidare l'integrità della replica di Active Directory con Repadmin.exe e la disponibilità del master RID con Dcdiag.exe /test:ridmanager /v. Se questi test sono inconcludenti, abilitare le acquisizioni di rete su due lati tra il controller di dominio e il master RID.
Risoluzione di problemi specifici
I nuovi messaggi seguenti vengono registrati nel registro eventi di sistema sui controller di dominio di Windows Server 2012. I sistemi di registrazione dell'integrità AD automatizzata, come System Center Operations Manager, monitoreranno questi eventi. Sono tutti rilevanti e alcuni sono indicatori di problemi critici dei domini.
ID evento | 16653 |
---|---|
Origine | Directory-Services-SAM |
Gravità | Avviso |
Messaggio | Una dimensione del pool per gli identificatori di account (RID) configurata da un amministratore supera il limite massimo supportato. Quando il controller di dominio sarà il master RID, verrà utilizzato il valore massimo %1. Per ulteriori informazioni, vedere Limite della dimensione del blocco RID. |
Note e risoluzione | Il valore massimo per la dimensione del blocco RID è ora 15000 nel sistema decimale (3A98 nel sistema esadecimale). Un controller di dominio non può richiedere più di 15.000 RID. Questo evento viene registrato a ogni bootstrap finché il valore viene impostato su un valore pari o inferiore a questo valore massimo. |
ID evento | 16654 |
---|---|
Origine | Directory-Services-SAM |
Gravità | Informazioni |
Messaggio | Un pool di identificatori di account (RID) è stato invalidato. Questa situazione può verificarsi nei seguenti casi previsti: 1. Un controller di dominio viene ripristinato da un backup. 2. Un controller di dominio in esecuzione in una macchina virtuale viene ripristinato da uno snapshot. 3. Un amministratore ha invalidato manualmente il pool. Per altre informazioni, vedere https://go.microsoft.com/fwlink/?LinkId=226247. |
Note e risoluzione | Se questo evento è imprevisto, contattare tutti gli amministratori di dominio e determinare chi tra essi ha eseguito l'azione. Il registro eventi Servizi directory contiene anche altre informazioni su quando è stato eseguito uno di questi passaggi. |
ID evento | 16655 |
---|---|
Origine | Directory-Services-SAM |
Gravità | Informazioni |
Messaggio | Il limite massimo globale per gli identificatori di account (RID) è stato portato a %1. |
Note e risoluzione | Se questo evento è imprevisto, contattare tutti gli amministratori di dominio e determinare chi tra essi ha eseguito l'azione. Questo evento evidenzia l'incremento della dimensione totale del pool di RID oltre il valore predefinito di 230 e non si verificherà automaticamente, ma solo in seguito a un'azione amministrativa. |
ID evento | 16656 |
---|---|
Origine | Directory-Services-SAM |
Gravità | Avviso |
Messaggio | Il limite massimo globale per gli identificatori di account (RID) è stato portato a %1. |
Note e risoluzione | Azione necessaria: un pool di identificatori di account (RID) è stato allocato al controller di dominio corrente. Il valore del pool indica che il dominio ha utilizzato una parte considerevole degli identificatori di account disponibili. Verrà attivato un meccanismo di protezione quando il dominio raggiungerà la soglia di identificatori di account disponibili seguente: %1. Tale meccanismo impedirà la creazione di account finché non si riabiliterà manualmente l'allocazione di identificatori di account sul controller di dominio del master RID. Per altre informazioni, vedere https://go.microsoft.com/fwlink/?LinkId=228610. |
ID evento | 16657 |
---|---|
Origine | Directory-Services-SAM |
Gravità | Errore |
Messaggio | Azione necessaria: il dominio ha utilizzato una parte considerevole degli identificatori di account (RID) disponibili. È stato attivato un meccanismo di protezione in quanto gli identificatori di account disponibili rimanenti sono meno di: X% [argomento limite massimo artificiale]. Tale meccanismo impedisce la creazione di account finché non si riabilita manualmente l'allocazione di identificatori di account sul controller di dominio del master RID. È estremamente importante eseguire determinate operazioni diagnostiche prima di riabilitare la creazione di account per garantire che il dominio non utilizzi gli identificatori di account in modo eccessivo. Eventuali problemi rilevati devono essere risolti prima di riabilitare la creazione di account. Se i problemi sottostanti che causano un tasso eccessivo di utilizzo degli identificatori di account non vengono diagnosticati e risolti, gli identificatori di account potrebbero esaurirsi nel dominio, dopo di che la creazione di account verrebbe disabilitata in modo permanente nel dominio. Per altre informazioni, vedere https://go.microsoft.com/fwlink/?LinkId=228610. |
Note e risoluzione | Contattare tutti gli amministratori di dominio e informarli che non è possibile creare altre entità di sicurezza in questo dominio finché la protezione non viene sostituita. Per altre informazioni sulla sostituzione della protezione e sulla possibilità di incrementare il pool di RID generale, vedere Sblocco della dimensione dello spazio del RID globale. |
ID evento | 16658 |
---|---|
Origine | Directory-Services-SAM |
Gravità | Avviso |
Messaggio | Questo evento è un aggiornamento periodico sulla quantità totale rimanente di identificatori di account (RID) disponibili. Il numero di identificatori di account rimanenti è circa: %1. Gli identificatori di account vengono utilizzati per la creazione di account e quando si esauriscono non è più possibile creare nuovi account nel dominio. Per altre informazioni, vedere https://go.microsoft.com/fwlink/?LinkId=228745. |
Note e risoluzione | Contattare tutti gli amministratori di dominio e informarli che l'utilizzo del RID ha superato un'attività cardine principale. Determinare se questo comportamento sia previsto o meno esaminando gli schemi di creazione del dominio trusted di sicurezza. In realtà questo evento è del tutto insolito, in quanto significa che sono stati allocati circa 100 milioni di RID. |