Ricostruzione delle zone DNS relative ad Active Directory

Per le cause più disparate può accadere che all’interno del DNS vi siano una o più zone non funzionanti o con errori.

Dal punto di vista della struttura DNS di un Domain Controller possiamo notare che di default vengono create due zone, ad esempio per il dominio test.local, dove questo è anche il Root Domain della foresta troveremo:

  • _msdcs.test.local
  • test.local

entrambe zone primarie ed integrate in AD

La prima zona è quella “di foresta” ossia la zona che viene creata con la promozione del primo DC che è anche il Root Domain Controller, mentre la seconda zona è quella relativa al dominio vero e proprio, che in questo caso essendo il primo dominio installato nella foresta prende anche il nome di Root Forest Domain.

 

dnsadreconstruction1

Come si può vedere nell’immagine il DNS contiene anche una seria di informazioni relative ad altri host connessi in rete, il DNS è quindi, come di solito avviene, utilizzato per il normale funzionamento dell’infrastuttura.

Nell’ambiente di test realizzato, per simulare un malfunzionamento, sono state rimosse le varie impostazioni relative alla zona di dominio test.local ed è stata anche rimossa la zona _msdcs.test.local relativa alla Foresta.

A questo punto il comando dcdiag /test:dns riportava diversi errori

                     Error:                     Missing SRV record at DNS server 192.168.1.30:      _kerberos._tcp.dc._msdcs.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:       _ldap._tcp.dc._msdcs.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:       _ldap._tcp.Default-First-Site-Name._sites.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:       _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:         _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:         _kerberos._tcp.Default-First-Site-Name._sites.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:            _ldap._tcp.gc._msdcs.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:               _gc._tcp.Default-First-Site-Name._sites.test.local
                     Error:                     Missing SRV record at DNS server 192.168.1.30:        _ldap._tcp.Default-First-Site-Name._sites.gc._msdcs.test.local
                     Error:     Missing SRV record at DNS server 192.168.1.30:  _ldap._tcp.pdc._msdcs.test.local
               Error: Record registrations cannot be found for all the network
                                                  Auth Basc Forw Del  Dyn  RReg Ext
           _________________________________________________________________
            Domain: test.local
               srvdc03                      PASS FAIL PASS PASS PASS FAIL n/a
         ……………………. test.local failed test DNS

Per ricreare automaticamente le zone non funzionanti è sufficiente riavviare il servizio Netlogon

Tuttavia se questo non avviene, o se le zone sono state rimosse completamente è necessario, prima ricrearle manualmente e solo successivamente effettuare un restart del servizio ( ricrearle nel senso di definire le due zone con il nome come visto sopra ed integrate in AD) la “popolazione” vera e propria delle zone verrà fatta da Netlogon 

dnsadreconstruction4

dnsadreconstruction5

 

A questo punto dopo che  Netlogon è riavviato vedremo le Zone completamente popolate.

Recupero dei dati contenuti all’interno di una zona DNS

Come visto in precedenza il DNS è utilizzato anche per le normali funzioni di rete e quindi la cancellazione della zona test.loc prima della sua rigenerazione potrebbe essere causa di malfunzionamenti, in questo caso è possibile PRIMA di eliminare la zona dal DNS effettuare un salvataggio del suo contenuto.

Per “esportare” i dati contenuti è sufficiente definire  la zona stessa come standard rimuovendo il flag che la imposta come integrata in AD

dnsadreconstruction2

Una volta rimosso il flag e salvate le impostazioni in %SystemRoot%\System32\DNS\ copiare il file relativo alla zona, al suo interno, in formato testo è presente l’intera struttura che prima era integrata in AD.

All’inizio del file troveremo alcune informazioni relative alle impostazioni TTL, SOA Seriale etc. questa parte del file potremo tranquillamente eliminarla, manterremo soltanto il contenuto vero e proprio relativo ai vari record A che definiscono le vere informazioni ancora mancanti nel DNS

Automazione dell’import dei Record tramite PoweShell

Una procedura automatizzata è possibile tramite PowerShell, per mezzo di questo ambiente con poche righe di istruzioni è possibile importare il contenuto del file testo.

Il commandlet Add-DnsServerResourceRecordA può essere utilizzato per questa operazione mentre con il commadlet Get-Content viene letto il contenuto del file di testo

 

$DnsRecord = Get-Content C:\temp\test.local.dns

foreach ($line in $DnsRecord)

{

 

$DnsHost = $line.Split()|where {$_}

Add-DnsServerResourceRecordA -Name $DnsHost[0] -IPv4Address $DnsHost[2] -ZoneName test.local

}

 

Se dovessero essere presenti record differenti rispetto al tipo “A” occorre modificare di conseguenza lo script in PS

 

 

 

 

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...