I record DNS sono tipicamente gestiti in modo dinamico dal tuo server DNS. Tuttavia, a volte potresti trovare la necessità di creare, modificare o rimuovere manualmente vari tipi di record DNS. O addirittura aggiungere varie attività DNS agli script di automazione. È in momenti come questi che l’utilizzo dei cmdlet DNS di PowerShell è la strada da seguire.
Questo post del blog ha un video correlato creato dal collaboratore di TechSnips, David Lamb. Sentiti libero di guardarlo o, se preferisci il testo, continua a leggere!
Visualizzazione dei record DNS con i cmdlet DNS di PowerShell
Puoi visualizzare tutti i record di risorse per una determinata zona DNS semplicemente utilizzando il cmdlet DNS di PowerShell Get-DnsServerResourceRecord
. Utilizzando questo cmdlet, puoi specificare il parametro ZoneName
che elencherà tutti i record DNS in quella zona.
Come puoi vedere qui sotto, questo genera una lista piuttosto lunga di record.

Questo comportamento mette in evidenza uno dei vantaggi di questo particolare cmdlet rispetto alla console DNS grafica. La vista ti offre tutti i record per questa zona, indipendentemente dalla cartella in cui si trovano. Nella console grafica, ci vorrebbe parecchio tempo per mettere insieme queste informazioni.
Ora riduci un po’ questa lista. Utilizzando lo stesso cmdlet, ma aggiungendo il parametro RRType
per cercare i record A (host IPv4) e filtrando i record in cui il Time To Live (TTL) è superiore a 15 minuti, otteniamo una lista più gestibile. Puoi utilizzare il cmdlet Where-Object
per filtrare molte diverse proprietà dei record DNS.

Andando un passo avanti, puoi anche cercare record in una diversa zona DNS e persino su server DNS diversi.
Nell’esempio qui sotto, cercheremo record A nella zona canada.corp.ad sul server DNS DC03

Aggiunta e rimozione di record host A
Per aggiungere un record host, dovrai utilizzare il cmdlet PowerShell DNS Add-DnsServerResourceRecordA
. Nell’esempio qui sotto, devi aggiungere un record host per una nuova stampante che stai aggiungendo alla rete. Sarà aggiunto alla zona corp.ad con il nome reddeerprint01 e il suo indirizzo IP è 192.168.2.56.

Se si scopre che è necessario rimuovere un record, ad esempio perché la stampante è stata dismessa, è possibile utilizzare il codice seguente per rimuovere il record host che abbiamo appena creato:
Aggiunta e rimozione di record host AAAA
È altrettanto facile aggiungere un record di host IPv6. Naturalmente, questi record sono leggermente diversi, in quanto vengono elencati come record AAAA. Potresti notare che ora stiamo utilizzando il cmdlet di PowerShell DNS Add-DnsServerResourceRecordAAAA
. È un cambiamento subdolo, ma importante.
Aggiungi un record alla zona corp.ad per il nuovo server IT Intranet a fc00:0128 e verifica rapidamente che sia stato creato con il seguente comando.

Aggiunta di record di ricerca inversa (PTR)
Utilizzando i cmdlet di PowerShell DNS, è anche possibile aggiungere record PTR. Un record di ricerca inversa consente al client di richiedere al server DNS il nome host per un determinato indirizzo IP.
Creare un record PTR è un processo relativamente semplice, ma c’è una informazione importante che devi conoscere prima di iniziare ad aggiungere i record PTR. Le zone di ricerca inversa non vengono create automaticamente. Dovrai configurare la tua zona di ricerca inversa prima di aggiungere i record. Fortunatamente, è relativamente facile farlo.
Creazione di una zona DNS
Utilizza il cmdlet di PowerShell DNS Add-DnsServerPrimaryZone
per creare una nuova zona DNS. In questo esempio, poiché stai creando una zona di ricerca inversa, fornisci l’ID di rete.
In questo esempio, ho scelto anche di impostare la portata di replica sull’intera foresta AD e ho specificamente selezionato DC03 come server DNS preferito.

Ora che la zona di ricerca inversa è pronta, puoi aggiungere un record PTR per una nuova stampante chiamata CYQF-Printer-01.canada.corp.ad che ha un indirizzo IP di 192.168.2.56. Poiché questo record è per la zona canada.corp.ad, dovrai indirizzarti al server DNS DC03.
Ora che la zona è creata, creiamo un record PTR utilizzando il comando Add-DnsServerResourceRecordPtr
. Quando si utilizza questo cmdlet, è importante notare un paio di cose.
- È necessario specificare il nome della zona utilizzando l’ID di rete in ordine inverso, quindi aggiungere .in-addr.arpa. Quindi, per il nostro ID di rete 192.168.2.0/24, il nome della zona è 2.168.192.in-addr.arpa.
- Il parametro
Name
è la parte host dell’indirizzo IP. Per la nostra stampante a 192.168.2.56, ilName
è 56.
Una volta che hai queste informazioni, il codice necessario per creare il record PTR è relativamente semplice, se un po’ lungo:

Aggiunta di record alias (CNAME)
Per completare questo tutorial, crea un record alias host o un record CNAME utilizzando il cmdlet Add-DnsServerResourceRecordCName
.
Questi record ti consentono di specificare un alias per un record host esistente nella zona. Ciò diventa particolarmente utile, ad esempio, se desideri fornire agli utenti del reparto finanziario un indirizzo per la loro applicazione finanziaria basata sul web.
Potresti creare un alias chiamato finance e collegarlo all’applicazione webserver webapp25.corp.ad. Una volta che l’applicazione sarà migrata al nuovo webserver con un nuovo nome host, dovrai modificare il record CNAME per puntare finance verso il nuovo host. In questo modo, gli utenti non dovranno aggiornare i loro segnalibri. Potranno continuare ad accedere all’applicazione utilizzando l’indirizzo finance.corp.ad.

Se desideri approfondire l’argomento del DNS e conoscere alcune funzionalità avanzate, assicurati di dare un’occhiata a tutti gli altri articoli sul DNS qui.
Riepilogo
Con questo si conclude il nostro tutorial sull’utilizzo di PowerShell con i record DNS. Con le conoscenze acquisite qui, ora dovresti essere in grado di gestire in modo interattivo o addirittura automatizzare grandi porzioni di record DNS se ti metti in testa di farlo!