In qualità di amministratori di sistema, spesso le cose sembrano procedere senza intoppi… fino a quando non si verifica un problema. In quei momenti di crisi, questi comandi dig si rivelano strumenti preziosi. Continuate a leggere.
Gli amministratori di sistema svolgono un lavoro incredibilmente impegnativo, sempre sotto pressione. L’esigenza di essere disponibili 24 ore su 24, 7 giorni su 7 è una responsabilità che va ben oltre le normali aspettative.
Ma non ci soffermeremo sul loro profilo professionale; piuttosto, analizzeremo il loro strumento preferito per risolvere le problematiche DNS.
Cosa sono i comandi dig?
L’acronimo dig sta per “Domain Information Groper”. I comandi dig sono tra i metodi più rapidi per interrogare i server DNS, identificando ciò che funziona e cosa no.
È possibile verificare l’indirizzo IP del server, i nameserver, i record MX (Mail Exchange), richiedere il TTL (Time To Live), e molto altro, usando semplici comandi di testo.
Prima di passare ai comandi dig di base, è consigliabile verificare se le utility dig sono installate sul sistema:
$ dig -v
Questo comando dovrebbe restituire un output simile, indicando la versione di dig:
DiG 9.18.1-1ubuntu1-Ubuntu
Se la risposta non è simile a quella sopra, sarà necessario installare le utility dig.
Per gli utenti di Ubuntu e Debian, il comando da utilizzare è:
$ sudo apt-get install dnsutils
Mentre per coloro che utilizzano CentOS o RHEL, il comando corretto è:
$ sudo yum install bind-utils
Dopo aver completato l’installazione, eseguire nuovamente `dig -v` per assicurarsi che l’installazione sia stata eseguita senza intoppi.
Infine, nelle sezioni seguenti, analizzeremo alcuni comandi dig utili per un amministratore di sistema.
Verifica dell’indirizzo IP
Questo è uno dei comandi più elementari, in cui verifichiamo l’indirizzo IP del server associato a un nome di dominio.
Il comando di base è `dig winadmin.it.com`.
$ dig winadmin.it.com ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> winadmin.it.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38635 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;winadmin.it.com. IN A ;; ANSWER SECTION: winadmin.it.com. 67 IN A 172.66.43.163 winadmin.it.com. 67 IN A 172.66.40.93 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Nov 09 04:29:58 UTC 2022
L’aspetto fondamentale è lo status: `NOERROR` nella sezione `Got answer`, che indica che l’operazione è stata eseguita correttamente.
Le informazioni che stiamo cercando, tuttavia, sono gli indirizzi IP del server. Questi si trovano nella sezione `Answer`, in particolare `172.66.40.93` (il server principale) e `172.66.43.163` (il server di backup).
La query originale è riportata nella sezione `Question`.
L’ultima sezione contiene alcune statistiche relative alla query.
Tuttavia, queste informazioni non sono sempre necessarie. Per ottenere una risposta più sintetica, si può usare il comando:
$ dig winadmin.it.com +noall +answer winadmin.it.com. 53 IN A 172.66.43.163 winadmin.it.com. 53 IN A 172.66.40.93
In questo caso, con `+noall` escludiamo tutte le informazioni, ad eccezione della risposta con `+answer`.
È possibile ottenere un output ancora più conciso con il comando:
$ dig winadmin.it.com +short 172.66.43.163 172.66.40.93
Questo comando restituisce i record DNS A; ora ne analizzeremo altri.
Individuazione di Record DNS Specifici
I nameserver, ovvero i server DNS autorevoli per un dominio, possono essere identificati tramite la variabile `ns`.
$ dig winadmin.it.com ns +short olga.ns.cloudflare.com. todd.ns.cloudflare.com.
Analogamente, la variabile `mx` fornisce i server di posta, indicando anche le loro priorità.
$ dig winadmin.it.com mx +noall +answer winadmin.it.com. 300 IN MX 1 aspmx.l.google.com. winadmin.it.com. 300 IN MX 10 alt3.aspmx.l.google.com. winadmin.it.com. 300 IN MX 10 alt4.aspmx.l.google.com. winadmin.it.com. 300 IN MX 5 alt1.aspmx.l.google.com. winadmin.it.com. 300 IN MX 5 alt2.aspmx.l.google.com.
Allo stesso modo, `txt`, `aaaa`, `cname` e altre variabili possono essere usate come comandi dig per visualizzare differenti record DNS.
Tracciamento DNS
Come suggerisce il nome, “Tracciamento DNS” controlla il percorso dai server dei nomi root ai server dei nomi autorevoli, fino all’indirizzo IP del dominio.
$ dig winadmin.it.com +trace ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> winadmin.it.com +trace ;; global options: +cmd . 322660 IN NS a.root-servers.net. . 322660 IN NS b.root-servers.net. . 322660 IN NS c.root-servers.net. . 322660 IN NS d.root-servers.net. . 322660 IN NS e.root-servers.net. . 322660 IN NS f.root-servers.net. . 322660 IN NS g.root-servers.net. . 322660 IN NS h.root-servers.net. . 322660 IN NS i.root-servers.net. . 322660 IN NS j.root-servers.net. . 322660 IN NS k.root-servers.net. . 322660 IN NS l.root-servers.net. . 322660 IN NS m.root-servers.net. ;; Received 811 bytes from 127.0.0.53#53(127.0.0.53) in 16 ms com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766 com. 86400 IN RRSIG DS 8 1 86400 20221121170000 20221108160000 18733 . ZgW2dKMBP6rqIgQSGN5uzFhNFZuIPUg7JrkXzgE9VKh68LOIuQlFgTTV xt3Sz4ytgru8JWcwCHgiqCTjbaN3WeHcrDVf0ItG0Az/01ofBWfoAu9S 1JFYcOrYkTUidn8R4vROkwzsTrZMirnB/4yrA4MD5thWVBr3IczcnFto DbADuw8Qy/RUEUfcu+LcQ4Ge+OzIP8eE1T6+nbMRqFZBSMFoBO1w0Mmk xNGyEclfFkymQ4CsYxnvYVstljpLqh1OhoAEwY6D+0cSh9dKNQ5LKhgq UXqfJ+zmdcvL+cVvMjfcB0Wj6/hmEkpEp1ISawlTjFUDgiKNZxiow02r JL4tsw== ;; Received 1201 bytes from 192.33.4.12#53(c.root-servers.net) in 148 ms winadmin.it.com. 172800 IN NS olga.ns.cloudflare.com. winadmin.it.com. 172800 IN NS todd.ns.cloudflare.com. winadmin.it.com. 86400 IN DS 2371 13 2 CBAA2018F41B29985DAEDE7F127D4F9626ADA609665CEBAB0011903B 7C639254 winadmin.it.com. 86400 IN RRSIG DS 8 2 86400 20221112051535 20221105030535 53929 com. sbqDGqvxmEAjS4KRx8LvQAG9IusLgRRm5GPDf+AFkXddGgfJN37vJP1H 4JKMriWtgXZHc3g1ANMNjij+5J1K3GgeNy2w0UYc7xHkmvhsd15pDvi9 +BoiBsjC8ffznyli8sV8XVhm65oKDHJRx5YEtXUVA4p9hegO0NHDccvt ujQKMShBWX3nxs7P4onL13gspVScOoZgzXL3470UfDW7MA== ;; Received 601 bytes from 2001:501:b1f9::30#53(m.gtld-servers.net) in 144 ms winadmin.it.com. 300 IN A 172.66.43.163 winadmin.it.com. 300 IN A 172.66.40.93 winadmin.it.com. 300 IN RRSIG A 13 2 300 20221110051242 20221108031242 34505 winadmin.it.com. tKDYd/FHjs/aRHeOQJlsxXDJYtVcHA4G16QRJKlhFyYkZ2TmLKNIc6eM vXfpO91IVArK67KbyW5lIxI5cCxcQg== ;; Received 183 bytes from 172.64.32.137#53(olga.ns.cloudflare.com) in 16 ms
In alternativa, è possibile ottenere un risultato più conciso usando le variabili `+short` o `+noall +answer`.
Ricerca DNS Inversa
La ricerca DNS inversa rivela il record PTR associato all’indirizzo IP. È l’opposto del record DNS A e associa gli indirizzi IP ai nomi di dominio.
Tuttavia, se un nome di dominio non ha record PTR DNS, non sarà presente alcuna sezione di risposta.
Il comando da utilizzare è `dig -x indirizzo IP`.
[email protected]:~$ dig yahoo.com +short 74.6.143.26 74.6.231.20 98.137.11.164 98.137.11.163 74.6.143.25 74.6.231.21 [email protected]:~$ dig -x 74.6.143.26 ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> -x 74.6.143.26 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32267 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;26.143.6.74.in-addr.arpa. IN PTR ;; ANSWER SECTION: 26.143.6.74.in-addr.arpa. 600 IN PTR media-router-fp74.prod.media.vip.bf1.yahoo.com. ;; AUTHORITY SECTION: 143.6.74.in-addr.arpa. 172800 IN NS ns3.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns4.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns5.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns2.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns1.yahoo.com. ;; Query time: 192 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Nov 09 04:17:08 UTC 2022 ;; MSG SIZE rcvd: 203
Come si può notare, il nome di dominio nella sezione `Answer`, `media-router-fp74.prod.media.vip.bf1.yahoo.com/`, è collegato all’indirizzo IP principale `74.6.143.26`.
E visitando questo URL, si viene reindirizzati alla home page di ricerca di Yahoo.
Tuttavia, questo comportamento non è uniforme per tutti gli host web; a volte, questi URL non risolvono in nulla.
Interrogazione di Server DNS Specifici
A volte potrebbe essere necessario eseguire il ping di un server specifico per le interrogazioni DNS. Questo si ottiene facilmente aggiungendo l’indirizzo IP del server `@DNS`, selezionando così un server DNS specifico per una determinata query.
$ dig @1.1.1.1 winadmin.it.com +noall +answer +stats winadmin.it.com. 300 IN A 172.66.40.93 winadmin.it.com. 300 IN A 172.66.43.163 ;; Query time: 156 msec ;; SERVER: 1.1.1.1#53(1.1.1.1) (UDP) ;; WHEN: Wed Nov 09 04:18:56 UTC 2022 ;; MSG SIZE rcvd: 74
Nella sezione delle statistiche è possibile verificare che il server utilizzato è `1.1.1.1`, appartenente a Cloudflare.
Allo stesso modo, è possibile interrogare i server DNS di Google (8.8.8.8):
$ dig @8.8.8.8 winadmin.it.com mx +noall +answer +stats winadmin.it.com. 300 IN MX 1 aspmx.l.google.com. winadmin.it.com. 300 IN MX 10 alt3.aspmx.l.google.com. winadmin.it.com. 300 IN MX 10 alt4.aspmx.l.google.com. winadmin.it.com. 300 IN MX 5 alt1.aspmx.l.google.com. winadmin.it.com. 300 IN MX 5 alt2.aspmx.l.google.com. ;; Query time: 44 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP) ;; WHEN: Wed Nov 09 04:23:16 UTC 2022 ;; MSG SIZE rcvd: 157
Approfondiamo ⛏️
Come suggerisce il nome, questi comandi sono utilizzati per estrarre informazioni DNS e individuare problemi correlati. I comandi dig sono rapidi ed efficienti, e facili da ricordare.
Inoltre, le utility dig possono essere installate su Mac e Windows, rendendole universali.
PS: già che sei qui, ti presentiamo la libreria winadmin.it Sysadmin, un hub di soluzioni uniche per i tuoi problemi da sysadmin.