GNU/Linux >> Linux Esercitazione >  >> Linux

Tutto ciò che devi sapere sui server DNS di Ubuntu

Il DNS o Domain Name System è una delle parti più integranti di Internet. Chiunque utilizzi Internet utilizza il servizio DNS ogni giorno. Tuttavia, è anche ampiamente trascurato rispetto ad altre frenesia di Internet. In breve, il servizio DNS converte gli URL in indirizzi IP. Come ormai saprai, un indirizzo IP è un numero univoco che identifica tutto ciò che è connesso a una rete. Se vuoi intraprendere una carriera nell'amministrazione Linux, devi avere una profonda conoscenza di come funziona il DNS. Questa guida fornisce una panoramica operativa dei concetti di base del DNS ed esempi pratici di un server DNS Ubuntu.

Immergiti nel Domain Name System (DNS)

Poiché il DNS è costituito da diversi servizi e interazioni complesse tra di loro, gli utenti devono familiarizzare con le terminologie di base per capire cosa sta succedendo dietro le quinte. Ecco perché abbiamo diviso l'intera guida in più sezioni. Il primo offre una breve introduzione a termini e concetti, mentre altri si occupano di flussi di lavoro e configurazioni.

Panoramica dei termini e concetti di base del DNS

Quando lavori con DNS, dovrai affrontare vari termini e terminologie come host, zone, TLD e risolutori. La sezione seguente fornisce una breve introduzione ad alcuni di questi concetti.

DNS

DNS o Domain Name System è il meccanismo che interpreta un Nome di dominio completo (FQDN) a un indirizzo IP specifico. Questo è l'indirizzo utilizzato dai nostri sistemi per inviare e recuperare risorse web. Il DNS è costituito da più sistemi ed esegue comunicazioni multidirezionali per recuperare l'indirizzo IP associato a un URL.

Nome di dominio

I nomi di dominio sono indirizzi leggibili dall'uomo associati alle risorse web. Rimuovono l'ambiguità di ricordare un gran numero di indirizzi IP. Ad esempio, google.com è il nome di dominio per il motore di ricerca di Google. Quando lo inserisci nella barra degli indirizzi del tuo browser, utilizza il sistema DNS per trovare l'indirizzo IP effettivo.

Indirizzo IP

Un indirizzo IP è un numero univoco assegnato a tutti i dispositivi che sono connessi a Internet in un determinato punto. Gli indirizzi IP hanno diverse classi e due versioni principali. La maggior parte delle persone utilizza IP versione 4 al momento. Gli indirizzi IPv4 sono composti da quattro ottetti, ciascuno separato da un punto "." simbolo.

TLD

TLD so Domini di primo livello si trova al livello più alto nella gerarchia dei nomi di dominio. Queste sono le porzioni più generali di un nome di dominio e si trovano nella posizione più lontana a destra. Ad esempio, "com ” è il TLD dell'URL www.example.com . Alcuni popolari domini di primo livello includono "com", "org, "gov", "net" ed "edu".

Host

I proprietari di un dominio possono definire diversi host all'interno di quel dominio. Questi possono essere utilizzati per accedere a servizi o computer separati. È possibile accedere alla maggior parte dei server Web tramite il dominio nudo come esempio.com o tramite la dichiarazione dell'host come www.esempio.com. La parte "www" è l'host qui. Un altro utilizzo comune di un host è fornire l'accesso API come api.example.com.

Sottodominio

- -

I sottodomini sono semplicemente un sottoinsieme di un dominio. Ciò consente ai proprietari di siti di avere più sottodomini sotto un dominio principale. Ad esempio, un dominio chiamato university.edu può avere diversi sottodomini per ciascuno dei suoi dipartimenti, come www.cs.university.edu o www.phy.university.edu. La differenza tra host e sottodomini è che il primo specifica diversi computer o servizi, mentre il secondo divide il dominio padre in diversi gruppi.

Nome di dominio completamente qualificato

Un Nome di dominio pienamente qualificato o FQDN è il dominio assoluto di un sito web. Rappresenta la radice del dominio in questione. Un dominio di solito contiene più sottoroute o percorsi come www.example.com/new/example. Qui, la sezione www.example.com è l'FQDN. Inoltre, l'FQDN termina sempre con un punto "." simbolo come "www.example.com.". Tuttavia, agli utenti non è richiesto di inserire questo punto finale poiché il programma client se ne occupa.

