Come si esegue una configurazione completa del server DNS BIND9 con un nome host?


53

Ho bisogno di una guida passo-passo completa su come produrre una tale configurazione del server.

Qualcuno può aiutarmi?

Risposte:


119

Server DNS completo nel server Ubuntu 12.

Prima di tutto cambia l'indirizzo IP del tuo server da DHCP a STATICO per questo usa il seguente comando

sudo nano /etc/network/interfaces

e aggiungi:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

Riavvia i daemon di rete

sudo /etc/init.d/networking restart

Prima di configurare un server DNS in Linux Ubuntu devi prima creare un nome di dominio e poi procederai. Per prima cosa controllerai il comando hostname per questo

sudo nano /etc/hostname

 nefitari       

(Questo è il nome host del mio server Ubuntu, il tuo potrebbe essere diverso. Puoi cambiarlo secondo le tue necessità)

Ora dopo il nome host, devi creare un nome di dominio per il tuo server. Di 'servername.domain.com è consigliabile che ogni volta che si configura un server per uso domestico o meno, non utilizzare .com ma .hom o .net o qualunque cosa ti piaccia. Dai il comando seguente

  sudo nano /etc/hosts

aggiungere se non ce l'ha:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

Nel mio file 127.0.0.1 è per localhost e ho cambiato il secondo indirizzo IP 127.0.1.1 con il mio IP del server che è 192.168.1.5 ora inserisco il mio nome di dominio con il mio nome host nefitari prima poi il mio nome di dominio autun.hom e quindi alias nefitari . È possibile selezionare il proprio nome host.abc.net o nomehost.home.lan ecc., Ma ricordare di cambiare in questo file è necessario riavviare il server e quindi accedere. Il riavvio è obbligatorio

Ora installa BIND9

 sudo apt-get install bind9

Dopo l'installazione, configura i seguenti file passo dopo passo

  • named.conf.options
  • named.conf.local
  • /etc/resolv.conf

Ora configura il file named.conf.options Questo file è utilizzato per gli IP DNS Significa che il tuo server deve connettersi ad alcuni DNS esterni. Quando acquisti un nome di dominio dagli ISP, di solito ti danno i loro IP DNS. Puoi utilizzare IP DNS aperti di google o giù di lì. Nel mio caso sto usando i miei IP DNS ISP.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** Salvare il file ed uscire *** usando control x premere y e sovrascrivere il file

Ora modifica il file named.conf.local Questo è il file in cui definiamo le zone forward e reverse. Significa che quando inseriamo il nome di dominio, lo tradurrà in indirizzo IP e quando inseriremo l'indirizzo IP, lo convertirà semplicemente in nome.

sudo nano /etc/bind/named.conf.local

mostrerò:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** Salvare il file ed uscire *** usando control x premere y e sovrascrivere il file

Ora creeremo questi due file di database db.autun.hom e db.192 nella cartella zone

Per prima cosa imposta le zone della directory in / etc / bind /

  sudo mkdir /etc/bind/zones

Prima di creare file, desidero chiarire che ho diversi dispositivi

IP dei dispositivi

  • Server stesso 192.168.1.5
  • Gateway 192.168.1.1
  • Win7pc 192.168.1.50

Ora nella directory delle zone creeremo prima due file db.autun.hom . Sto solo copiando la cartella db.local già presente nella cartella / etc / bind nella cartella delle zone cambiando il suo nome in db.autun.hom . Inserirò questi IP nel mio file db.autun.hom. Iniziamo

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

Ora usa il comando qui sotto per modificare il file

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

Salvalo ed esci

  • Webuser.autun.hom. è l'e-mail che accederà al server dei nomi. Puoi scrivere qualsiasi nome invece webuser come admin, root o host master ecc.
  • Autun.hom. è il mio NS significa server dei nomi
  • Autun.hom. Modifica a IP 192.168.1.5
  • @ IN A 127.0.0.1 e AAAA :: 1 possono essere commentati, non dovresti averne bisogno perché db.local è già presente in / etc / bind è solo una copia di quel file. Quindi non è necessario è possibile eliminarlo
  • Modifica di Nefitari in IP 192.168.1.5
  • Gateway per IP 192.168.1.1
  • Win7pc puoi nominare i tuoi PC Windows o client Linux con qualsiasi nome, ma ricorda che l'IP di quel client deve essere correttamente inserito nel file. Nel mio caso ho dato IP di Windows PC 192.168.1.50
  • Infine, sto usando CNAME significa che il nome canonico è solo un alias per i nefitari. Significa che puoi accedere al tuo server inserendo www.autun.hom invece nefitari.autun.hom. Puoi ometterlo o commentarlo. Sta a te.

Ora crea il file della zona di ricerca inversa

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

Ora usa il comando qui sotto per modificare il file

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

Salvalo ed esci

Ora quando hai finito con il tuo file di zona devi controllarlo se funziona correttamente o no inserendo il comando qui sotto per il file di zona in avanti

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

Ora controlla il file della zona inversa

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

Se l'output del tuo nome-checkzone è lo stesso di quello sopra, allora funziona bene altrimenti hai fatto un errore nel file.

Ora modifica il file resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Immettere le seguenti righe nel file resolv.conf e salvarlo

Riavvia il collegamento

sudo /etc/init.d/bind9 restart

Dopo l'avvio del bind, controlla le impostazioni nel file di registro

tail -f /var/log/syslog

non deve contenere errori nel registro

Verifica delle zone dirette

host –l autun.hom

L'output dovrebbe essere così

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

Ora usa NSLOOKUP

nslookup autun.hom

PRODUZIONE

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

Usa DIG

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

L'output dovrebbe essere simile al precedente, controllare lo stato: NOERROR significa che sta risolvendo il controllo SEZIONE RISPOSTA: gateway.autun.hom è stato risolto in 192.168.1.1

Verifica della zona inversa

 host 192.168.1.1

Produzione

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

Se ti dà un errore come di seguito

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Ciò significa che hai commesso un errore nel file /etc/bind/named.conf.local nella zona inversa Se il tuo IP del server è 192.168.1.5, la tua zona inversa è simile a questa

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

A volte le persone hanno commesso un errore nell'inversione dell'ip come (solo un esempio)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

Usa NSLOOKUP

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

Se ricevi NXDOMAIN o SERVFAIL come errori, significa che uno dei tuoi file di zona non funziona correttamente

Ora puoi ping ubuntu.com o scavare ubuntu.com per la prima volta ci vorranno diversi millisecondi per risolvere il nome ubuntu.com ma quando lo esegui la seconda volta ci vorranno 1, 2 o 3 secondi normalmente da 1 a 10 miglia i secondi sono normali e significa che il tuo DNS funziona correttamente

Configurazione dei client

lato di windows

  • connessioni di rete aperte
  • seleziona cambia impostazioni adattatore
  • selezionare le proprietà
  • selezionare la versione del protocollo Internet IPv4

e qui dai l'indirizzo IP (nel mio caso è 192.168.1.50 ti ricordi di win7pc)

  • Indirizzo IP 192.168.1.50
  • Maschera di sottorete 255.255.255.0
  • Gateway predefinito 192.168.1.1
  • DNS primario 192.168.1.5 (il mio nuovo IP server BIND DNS)
  • nella stessa finestra selezionare Advance
  • seleziona la scheda DNS
  • Digita la casella di testo qui sotto Nel suffisso DNS per questa connessione: autun.hom
  • clicca ok
  • fare clic su convalida impostazione all'uscita
  • clicca ok

e hai finito con esso apri CMD

ping gateway

deve darti alcune risposte

allo stesso modo

ping 192.168.1.1 or 5

deve darti alcune risposte

Metti alla prova il tuo server al di fuori del mondo

Ora puoi eseguire il ping di ubuntu.com o scavare ubuntu.com per la prima volta ci vorranno diversi millisecondi per risolvere il nome ubuntu.com ma quando lo eseguirai la seconda volta, prenderà forma da 1 a 10 mili secondi, il suo tempo normale e significa che il tuo DNS funziona correttamente Configurazione dei client

lato di windows

apri connessioni di rete seleziona modifica impostazioni adattatore seleziona proprietà seleziona protocollo internet versione IPv4

e qui dai l'indirizzo IP (nel mio caso è 192.168.1.50 ti ricordi di win7pc)

Indirizzo IP 192.168.1.50

Maschera di sottorete 255.255.255.0

Gateway predefinito 192.168.1.1

DNS primario 192.168.1.5 (il mio nuovo IP server BIND DNS)

seleziona Advance (nella stessa finestra)

seleziona la scheda DNS

Digita la casella di testo qui sotto Nel suffisso DNS per questa connessione: autun.hom

clicca ok

fare clic su convalida impostazione all'uscita

clicca ok

e hai finito con esso apri CMD

Codice:

 ping gateway

deve darti alcune risposte

allo stesso modo

Codice:

 ping 192.168.1.1 or 5

deve darti alcune risposte che puoi usare Codice NSLOOKUP :

 nslookup gateway

CLIENTI LINUX

Codice:

 sudo nano /etc/network/interfaces

digitare le seguenti righe

Codice:

 auto eth0
 iface eth0 inet dhcp

Ora riavvia Network Deamons

Codice:

 sudo /etc/init.d/networking restart

per forzare il client rinnova il comando IP

Codice:

 sudo dhclient -r

Ora ottieni un nuovo IP:

Codice:

 sudo dhclient

Se si esegue un server DHCP sulla rete, immettere il nome dominio e il server dei nomi nel file dhcpd.conf; ad esempio ho un server DNS chiamato nefitari.autun.hom e l'indirizzo IP è 192.168.1.5 come sotto

Codice:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

fonte


7
È un peccato che questa pagina abbia 3726 visualizzazioni uniq e la risposta abbia un solo voto. Se ti è stato utile, votalo!
fotanus,

12
Questa risposta è corretta ad eccezione della parte relativa alla modifica di /etc/resolv.conf. Da Ubuntu 12.04 non modifichi manualmente quel file ma configuri resolvconf per farlo. Impostare RESOLVCONF = yes in / etc / default / bind9 per fare in modo che BIND 9 nominato registri il suo indirizzo di ascolto locale 127.0.0.1 con resolvconf all'avvio. Assicurarsi che /etc/resolv.conf sia un collegamento simbolico a ../run/resolvconf/resolv.conf.
jdthood,

1
errori syslog: (network unreachable) resolving './NS/IN': 2001:500:3::42#53provengono dal bind che cerca di risolvere ricorsivamente le query usando ipv6. La modifica /etc/default/bind9e l'utilizzo lo OPTIONS="-u bind -4"risolve. Maggiori informazioni: serverfault.com/questions/77325/unreachable-resolving-domain
non una patch

Ho appena ottenuto l'installazione con Ubuntu server 16.04 e funziona ancora. Il tutorial Serverguide su DNS è un incubo rispetto a questa spiegazione. Tuttavia, ho dovuto corretto l'errore negli elenchi: nel file db.192prima che IN NS nefitari.è un @mancante. Inoltre ho dovuto aggiungere il nome di dominio completo, quindi la mia linea di lavoro sembrava in questo modo @ IN NS nefitari.autun.hom.ho ignorato la sezione resolv.conf e ho seguito i consigli di jdthood. Il collegamento era già presente dall'installazione del server predefinita.
CatMan,

1
@fotanus Penso che sia perché è così a lungo che la gente ha dimenticato di tornare indietro per votare \
CodyBugstein

1

La risposta è solo un'aggiunta all'ottima descrizione sopra.

Suggerimento per la risoluzione dei problemi

Stai molto attento con i molti "." nei file di configurazione poiché ognuno è importante. Un singolo '.' Mancante può interrompere il funzionamento del server DNS. Non dovresti contare su messaggi di errore chiari.

Ho imparato la sua buona pratica per usare un numero di serie più significativo. È molto importante incrementare il numero di serie ogni volta che si modifica l'impostazione, ad esempio nuove voci aggiunte. Se non viene incrementato, un DNS secondario non riuscirà a sincronizzare le nuove impostazioni. Il formato suggerito è YYYYMMDDss, dove si sstrova il "vecchio" numero di serie. Pertanto, durante l'incremento, è necessario incrementare ssdi +1 e impostare la data sulla data corrente. Ho trovato molto utile la risoluzione dei problemi di installazione. Nel syslog puoi vedere chiaramente la data e il numero seriale del file usato.

In Ubuntu 16.04 la modifica di resolv.conf è obsoleta. Come scrive jdthood nel suo commento, sostituisci il passaggio con la seguente procedura: - Cambia / etc / default / bind9: la nuova volontà dovrebbe apparire così:

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

vedere il commento di non-una-patch per i problemi di IPV6.

  • inserisci un link simbolico di /etc/resolv.conf in /run/resolvconf/resolv.conf

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

Installazione offline

L'impostazione è esattamente la stessa e anche un po 'più semplice, poiché puoi semplicemente saltare le sezioni di inoltro. Non devono essere presenti, quindi non è necessario modificare il file /etc/bind/names.con.options.

Reti di classe B.

Ci sono alcune piccole modifiche necessarie per far funzionare questo per reti di classe B (prima che ci siano commenti, non c'è motivo per cui una rete locale, anche a casa, non possa essere una classe B invece di una rete di classe C) . In questo esempio uso il numero di rete 172.20.xx (penso che la notazione formale sia 172.20.0.0. Per maggiori informazioni google rfc1918).

Utilizzare la descrizione dalla prima risposta, sostituire tutti gli IP 192.168.xx con 172.20.xx, utilizzare per IP server 172.20.0.100 e modificare i file come segue:

  • il nome del file db.192diventa db.172.
  • il file named.conf.localottiene una diversa sezione della zona inversa:

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • Il file delle zone inverse cambia in:

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

Il riposo è lo stesso.

Spero sia utile per qualcuno.


Funziona se si desidera utilizzare entrambi gli indirizzi 172.16 e 172.20?
kojow7,

@ kojow7. Ottima domanda Non lo so, ma per scoprire che potresti controllare solo per includere una seconda zona e un secondo file inverso. È facile da testare con il comando nslookup. Oppure, forse il migliore era, basta usare una maschera di rete che include entrambi 172.16. e 172.20. La maschera di rete non sarebbe semplice come 255.255.0.0 ma conterrà altri numeri oltre a 0 e 255, ma in rete puoi trovare tutorial su come capirlo nel caso non lo sapessi già. Nel caso in cui l'hai risolto, considera di pubblicarlo qui a beneficio di altri.
CatMan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.