Un name server è un server che ospita un servizio di rete per fornire risposte alle vostre richieste riguardo ad un servizio di directory. Si associa un identificatore riconoscibile dagli essere umani a un componente interno al sistema, un identificativo o indirizzo, il programma BIND è il più famoso name server disponibile su Linux, può essere usato per fare tutto ciò che può essere fatto da un server di questo tipo, ma a volte avete bisogno di meno.
Forse avete una VPS e si desidera solo per gestire il vostro nome DNS, per questo uso si potrebbe utilizzare NSD una ottima alternativa a BIND, non fa l’inoltro delle richieste DNS e risponde solo per i propri domini. ma questo potrebbe essere sufficiente per il vostro progetto.
NSD utilizza file di zona in stile BIND; i file di zona utilizzati in BIND (named) di solito possono essere usati senza modifiche in NSD una volta dichiarati nella configurazione nsd.conf. NSD gestisce le informazioni di zona raccolte tramite ‘zonec’ in un file di database binario (nsd.db) che permette una velocità ottima all’avvio del demone NSD, la verifica strutturale della sintassi e la segnalazione degli errori sulla base dei dati è fatta in fase di compilazione. Tutto questo prima di essere messi a disposizione dei servizi stessi di NSD.
Vediamo come installarlo e configurarlo.
Installazione
Il pacchetto NSD è disponibile nei repository delle distribuzioni principali, quindi è possibile utilizzare il vostro gestore dei pacchetti per installarlo con solo 1 comando come ad esempio:
Red Hat Enterprise e Centos
yum install nsd |
Debian e Ubuntu
sudo apt-get install ns3 |
Gentoo
emerge nsd |
Configurazione di NSD (nsd.conf)
Il file di configurazione principale di NSD è nsd.conf, che si trova in un percorso diverso a seconda della distribuzione:
Debian – Ubuntu : /etc/nsd3/nsd.conf
Centos – Red Hat Enterprise : /etc/nsd/nsd.conf
La seguente è una configurazione master presa da un sistema CentOS, che fornisce il dominio linuxaria.org dall’indirizzo IP 66.228.45.214
# # nsd.conf -- the NSD(8) configuration file, nsd.conf(5). # # Copyright (c) 2001-2011, NLnet Labs. All rights reserved. # # See LICENSE for the license. # # Questo è un file di configurazione commentato, basta cambiare l'IP e le direttive sulla di zona per personalizzarlo. # Opzioni per il server NSD server: # Scommentare per ascoltare solo su un'interfaccia ip-address: 66.228.45.214 # non rispondere alle richiesteVERSION.BIND e VERSION.SERVER CHAOS # Mettete yes per ragioni di sicurezza hide-version: yes # abilitare la modalità di debug, non forkare il processo demone in background. # debug-mode: no # Ascolta solo per connessioni IPv4, mettere si per salvare un po di memoria ip4-only: yes # Ascolta solo su IPV6 # ip6-only: no #Il database da usare, questo è il percorso di default # database: "/var/lib/nsd/nsd.db" # identifica il server (CH TXT ID.SERVER). identity: "" # Identità NSID (stringa esadecimale). disabilitato di default. # nsid: "aabbccdd" # metti i messaggi su file. Il default è stderr e syslog (con facility LOG_DAEMON). # logfile: "/var/log/nsd.log" # Numero di server NSD da forkare, mettere 1 per i server VPS con poca memoria server-count: 1 # Numero massimo di connessioni TCP simultanee per server. # Questa opzione deve avere un valore inferiore a 1000, 10 è buono per una VPS con poca memoria tcp-count: 10 # Numero massimo di query servita su una singola connessione TCP. # Per impostazione predefinita è 0, il che significa che non ci sono limiti. # tcp-query-count: 0 # Sovrascrivi il default timeout di TCP (120 secondi). # tcp-timeout: 120 # Dimensione del buffer EDNS per IPv4. # ipv4-edns-size: 4096 # Dimensione del buffer EDNS per IPv6. # ipv6-edns-size: 4096 # File in cui mettere il pid di nsd # pidfile: "/var/run/nsd/nsd.pid" # porta sulla quale rispondere alle richieste , default 53. # port: 53 # le statistiche sono prodotte ogni X secondi # statistics: 3600 # se le statistiche per zona sono attivate, il file per memorizzare le statistiche. # zone-stats-file: "/var/log/nsd.stats" # La directory dove tenere i file di zona. zonesdir: "/etc/nsd/zones" #definizione della prima zona, ne serve una per ogni dominio. zone: name: linuxaria.org #file all'interno di zonesdir che contiene le informazioni sulla zona zonefile: linuxaria.org.conf
Ora dobbiamo configurare i file di zona che abbiamo definito nel file di configurazione nsd.conf.
NSD Zone file
Un file di zona può essere semplice come questo, che si limita a definire SOA, NS, MX e qualche indirizzo per il dominio:
;## NSD authoritative only DNS $ORIGIN linuxaria.org. ; default zone domain $TTL 86400 ; default time to live @ IN SOA ns1 [email protected] ( 2012082703 ; serial number 28800 ; Refresh 14400 ; Retry 864000 ; Expire 86400 ; Min TTL ) NS ns1.inuxaria.org. NS ns2.inuxaria.org. MX 10 mail.inuxaria.org. mail IN A 66.228.45.214 www IN A 66.228.45.214 ns1 IN A 66.228.45.214 ns2 IN A 66.228.45.214 * IN A 66.228.45.214 @ IN A 66.228.45.214 ;## NSD authoritative only DNS
Per NSD è un requisito configurare il vostro “NS” name server hostname (ns1.linuxaria.org in questo esempio su 66.228.45.214) allo stesso indirizzo IP in cui è in ascolto NSD, quello che abbiamo impostato nel file nsd.conf . Questo è importante perché un DNS server resolving, come Bind, chiederà a NSD quali sono gli IP dei name server autoritativi. NSD dirà che il nome del server per “linuxaria.org” è “ns1.linuxaria.org” e il suo ip è 66.228.45.214. E così è l’indirizzo 66.228.45.214 che Bind utilizzerà per la connessione.
Notare anche questa speciale sintassi:
* IN A 66.228.45.214
che è un catch-all per ogni nome nel dominio .linuxaria.org. ovvero qualsiai prefisso .linuxaria.org verrà mappato su quell’indirizzo IP.
Rebuild e restart
Ora che abbiamo definito tutto è necessario compilare il database NSD dai file di zona e avviare il demone, per farlo eseguiamo questi 2 comandi:
sudo nsdc rebuild |
in questa fase si riceverà un messaggio se ci sono errori nel file di zona, se tutto è corretto è possibile riavviare il demone con:
Debian or Unbuntu server restart
/etc/init.d/nsd3 restart |
Red Hat and Centos server restart
/etc/init.d/nsd restart |
Verificare NSD
Il modo più semplice per verificare la configurazione di NSD è quello di eseguire dal server una query DNS con dig
per il dominio appena definito, nel nostro esempio
dig @66.228.45.214 linuxaria.org
Si dovrebbe vedere qualcosa di simile a questo output:
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.2 <<>> @66.228.45.214 linuxaria.org ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER< |
In questa schermata si dovrebbe vedere nella ANSWER SECTION la corretta associazione tra il nome DNS e l’IP definito e nella AUTHORITY SECTION la corretta associazione tra i nostri NS e gli IP configurati.
Popular Posts:
- None Found
Hey, never heard of it but after reading this I’m looking forward to trying it out and see if it will replace the use of BIND here.
As always, awesome articles at LinuxAria.
take care,
– d
Thanks Daniel,
This program is new to me too, but it’s really easy to setup it if you are used to bind and usually you can save something around 30MB that on small VPS is a lot 😉
I just heard too and immediately replaced with the bind on my vps. It uses less memory and never down. Thank you for this great article bro.
For Ubuntu and Debian the package is not ns3. It is nsd3. Therefore the command to install is:
sudo apt-get install nsd3