Server dei nomi

In DNS, un server dei nomi è un sistema informatico a cui è stato assegnato il compito di tradurre i nomi di dominio in IP indirizzabili. Svolgono la maggior parte del lavoro effettivo all'interno di un'infrastruttura DNS di Ubuntu. Poiché i server dei nomi devono gestire migliaia di richieste al secondo, spesso reindirizzano richieste aggiuntive a nuovi server. Inoltre, i name server possono funzionare anche come server autorevoli. In questo scenario, rispondono alle query che sono sotto il loro controllo e, in caso contrario, forniscono risposte memorizzate nella cache da altri server.

File di zona

I file di zona sono veri e propri file di testo che memorizzano le relazioni tra i nomi di dominio e gli indirizzi IP associati. Un sistema DNS recupera le informazioni IP di un FQDN da questo documento. Sono memorizzati sul server dei nomi e specifica quali risorse sono accessibili per un particolare dominio. Se le informazioni non sono disponibili per il file di zona, puntano alla posizione che contiene quei dati.

Server radice

Come già discusso, DNS è un sistema gerarchico che comprende componenti multi-livello. Il server principale si trova in cima a questa gerarchia. Si tratta di server estremamente potenti gestiti da più organizzazioni e controllati da ICANN (Internet Corporation for Assigned Names and Numbers) . Attualmente, ci sono 13 root server primari in tutto il mondo e ognuno di essi è sottoposto a mirroring per una maggiore disponibilità.

Quando qualcuno chiede un root server, la richiesta viene inoltrata al mirror più vicino. I server root gestiscono le query relative ai domini di primo livello. Ogni volta che c'è qualcosa che un server dei nomi di livello inferiore non può risolvere, al server radice viene presentata quella domanda. Tuttavia, i server root in realtà non hanno informazioni IP. Puntano invece ai name server che gestiscono quel TLD specifico.

Server TLD

I server TLD si trovano sotto i server root nella gerarchia DNS. I server root dirigono le entità di richiesta DNS verso il server TLD di quella richiesta. Il server TLD reindirizza quindi l'entità richiedente al server dei nomi, che ha le informazioni IP specifiche per il dominio in questione.

Server dei nomi a livello di dominio

I server TLD reindirizzano l'entità richiedente al server dei nomi a livello di dominio. Questo è il server il cui file di zona contiene le mappature IP per il dominio. Quindi, questo è il server dei nomi che ha l'indirizzo IP specifico per il nome di dominio richiesto.

Risolutore

Un risolutore è l'entità di richiesta responsabile del recupero delle informazioni IP di un dominio dal DNS. Di solito, è configurato all'interno del sistema client come nel browser o tramite un'impostazione DNS Ubuntu personalizzata. La maggior parte delle persone utilizza il risolutore DNS fornito dai propri ISP. Un risolutore è fondamentalmente un'astrazione che consente all'utente finale di ignorare ciò che sta accadendo sotto il cofano. Può funzionare in modo ricorsivo finché non recupera l'indirizzo IP di un determinato dominio.

Record

Abbiamo già discusso del fatto che il server dei nomi memorizza le mappature da dominio a IP nel file di zona. Le informazioni nei file di zona vengono salvate come record. Esistono molti tipi di record in un file di zona. Stiamo toccando alcuni dei più importanti qui.

Record SOA

SOA sta per Inizio dell'autorità ed è un record obbligatorio per tutti i file di zona. Il primo record effettivo in un file di zona deve essere di tipo SOA. Potrebbe volerci del tempo prima di comprendere appieno i record SOA. Fino ad allora, ricorda i seguenti takeaway. Innanzitutto, un record SOA è simile al seguente snippet.

example.com. IN SOA ns1.example.com. admin.example.com. (
12083        ; serial number 
3h           ; refresh interval 
30m          ; retry interval 
3w           ; expiry period 
1h           ; negative TTL )

Le parti essenziali sono le seguenti.

  • esempio.com – Questa è la radice della zona e specifica che il file è per "example.com". dominio.
  • IN SOA – "IN" sta per Internet e SOA rappresenta il fatto che si tratta di un record SOA.
  • ns1.example.com. – È il server dei nomi principale per "example.com". dominio. Inoltre, se hai configurato un DNS ubuntu dinamico, il tuo server dei nomi primario va qui.
  • admin.example.com. – È l'indirizzo e-mail dell'amministratore responsabile di questa particolare zona. Il simbolo “@” è sostituito da un punto “.” simbolo per l'indirizzo email.
  • 12083 – Questo è il numero di serie per questa zona e devi incrementare questo numero di serie ogni volta che aggiorni il file di zona. Questo è il modo in cui i server secondari determinano che è avvenuta una modifica in questa zona.
  • 3 ore – L'intervallo di aggiornamento per la zona specifica per quanto tempo i server secondari devono attendere prima di cercare le modifiche nel file di zona del server primario.
  • 30 milioni – L'intervallo tra i tentativi di una zona specifica per quanto tempo i server secondari devono attendere prima di riprovare a eseguire il polling del server primario.
  • 3w – È il periodo di scadenza e definisce per quanto tempo i server secondari devono tentare di stabilire una comunicazione corretta. Se non è possibile stabilire una connessione entro questo lasso di tempo, i server secondari smetteranno di rispondere in quanto autorevoli per questa zona.
  • 1 ora – Se il server dei nomi non riesce a trovare il nome richiesto in questo file di zona, memorizzerà nella cache un errore di nome per questo periodo di tempo.

Record A e AAAA

Il record A e AAAA associa un host a un indirizzo IP effettivo. Il record "A" associa un host a un indirizzo IPv4 funzionante e il record "AAAA" associa gli host a indirizzi IPv6. Di seguito è riportato il formato generale per questi tipi di record.

hostname   IN  A     IPv4Address
hostname   IN  AAAA  IPv6Address

Di seguito è riportato un esempio appropriato utilizzando il server dei nomi ns1 definito nel record SOA.

ns1.example.com.  IN  A  111.112.221.222

Il successivo record "A" definisce il server web come "www".

www  IN  A  111.112.211.212

Record CNAME

I record CNAME rappresentano un alias per il server dei nomi definito da un record A o AAAA. Ad esempio, il frammento di codice seguente dichiara un host chiamato "server" utilizzando un record A e quindi crea un alias "www" per quell'host.

server IN  A      111.111.111.111
www    IN  CNAME  server

Tuttavia, la creazione di alias può comportare un calo delle prestazioni poiché richiedono una query aggiuntiva al server. I record CNAME vengono solitamente utilizzati per dare un nome canonico a una risorsa esterna.

Record MX

I record MX vengono utilizzati per specificare gli scambi di posta per un nome di dominio e aiutano a ricevere comunicazioni e-mail che arrivano al server di posta Linux. A differenza della maggior parte dei tipi di record, non associano gli host agli IP perché si applicano all'intera zona. Di seguito è riportato un semplice esempio di record MX.

IN  MX  10  mail.example.com.

Si noti che non è presente alcun host definito in questo record e ha anche un nuovo numero "10". Viene utilizzato per indicare la preferenza. Se sono presenti più record MX, le email verranno indirizzate al server con il numero di preferenza più basso.

Record NS

I record NS specificano i server dei nomi utilizzati per una zona. Sebbene possa sembrare irrilevante poiché il file di zona esiste già sul server dei nomi, viene utilizzato per alcuni motivi. Come spesso, il file di zona servito da un server DNS potrebbe essere effettivamente una copia cache di un server diverso.

IN  NS  ns1.example.com.
IN  NS  ns2.example.com.

Come i record MX, anche i record NS sono definiti per un'intera zona e non richiedono nomi host. Inoltre, molti DNS Ubuntu servono a considerare i file di zona non validi se non contengono più record ns. Quindi, la maggior parte dei file di zona definisce più di un server dei nomi.

Record PTR

I record PTR specificano un nome associato a un indirizzo IP funzionante e sono semplicemente un inverso del record A o AAAA. Devono iniziare dalla radice .arpa e vengono commissionati al proprietario dell'IP. La delega degli IP a organizzazioni e fornitori di servizi è gestita dai Regional Internet Registri (RIR) .

222.111.222.111.in-addr.arpa.  33692  IN  PTR  host.example.com.

Lo snippet sopra fornisce un esempio di base di un record PTR. Mappa l'IP 222.111.222.111 su "host.example.com.".

Registri CAA

I record CAA definiscono quali Autorità di certificazione (CA) sono autorizzati a emettere certificati SSL/TLS per un particolare nome di dominio. Se non esiste un record CAA definito per un dominio, qualsiasi CA può emettere un certificato. Tuttavia, se una CA è definita in modo esplicito, solo quell'autorità specifica può emettere il certificato.

example.com.  IN  CAA  0  issue  "letsencrypt.org"

Un record CAA è simile allo snippet sopra. I campi host, IN e CAA sono specifici del DNS mentre i flag (0), i tag (problema) e i valori ("letsencrypt.org") sono specifici di CAA. La CA ignorerà il record se il flag è impostato su "0", ma deve astenersi dall'emettere un certificato se è impostato su "1".

Come funziona effettivamente il DNS?

Ora che abbiamo appreso tutti i termini principali e i concetti associati, possiamo scoprire come funziona una richiesta DNS effettiva. Offriremo una semplice illustrazione del mondo reale e analizzeremo attentamente il percorso della query.

Diciamo che stiamo cercando di stabilire una connessione dal mio dispositivo portatile con tecnologia Ubuntu al sito Web "www.example.com. “. Apro un browser Internet, digito l'URL nella barra degli indirizzi e premo invio. Inizialmente, il client o il mio browser, in questo caso, verificheranno se l'IP di "www.example.com". esiste già nella sua cache. Se lo trova, salterà tutti i passaggi successivi.

Quando il client non riesce a trovare l'IP nella cache del browser, inoltra la richiesta al risolutore o al server dei nomi dell'ISP nel mio caso. Il risolutore cerca di vedere se altri utenti sono stati di recente su questo sito Web e, in tal caso, individua l'IP dalla sua cache. In caso contrario, il risolutore inoltra la richiesta a uno dei root name server.

Il server radice restituisce l'indirizzo del server dei nomi TLD per quel dominio, che è un ".com ” server dei nomi in questo esempio. Ora, il risolutore invia una richiesta al server TLD per vedere se ha il risultato previsto. Tuttavia, anche il server TLD non ha le informazioni ma sa quale server dei nomi lo ha. Restituisce l'indirizzo di quel server dei nomi che ha il dominio per le mappature IP per il nostro URL.

Una volta che il risolutore chiede al name server il nostro dominio, restituisce l'IP appropriato. Il resolver invia quindi semplicemente l'indirizzo IP effettivo al programma client, che ora può stabilire la comunicazione necessaria.

Come puoi vedere, il percorso di una richiesta DNS totale di Ubuntu comprende molte query ricorsive e iterative. Inoltre, a questo meccanismo vengono aggiunti diversi livelli di cache per rendere le cose semplici e veloci. Ecco perché la maggior parte delle volte, il tuo browser non ha bisogno di aspettare che avvenga una query DNS completa. Ad esempio, se stai visitando un sito Web popolare come YouTube, è probabile che la cache del tuo ISP abbia già l'IP di quel dominio.

Inoltre, le configurazioni DNS di Ubuntu possono variare ampiamente in base all'applicazione e al ruolo del server. Se configurato come server dei nomi di memorizzazione nella cache, il server DNS individuerà la risposta alle query del client e ricorderà la risposta per le query future. Se invece imposti il ​​tuo DNS come server primario, leggerà i dati per una zona dal file di zona e sarà autorevole solo per quella zona. Se configurato come server secondario, recupererà i dati dal file di zona di un altro server dei nomi.

Installazione e configurazione di un server DNS Ubuntu

Ora che abbiamo discusso di come funziona il DNS e della maggior parte dei concetti chiave, possiamo iniziare a creare il nostro server DNS personale. Per questa parte del tutorial, utilizzeremo BIND (Demone dei nomi di Berkley Internet) programma, che è l'implementazione DNS più popolare e fornisce prestazioni estremamente solide anche in condizioni di carico elevato.

Usa il seguente semplice comando per installare BIND nella tua macchina Ubuntu. Consigliamo inoltre agli utenti di scaricare dnsutils , un pacchetto robusto per testare e risolvere i problemi con il tuo server DNS.

$ sudo apt install bind9
$ sudo apt install dnsutils

I file di configurazione per BIND si trovano in /etc/bind directory del tuo file system Linux. I dati di configurazione principali vengono salvati in /etc/bind/named.conf file. Le /etc/bind/named.conf.options viene utilizzato per impostare le opzioni globali, il file /etc/bind/named.conf.local per la configurazione delle zone e, /etc/bind/named.conf.default-zones file per la gestione delle zone di default.

In precedenza, Ubuntu utilizzava /etc/bind/db.root file per descrivere i server dei nomi radice. Ora utilizza il file /usr/share/dns/root.hints invece. Questo file è quindi referenziato all'interno di /etc/bind/named.conf.default-zones file.

Inoltre, è totalmente possibile configurare lo stesso server DNS Ubuntu come server primario, secondario e di memorizzazione nella cache. I ruoli cambiano in base alle zone servite dal server. Ad esempio, puoi configurare il tuo server come Start of Authority (SOA) per una zona offrendo comunque servizi secondari a una zona diversa. Nel frattempo, può offrire servizi di memorizzazione nella cache per gli host che si trovano sulla tua LAN locale.

Server primario

In questa sezione mostreremo come creare configurazioni DNS di Ubuntu per un server dei nomi primario. Questo server gestirà le query per l'FQDN “example.com “. Sostituisci semplicemente questo nome di dominio con il tuo URL per implementare le stesse configurazioni.

Innanzitutto, dovremo configurare il file della zona di inoltro. Apri /etc/bind/named.conf.local file utilizzando il tuo editor di testo Linux preferito e aggiungi i seguenti frammenti.

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

Puoi configurare il tuo server DNS BIND per ottenere aggiornamenti automatici ogni volta che modifichi i file di configurazione. Per farlo, usa il file /var/lib/bind/db.example.com sia nello snippet sopra che nel comando successivo.

$ sudo cp /etc/bind/db.local /etc/bind/db.example.com

Il comando precedente copia un file di zona già esistente che useremo come modello per i nostri prossimi passi. Ora modificheremo il nostro file di zona (/etc/bind/db.example.com ) e apportare le modifiche necessarie.

$ sudo nano /etc/bind/db.example.com

Prima di tutto, sostituiamo "localhost". all'FQDN del nostro server, che è "example.com.". Non dimenticare di aggiungere il "." finale nell'FQDN. Ora, cambia "127.0.0.1" con l'IP effettivo del tuo server dei nomi e "root.localhost". a un indirizzo email attivo. Ricordarsi di utilizzare un "." invece del simbolo "@" nel tuo indirizzo e-mail. Si consiglia inoltre di aggiungere un commento che documenti l'FQDN per questo file di zona. Il nostro file ora è simile al seguente.

;
; BIND data file for example.com
;
$TTL 604800
@  IN SOA example.com. root.example.com. (
2         ; Serial
604800    ; Refresh
86400     ; Retry
2419200   ; Expire
604800 )  ; Negative Cache TTL

------------------------------------------------------------------
------------------------------------------------------------------

Finora abbiamo solo modificato il record SOA. È ora di apportare modifiche al record NS e ai record A del nostro file di zona. Cambia "localhost". parte del record NS in modo che corrisponda al tuo server dei nomi, che è "ns.example.com". per il nostro FQDN demo. Sostituisci la parte "127.0.0.1" del primo record A con l'Ip del tuo name server. Abbiamo usato “192.168.1.10” . Infine, crea un record A per il nostro server dei nomi "ns.example.com" aggiungendo l'ultima riga nello snippet sottostante.

;
; BIND data file for example.com
;
$TTL       604800
@          IN    SOA   example.com. root.example.com. (
                       3           ; Serial
                       604800      ; Refresh
                       86400       ; Retry
                       2419200     ; Expire
                       604800 )    ; Negative Cache TTL

@         IN    NS     ns.example.com.
@         IN    A      192.168.1.10
@         IN    AAAA   ::1
ns        IN    A      192.168.1.10

Ecco come apparirà la configurazione finale per la zona di inoltro del nostro server primario.

Ricordarsi di incrementare il numero di serie altrimenti BIND non noterà le modifiche alle sue configurazioni. Quando aggiungi più possibilità, non è necessario modificare il seriale ogni volta. Se desideri aggiungere ulteriori record DNS Ubuntu, aggiungili semplicemente sotto le opzioni sopra. Una volta che tutto è configurato, riavvia BIND usando il comando seguente.

$ sudo systemctl restart bind9.service

Ora che il nostro file di zona in avanti è configurato correttamente, modifichiamo il file di zona inversa. Ciò consente al server DNS di Ubuntu di risolvere un IP in un FQDN. Modifica semplicemente il /etc/bind/named.conf.local file e aggiungi i frammenti di seguito.

$ sudo nano /etc/bind/named.conf.local
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

Dovrai sostituire "1.168.192" con i primi tre ottetti della tua rete. Inoltre, il file di zona dovrebbe essere denominato di conseguenza. Sostituisci il "192" parte del file di zona “/etc/bind/db.192” per abbinare il primo ottetto della tua rete. Ad esempio, se sei sulla rete 10.1.1.1/24; il tuo file di zona sarà "/etc/bind/db.10 " e la voce "1.168.192.in-addr.arpa " sarà "10.1.1.in-addr.arpa “.

$ sudo cp /etc/bind/db.127 /etc/bind/db.192

Abbiamo creato il /etc/bind/db.192 file copiando un file modello esistente. Ora modifichiamo questo file e apportiamo le stesse modifiche apportate a /etc/bind/db.example.com file.

$ sudo nano /etc/bind/db.192
;
; BIND reverse data file for local 192.168.1.XXX net
;
$TTL    604800
@       IN   SOA  ns.example.com. root.example.com. (
                  2               ; Serial
                  604800          ; Refresh
                  86400           ; Retry
                  2419200         ; Expire
                  604800 )        ; Negative Cache TTL
;
@      IN   NS    ns.
10     IN   PTR   ns.example.com.

Ricordarsi di incrementare il numero di serie ad ogni modifica successiva al file della zona inversa. Inoltre, per ogni record A configurato in /etc/bind/db.example.com , devi sempre aggiungere un record PTR nel file /etc/bind/db.192 .

Una volta fatto tutto ciò, riavvia semplicemente il servizio BIND.

$ sudo systemctl restart bind9.service

Server secondario

Come abbiamo già detto, la creazione di server secondari è un'ottima idea per diversi motivi, uno dei quali è la maggiore disponibilità. Ciò renderà i tuoi server DNS Ubuntu più resilienti e aiuterà a servire più client. Quindi, controlla la sezione seguente se desideri creare un server dei nomi secondario.

Innanzitutto, devi consentire il trasferimento di zona sul tuo server primario. Modifica semplicemente le configurazioni della zona in avanti e indietro e aggiungi "consenti-trasferimento ” opzione alle zone.

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.168.1.11; };
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { 192.168.1.11; };
};

Ora sostituisci semplicemente "192.168.1.11 ” con l'indirizzo IP del tuo server secondario.

Quindi riavvia BIND sul tuo server primario eseguendo il comando seguente.

$ sudo systemctl restart bind9.service

Ora devi installare BIND sul server secondario. Quindi procedi con la modifica di /etc/bind/named.conf.local file e aggiungi quanto segue per entrambe le zone avanti e indietro.

zone "example.com" {
type slave;
file "db.example.com";
masters { 192.168.1.10; };
}; 

zone "1.168.192.in-addr.arpa" {
type slave;
file "db.192";
masters { 192.168.1.10; };
};

Sostituisci semplicemente "192.168.1.10 ” con l'IP del server dei nomi primario. Riavvia BIND ancora una volta e sei a posto.

$ sudo systemctl restart bind9.service

Si noti che una zona DNS di Ubuntu è trasferibile solo quando il numero di serie sul server primario è maggiore di quello sul server secondario. Tuttavia, puoi aggirare questo problema aggiungendo l'opzione “anche-notify { indirizzoip; }; ” nel /etc/bind/named.conf.local file sul tuo server principale. Dopodiché, il file dovrebbe essere simile al seguente.

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.168.1.11; };
also-notify { 192.168.1.11; }; 
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { 192.168.1.11; };
also-notify { 192.168.1.11; }; 
};

Server di memorizzazione nella cache

Non è necessario fare molto per creare un server dei nomi di memorizzazione nella cache poiché le configurazioni predefinite fungono già da server di memorizzazione nella cache. Basta modificare /etc/bind/named.conf.options archiviare e decommentare la sezione spedizionieri. Inserisci l'IP del server DNS del tuo ISP, come mostrato di seguito.

$ sudo nano /etc/bind/named.conf.options
forwarders {
1.2.3.4;
5.6.7.8;
};

Non dimenticare di sostituire gli IP di conseguenza con i server dei nomi effettivi.

Ora apri il tuo emulatore di terminale Linux preferito ed emetti il ​​comando seguente per riavviare BIND.

$ sudo systemctl restart bind9.service

Test e risoluzione dei problemi delle configurazioni DNS di Ubuntu

Una volta che hai finito di configurare i tuoi server dei nomi DNS, vorresti controllare se funzionano come previsto o meno. Il primo passo per farlo è aggiungere l'IP dei server dei nomi al risolutore di una macchina host. Il modo più semplice per farlo è modificare il file /etc/resolv.conf e assicurarsi che la riga del server dei nomi punti a 127.0.0.53 . Quindi aggiungi un parametro di ricerca per il tuo FQDN, come illustrato di seguito.

$ sudo nano /etc/resolv.conf
nameserver 127.0.0.53
search example.com

Puoi facilmente scoprire il server DNS utilizzato dal risolutore della tua macchina locale usando il seguente comando.

$ systemd-resolve --status

Tieni presente che potresti voler aggiungere anche l'IP del server secondario alla configurazione del tuo client. Ciò fornirà una migliore disponibilità e utilizzerà il server dei nomi secondario che hai appena creato.

Un altro modo utile per controllare le configurazioni DNS è usare il comando Linx dig. Usa semplicemente dig contro l'interfaccia di loopback e controlla se è in ascolto sulla porta 53 o meno.

$ dig -x 127.0.0.1

Il comando seguente utilizza il comando Linux grep per filtrare le informazioni rilevanti.

$ dig -x 127.0.0.1 | grep -i "53"

Se hai configurato BIND per essere un server di memorizzazione nella cache, usa dig per controllare un dominio esterno e prendere nota del tempo della query.

$ dig ubuntu.com

Esegui il comando ancora una volta e controlla se il tempo della query è diminuito o meno. Dovrebbe ridursi in modo significativo se la memorizzazione nella cache ha esito positivo.

Puoi anche utilizzare il comando ping di Linux per vedere come i client utilizzano il DNS di Ubuntu per risolvere i nomi host in IP.

$ ping example.com

Pensieri finali

Una solida conoscenza del sistema DNS è fondamentale se si desidera ottenere un lavoro CS ben retribuito come amministratore di sistema o di rete. Lo scopo di questa guida è aiutare i principianti a padroneggiare i principi alla base del DNS il più velocemente possibile. Inoltre, i nostri editori hanno anche fornito un'illustrazione funzionante di varie configurazioni DNS di Ubuntu per aiutare il tuo processo di apprendimento. Entro la fine di questo tutorial, dovresti acquisire una conoscenza rigida dei concetti di base del DNS e un'esperienza pratica. Speriamo di essere stati in grado di fornirti le informazioni essenziali. Non dimenticare di lasciarci un commento se hai altre domande o suggerimenti.


Linux
  1. Tutto quello che volevi sapere su Zorin OS 12

  2. Tutto quello che devi sapere su Ubuntu 13.04

  3. Tutto ciò che devi sapere su CentOS Stream

  4. Ubuntu vs. Lubuntu:tutto ciò che devi sapere

  5. Che cos'è una VPN? Tutto quello che devi sapere sulle VPN

Tutto ciò che devi sapere sul sistema operativo Peppermint Linux

Tutto quello che devi sapere su Black Lab Linux

Tutto ciò che devi sapere su Linux Mint Distro

Tutto ciò che devi sapere sugli inode in Linux

Tutto ciò che è importante sapere su Hard Link in Linux

Tutto ciò che è importante sapere sull'UID in Linux