A volte è necessario controllare come si comporta il DNS, al di là della semplicità o complessità della sua configurazione. Oggi per fortuna i computer sono dotati di un'utilità integrata che può aiutarti in queste verifiche. Questa risorsa mostra i comandi utili del Prompt dei comandi di Windows e di PowerShell, evidenziando anche le differenze tra le due shell. Vogliamo iniziare? Beh, siamo qui per questo, dunque partiamo! Ah, ma tu sei già avanti, no? Probabilmente hai saltato questa parte e sei già ai comandi. Bene. Iniziamo sul serio allora.
Nota: tutti gli esempi provengono da un sistema con Windows 10.
Windows ha introdotto il Prompt dei comandi (CMD) originale sui sistemi operativi Microsoft nel 1981. Questo programma lavora "sotto" Windows e ti permette di avere più controllo sul tuo sistema. Viene eseguito in una semplice finestra nera che visualizza un prompt. A seconda del tuo computer, il prompt può essere simile a questo: C:\> o C:\Users\esempio. Con questo strumento è possibile eseguire comandi a riga singola.
PowerShell è stato rilasciato per la prima volta su Windows nel 2006. Questa shell viene eseguita in una finestra blu e utilizza i comandi cmdlet invece dei comandi CMD o MS-Dos. Dispone inoltre di un sistema di scripting e funzionalità amministrative integrate, e può eseguire comandi batch. Questo ti permette di completare una serie di cmdlet anziché un solo comando alla volta. A differenza del Prompt dei comandi, PowerShell non si limita ai programmi della console. La versione attuale gira su .Net 5.0, che supporta Linux e macOS. PowerShell può anche accedere a più librerie in diversi sistemi.
Esistono diversi modi per avviare il Prompt dei comandi di Windows. Un modo è quello di fare clic sull'icona di ricerca nella barra delle applicazioni e digitare "prompt dei comandi" o "cmd". Così facendo dovresti visualizzare l'applicazione nella parte superiore della finestra di ricerca, alla voce "Miglior corrispondenza".
Se, come me, apprezzi le scorciatoie da tastiera, premi Win + R per richiamare il comando Esegui. Digita cmd e fai clic su Ok. Ecco fatto, sei dentro!
L'accesso a PowerShell richiede la stessa identica procedura del Prompt dei comandi di Windows. Anziché digitare cmd, digita PowerShell nella finestra Cerca o Esegui. Utilizzando l'opzione di ricerca i risultati cambiano. Se segui il percorso di ricerca, vedrai un'opzione per Windows PowerShell e una per PowerShell ISE. In questa risorsa utilizzerò la versione base di Windows PowerShell.
In alternativa, puoi premere Win + X e verrà visualizzato un nuovo menu. In questo modo potrai accedere a PowerShell anche come amministratore. Questo menu include anche Esegui e molte altre utilità di Windows.
Sapevi che?: PowerShell ISE è un'applicazione host per PowerShell. ISE è l'acronimo di Integrated Scripting Environment. Questa opzione offre un'interfaccia, mentre PowerShell standard è più simile al Prompt dei comandi.
Finalmente arriviamo alla parte interessante! Ecco alcuni comandi CMD di Windows che possono aiutarti a risolvere problemi o a verificare il tuo DNS. Non preoccuparti. Avevo previsto tutto. Farò finta che tu non abbia saltato tutte le informazioni precedenti e stia iniziando da qui.
Il comando nslookup è utile per diagnosticare i problemi di risoluzione dei nomi DNS. È un comando paragonabile alla funzione dig di Mac o Linux. Può trovare l'indirizzo IP di un host o eseguire una ricerca DNS inversa (per trovare il nome di dominio di un IP). Nslookup può anche darti informazioni sui record DNS del tuo dominio.
Un comando nslookup può apparire così: C:\Users\username>nslookup dnsmadeeasy.com
In questo esempio, ho effettuato una semplice richiesta dell'indirizzo IP per DNS Made Easy. In risposta, ho ricevuto gli indirizzi IPv6 e IPv4 per il dominio. Il motivo per cui mi dice "risposta non autorevole" è perché sto usando un server ricorsivo per la query.
Se hai un indirizzo IP e ti serve il nome di dominio, puoi fare una ricerca DNS inversa. Funziona come nell'esempio precedente, ma al contrario, come avrai intuito:
C:\Users\username>nslookup 162.243.68.201
Supponiamo che tu voglia trovare il nameserver di un dominio o impostare un parametro specifico nella riga di comando. Per farlo, puoi usare il comando set di Windows. Ecco un esempio:
C:\Users\username>nslookup
>set q=ns
>dnsmadeeasy.com
(premi invio dopo ogni comando)
Il risultato dovrebbe essere simile a questo:
Puoi utilizzare i comandi nslookup e set anche per verificare o risolvere i problemi dei record DNS del tuo dominio. La procedura è identica all'esempio precedente, ma devi specificare quale record vuoi interrogare. Grazie a queste informazioni potrai risolvere con rapidità eventuali errori o problemi. Nella schermata in basso, ho eseguito una ricerca per i record MX, PTR e SOA, ma ovviamente puoi cercare anche altro.
C:\Users\username>nslookup
>set q=mx
>dnsmadeeasy.com
(premi invio dopo ogni comando)
Consiglio: se stai controllando più tipi di record, non hai bisogno di digitare "nslookup" per ognuno di questi. Dopo il comando iniziale di nslookup, puoi eseguire i comandi set per ogni record. Questo vale anche se inizi a verificare i record di un altro dominio.
Consiglio: potrebbe essere utile cancellare la cache DNS prima di eseguire i comandi. Per farlo, digita: ipconfig/flushdns e poi premi invio. Ora la cache dovrebbe essere cancellata.
Per conoscere altri dettagli sul DNS del tuo dominio, puoi utilizzare il comando debug. Questo comando ti fornisce le informazioni sull'intestazione delle richieste del server DNS (vedi schermata sotto).
C:\Users\username>nslookup
>set debug
>example.com
Per la diagnostica di rete, in CMD puoi eseguire un comando ping. Un ping misura la latenza di una connessione per una posizione target. Per dimostrazione, eseguo ora un test ping utilizzando 8.8.8.8, l'indirizzo DNS pubblico di Google.
C:\Users\username>Ping 8.8.8.8
Questo è il tempo di andata e ritorno, impiegato per ottenere una risposta dal server a cui è stato inviato il ping.
Un altro comando utile per la diagnostica della rete è il comando traceroute. Un traceroute traccia il percorso di un pacchetto, dal punto di partenza alla destinazione. Questa funzionalità è utile soprattutto per risolvere i problemi di connettività. Nella seguente illustrazione, eseguirò un traceroute per il nome di dominio www.example.com e per il suo indirizzo IP.
C:\Users\username>tracert 127.0.0.1
C:\Users\username>tracert www.example.com
Il comando verifica il percorso seguito dai pacchetti per arrivare a destinazione. Le varie fermate indicate sono chiamate anche hops (salti). Oltre al numero di hops, puoi vedere il tempo di risoluzione della query. Queste informazioni possono aiutarti a migliorare la velocità del tuo DNS o a identificare i router problematici.
Consiglio: il Prompt dei comandi conserva la cronologia dei comandi recenti. Se vuoi vedere un comando inserito in precedenza nella sessione, premi il tasto freccia su per scorrerli. Guarda l'esempio della GIF qui sotto per capire come funziona.
Se Windows PowerShell è la tua utilità preferita, questa è la sezione per te. Questi sono gli equivalenti PowerShell dei comandi Windows sopra indicati:
Nslookup in PowerShell = Resolve-DnsName
PS C:\Users\username>Resolve-DnsName dnsmadeeasy.com (o C:\Users\username>Resolve-DnsName 162.243.68.201)
Consiglio: per risparmiare tempo in PowerShell, digita le prime lettere di un cmdlet e poi premi Tab per la compilazione automatica del resto. Ad esempio, se digiti "reso" e poi premi tab (reso + tab), PowerShell visualizzerà Resolve-DnsName. La procedura è uguale per altri cmdlet come Test-Connection. Inizia a digitare "test-con" e poi premi il tasto tab per visualizzare Test-Connection, ecc."
Per le ricerche dei record PowerShell utilizza il cmdlet Resolve-DnsName. Per specificare il tipo di record, devi aggiungere "-type" per completare il cmdlet.
PS C:\Users\username>Resolve-DnsName dnsmadeeasy.com -Type MX (o altro record a tua scelta).
Nota che quando ho inserito -Type o -type, il cmdlet è stato eseguito allo stesso modo, quindi non fa distinzione tra maiuscole o minuscole
Ping in PowerShell = Test-Connection
PS C:\Users\username>Test-Connection dnsmadeeasy.com
I risultati sembrano diversi, ma vengono comunque visualizzati l'origine (nome del computer) e i salti (hops), oltre al tempo impiegato per ricevere una risposta.
Tracert in PowerShell = tracert – yes, questa volta il cmdlet ha lo stesso nome del comando CMD.
PS C:\Users\username>tracert example.com
Per risolvere i problemi DNS sono disponibili anche ottime risorse online. Questi strumenti sono particolarmente utili perché sono accessibili ovunque e su tutti i dispositivi. Ad esempio, lo strumento DNS Lookup di Constellix (nostra consociata) può recuperare i record DNS ed eseguire controlli in base alla posizione geografica. Effettuerà inoltre una query su qualsiasi nameserver specificato. I record supportati sono A, AAAA, CNAME, MX, TXT, NS, SOA e SRV.
L'utilizzo dello strumento DNS Lookup di Constellix offre anche altri vantaggi. È possibile eseguire controlli su diversi domini e/o nameserver nella stessa sessione. I risultati si possono filtrare per dominio, tipo di record, resolver o posizione e puoi espandere o minimizzare ogni verifica. Puoi anche copiare l'URL dei risultati e inviarlo via email al tuo team, rendendo tutto più semplice e veloce.
Con le opzioni mostrate sopra puoi verificare il tuo DNS e risolvere vari problemi. Punti chiave: Il Prompt dei comandi, PowerShell e gli strumenti DNS online ti forniscono nameserver, istruzioni di record e altre informazioni DNS, ma ognuno funziona in modo diverso. CMD utilizza comandi a riga singola, mentre PowerShell utilizza i cmdlet e può eseguire comandi batch. Risorse come lo strumento online DNS Lookup di Constellix eseguono controlli in base ai dati che inserisci.
Naturalmente, queste istruzioni non sono minimamente paragonabili a una guida completa per il Prompt dei comandi o per PowerShell. Una guida completa ti offre molto di più. Ma qui di seguito ti indichiamo alcuni link utili per approfondire la tua conoscenza di entrambe le utilità.
Se ti è piaciuto questo articolo, potresti trovare utili queste risorse: