Attenzione
Per installare e configurare correttamente dnsmasq, vai alla sessione del superutente:
Quando viene richiesta una password, immettere la password dell'utente root o dell'amministratore locale.
La cache DNS è progettata per accelerare il caricamento delle pagine del sito Web memorizzando i loro indirizzi IP in memoria. Per configurare la memorizzazione nella cache, utilizzare l'utilità dnsmasq.
Yum installa dnsmasq
Utilizzando l'editor di testo vi o nano, apri il file che si trova in /etc/dnsmasq.conf
vi /etc/dnsmasq.conf
Nano /etc/dnsmasq.conf
Modifica le seguenti opzioni:
resolv-file=/etc/resolv.dnsmasq no-poll listen-address=127.0.0.1 cache-size=150 conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
Aggiungi anche il seguente parametro:
Tutti i server
È inoltre possibile specificare le seguenti opzioni:
Ora crea un file resolv.dnsmasq utilizzando un editor di testo VI O nano e annota lì gli indirizzi dei server DNS.
Vi /etc/resolv.dnsmasq
Nano /etc/resolv.dnsmasq
Quindi aggiungere l'indirizzo IP 127.0.0.1 archiviare resolv.conf. Per fare ciò, utilizzare l'utilità « Le connessioni di rete» situata in "Menu" → "Opzioni" → "Connessioni di rete" in un ambiente grafico Cannella O "Sistema" → "Impostazioni" → "Connessioni di rete" in un ambiente grafico Compagno. Seleziona la tua connessione attiva, fai clic sul pulsante "Modifica", vai alla scheda "Impostazioni IPv4", modifica "Metodo" SU "Automatico (DHCP, solo indirizzo)", e sul campo " Server DNS aggiuntivi"scrivi l'indirizzo 127.0.0.1 , fai clic su applica e riavvia responsabile del network.
Modifica del file resolv.conf con l'aiuto editori di testo Non consigliato. Il file verrà sovrascritto al successivo riavvio del sistema.
Systemctl riavvia NetworkManager.service
Controlla il contenuto del file per assicurarti che le modifiche abbiano avuto effetto. resolv.conf:
/etc/resolv.conf
Il contenuto dovrebbe essere così:
# Generato dal server dei nomi NetworkManager 127.0.0.1
Le operazioni sopra descritte ti permetteranno di reindirizzare tutte le richieste dns alla macchina locale.
Aggiungi un servizio dnsmasq per avviare automaticamente e riconnettersi alla sessione:
Systemctl abilita dnsmasq.service --now
Per reimpostare la cache è sufficiente riavviare il servizio:
Systemctl riavvia dnsmasq.service
Verifica se il servizio è abilitato:
Systemctl stato dnsmasq.service
Controlla la porta 53:
Netstat -ntlp | grep:53 tcp 0 0 0.0.0.0:53 0.0.0.0:* ASCOLTA 7319/dnsmasq tcp6 0 0:::53:::* ASCOLTA 7319/dnsmasq
Ora prova a utilizzare l'utilità dig per accedere più volte al sito google.com
Scava google.com | grep "Tempo di interrogazione" ;; Tempo di interrogazione: 135 ms
Se la memorizzazione nella cache di query dns funziona, in quasi tutte le richieste successive, la riga evidenziata tempo di interrogazione sarà uguale a zero.
;; Tempo di interrogazione: 0 ms
In caso contrario, varierà da 0 in su a ogni nuova richiesta.
Di conseguenza, il server DNS primario della rete subirà un carico molto inferiore.
Se trovi un errore, evidenzia il testo e fai clic Ctrl+Invio.
Buon tempo, lettori. Continuando il materiale teorico su, nell'attuale articolo voglio considerare un esempio pratico installazioni e impostazioni diverso Configurazioni del server BIND. Nell'articolo descriverò Impostazione DNS-cache e pieno Server principale DNS. Inizierò la descrizione con concetti generali e passaggi necessari per organizzare qualsiasi Server DNS.
Di nomeè un demone di cui fa parte pacchetto bind9 ed essere server dei nomi di dominio. Demone chiamato può implementare le funzioni di server di qualsiasi tipo: padrone, schiavo, nascondiglio. Nel diagramma sopra, ho cercato di visualizzare quello principale nel modo più trasparente possibile. come funziona il server DNS BIND. Il file binario che fa la maggior parte del lavoro si trova in /usr/sbin/named. Prende le impostazioni dal file principale file di configurazione, che è chiamato denominato.conf e si trova nel catalogo /etc/bind. nella configurazione principale descritto directory di lavoro del server, spesso una directory /var/cache/bind, in cui giacciono file di descrizione della zona e altri file di servizio. Corrispondenza nomi di zona E file di descrizione della zona imposta sezione di zona con parametro file. sezione di zona stabilisce anche il tipo di responsabilità questo server per zona (master, slave, ecc.) e definisce anche parametri speciali per la zona corrente (ad esempio, su quale interfaccia elaborare le richieste per la zona corrente). Nei file di descrizione della zona contiene parametri per zone e record di risorse (i percorsi indicati in questo paragrafo possono differire, dipende da Distribuzione linux o parametri).
Questo schema generale lavoro che ti aiuterà a non confonderti in futuro quando consideri configurazioni specifiche.
Il formato del file di configurazione per la 4a versione del programma differisce da quello utilizzato nell'ottava e nella nona versione LEGAMENTO. Dato che non vedo l'ora di installare un nuovo DNS servitore e vecchia versione Non vedo il punto di impostarlo, quindi prenderò in considerazione la configurazione della nuova versione.
Affinché il DNS funzioni correttamente, deve avere un'estensione . Il DNS in questo articolo verrà impostato su una distribuzione Debian e verranno annotate anche le specifiche di altre distribuzioni. La configurazione della rete dello stand è la seguente:
DNS: ~# CAT/ETC/Rete/Interfacce Auto LO IFACE LOT LOOPBACK AUTH0 IFACE ETH0 INETCENTIC 10.0.152 Netmask 255.255.255.0 Gateway 10.0.254 Auto ETHA ATH Faccia ETH1 Inet Indirizzo statico 192.168.1 Netmask 255.255.255.0
Dove 10.0.0.152/24 - interfaccia esterna (sottorete assegnata dal provider), 192.168.1.1/24 - interno (Rete locale). La zona personalizzata sarà denominata example.com. Nell'esempio con server schiavo, il server secondario si troverà sull'IP 10.0.0.191 .
Affinché il server DNS funzioni, è necessario vincolare9 (su alcune distribuzioni - legamento ). Come notato nel diagramma, il file di configurazione principale LEGAMENTOè il file denominato.conf (dato file può essere inserito in una directory /eccetera, a volte dentro /etc/bind).
sintassi del file named.conf rispetta le seguenti regole:
Indirizzi IP- L'elenco IP deve essere separato da ";" , è possibile specificare una sottorete nel formato 192.168.1.1/24 o 192.168.1.1/255.255.255.0, (per escludere l'IP è necessario anteporre un segno!), è possibile specificare i nomi "qualsiasi", "nessuno", "localhost" tra virgolette.
Commenti- le righe che iniziano con #, // e racchiuse tra /* e */ sono considerate commenti.
IN file di descrizione della zona -simbolo @è una "variabile" che contiene il nome della zona specificata nel file di configurazione denominato.conf o nella direttiva @ $ORIGINE la descrizione della zona corrente.
Ogni stringa completata i parametri devono terminare con un carattere; .
Acl (lista di controllo accessi)- consente di impostare un elenco denominato di reti. Formato della sezione: acl "nome_rete" (ip; ip; ip; );
Sezione Opzioni imposta opzioni globali file di configurazione che controlla tutte le zone. Questa sezione ha il seguente formato: opzioni(opzioni_sezione_opzioni);. Le opzioni possono essere "nidificate". Sezione di zona, mentre ignora le impostazioni globali. Spesso usato dichiarazioni di opzioni:
Specifica la descrizione delle zone. Formato della sezione: zona( zone_section_statements}; Operatori che sono più comunemente usati:
Valori temporali nei file di zona per impostazione predefinita è specificato in secondi se non sono seguiti da una delle seguenti lettere: S - secondi, M - minuti, H - ore, D - giorni, W - settimane. Di conseguenza, la voce 2h20m5s avrà un valore di 2 ore 20 minuti 5 secondi e corrisponderà a 8405 secondi.
Eventuali nomi host/voci che non terminano con punto conta non FQDN nome e sarà completato con il nome della zona corrente. Ad esempio, una voce domen nel file di zona examle.com si espanderà nel nome FQDN domen.examle.com. .
IN BIND file di configurazione può essere applicato quanto segue direttive:
Separatamente, vorrei descrivere parametro consenti-trasferimento ( 10.0.0.191; );. Questo parametro descrive i server autorizzati a scaricare una copia della zona - cosiddetto schiavo del server. Nell'esempio seguente, analizzeremo l'impostazione DNS schiavo.
Affinché la registrazione funzioni correttamente, è necessario creare la directory appropriata e assegnare i diritti necessari:
Dns:~# mkdir /var/log/bind/ dns:~# chmod 744 /var/log/bind/ dns:~# ps aux | grep denominato bind 4298 0.0 3.4 46792 13272 ? Ssl Jul05 0:00 /usr/sbin/named -u bind root 4815 0.0 0.1 3304 772 pts/4 S+ 18:19 0:00 grep named dns:~# chown bind /var/log/bind/ dns:~# ls -ld /var/log/bind/ drwxr--r-- 2 bind root 4096 6 luglio 18:18 /var/log/bind/
Dns:~# cat /var/cache/bind/example.com $TTL 3D @ IN SOA ns.example.com. root.example.com. (2011070601; seriale 8H; aggiornamento 2H; riprova 2W; scadenza 1D); minimo @ IN NS ns.example.com. @ IN NS ns2.example.com. @ IN A 10.0.0.152 @ IN MX 5 mx.example.com. ns IN A 10.0.0.152 ns2 IN A 10.0.0.191 mx IN A 10.0.0.152 www IN CNAME @
così come nel dominio in-addr.arpa.
Dns:~# cat /var/cache/bind/0.0.10.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001 ; Seriale 3600 ; Aggiorna 900 ; Riprova 3600000 ; Scadenza 3600) ; Minimo IN NS ns.examle.com. IN NS ns2.example.com. 152 IN PTR esempio.com. 191 IN PTR ns.example.com. * IN PTR esempio.com. dns:~# cat /var/cache/bind/1.168.192.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001 ; Seriale 3600 ; Aggiorna 900 ; Riprova 3600000 ; Scadenza 3600) ; Minimo IN NS ns.examle.com. IN NS ns2.example.com. * IN PTR esempio.com.
La nostra rete è piccola, si presume che ci siano pochissime macchine sulla rete. Tutti i servizi di rete sono ospitati sullo stesso host example.com., quindi il DNS principale (ns.example.com.) e server email(mx.example.com.) punta a una macchina (10.0.0.152).
funzione principale schiavo del server- sincronizzazione automatica della descrizione della zona con il server master. Questo compito disciplinato dal documento RFC 1034 Nel cap 4.3.5. Secondo questo documento si consiglia di scambiare dati tra server tramite una richiesta AXFR. Per questa richiesta per uno Connessione TCP l'intera zona deve essere trasmessa (RFC 1035).
Anche, server DNS schiavo condivide il carico con il server principale o assume l'intero carico in caso di guasto sul primo server.
Prima di procedere a configurazione di un server DNS slave, è necessario verificare di poter ottenere manualmente la zona dal secondario utilizzando il seguente comando:
Root@debian:~# [email protected] example.com. axfr ;<<>> DiG 9.7.3<<>> @10.0.0.152 esempio.com. axfr ; (1 server trovato) ;; opzioni globali: +cmd example.com. 259200 IN SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 esempio.com. 259200 IN NS ns.example.com. esempio.com. 259200 IN NS ns2.example.com. esempio.com. 259200 IN UN esempio.com 10.0.0.152. 259200 IN MX 5 mx.example.com. mx.example.com. 259200 IN A 10.0.0.152 ns.example.com. 259200 IN A 10.0.0.152 ns2.example.com. 259200 IN A 10.0.0.191 www.example.com. 259200 IN CNAME esempio.com. esempio.com. 259200 IN SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400; Tempo di interrogazione: 14 ms ;; SERVER: 10.0.0.152#53(10.0.0.152) ;; QUANDO: Ven 8 Lug 15:33:54 2011 ;; Dimensione XFR: 11 record (messaggi 1, byte 258)
In totale, otteniamo la configurazione del server slave:
[e-mail protetta]:~# cat /etc/bind/named.conf options ( directory "/var/cache/bind"; allow-query ( any; ); // risponde alle richieste da tutte le interfacce recursion no; // disabilita le richieste ricorsive auth-nxdomain no; // per compatibilità RFC1035 listen-on-v6 ( nessuno; ); // non abbiamo bisogno della versione IPv6 "sconosciuta"; // non visualizzare la versione del server DNS nelle risposte ); // le zone descritte di seguito definiscono il server come autorevole per le interfacce // di loopback, nonché per le zone broadcast (secondo RFC 1912) zona "localhost" ( digitare master; file "localhost"; ); zona "127.in-addr.arpa" ( digitare master; file "127.in-addr.arpa"; ); zona "0.in-addr.arpa" ( digitare master; file "0.in-addr.arpa"; ); zona "255.in-addr.arpa" ( digitare master; file "255.in-addr.arpa"; ); // descrizione della zona principale zone "example.com" ( digita slave; file "example.com"; masters ( 10.0.0.152; ); ); // zona di descrizione della zona inversa "0.0.10.in-addr.arpa" ( digitare slave; file "0.0.10.in-addr.arpa"; masters ( 10.0.0.152; ); ); // logging settings logging ( canale "misc" ( file "/var/log/bind/misc.log" versioni 4 dimensione 4m; tempo di stampa SI; gravità di stampa SI; categoria di stampa SI; ); canale "query" ( file "/var/log/bind/query.log" versioni 4 dimensione 4m; print-time YES; print-severity NO; print-category NO; ); default categoria ( "misc"; ); query categoria ( "query "; ); );
dopo aver riavviato il nostro server schiavo copierà in modo sicuro le informazioni di cui ha bisogno dal server principale, come indicato dalla presenza di file nella directory:
[e-mail protetta]:~# ls -la /var/cache/bind/ total 28 drwxrwxr-x 2 root bind 4096 Jul 8 18:47 . drwxr-xr-x 10 root root 4096 8 luglio 15:17 .. -rw-r--r-- 1 bind bind 416 8 luglio 18:32 0.0.10.in-addr.arpa ...... - rw-r--r-- 1 bind bind 455 8 luglio 18:32 example.com ........
Fondamentalmente, /stroallow-transfer (pngp server schiavo potrebbe non memorizzare una copia della zona nel suo sistema di file. Questa copia è necessaria solo al momento dell'avvio del DNS. Avere una copia della zona nel file system può prevenire un arresto anomalo se il server master non è disponibile durante l'avvio del DNS slave. Se non si specifica l'opzione file nella sezione zone, non viene creata alcuna copia.
In realtà, avendo configurato il server, sarebbe bello proteggerlo. Sappiamo che il server è in esecuzione sulla porta 53/udp. Dopo aver letto l'articolo e familiarizzato con esso, puoi creare regole di filtraggio del traffico di rete:
Dns ~ # iptables-save # regole iptables generiche per DNS *filter:INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate NON VALIDO -j DROP # consente l'accesso rete locale al server DNS: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p icmp -j ACCEPT -A OUTPUT -p udp -m udp --sport 32768:61000 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 32768:61000 -j ACCEPT -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # consente l'accesso al server DNS per effettuare query in uscita -A OUTPUT -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT COMMIT
Questo è un tipico esempio! Per impostare le regole di iptables per le tue attività e la configurazione di rete, devi capire come funziona netfilter in Linux leggendo gli articoli precedenti.
La fonte principale per identificare i problemi DNS è . Ecco un esempio di errori di avvio quando ho commesso un errore con il percorso a file di zona dei server principali:
Jul 5 18:12:43 server dns denominato: avvio di BIND 9.7.3 -u bind Jul 5 18:12:43 server dns denominato: compilato con "--prefix=/usr" "--mandir=/usr/ share/man" "--infodir=/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "- -with-libtool" "--enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "- -with-dlz-postgres=no" "--with-dlz-mysql=no" "--with-dlz-bdb=yes" "--with-dlz-filesystem=yes" "--with-dlz-ldap =yes" "--with-dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" " CPPFLAGS=" 5 luglio 18:12:43 server dns denominato: limite modificato sui file aperti da 1024 a 1048576 5 luglio 18:12:43 server dns denominato: trovata 1 CPU, utilizzando 1 thread di lavoro 5 luglio 18:12: 43 dns-server denominato: utilizzo fino a 4096 socket Jul 5 18:12:43 dns-server denominato: caricamento della configurazione da "/etc/bind/named.conf" Jul 5 18:12:43 dns-server denominato: lettura costruita -in chiavi attendibili dal file "/etc/bind/bind.keys" Jul 5 18:12:43 dns-server denominato: utilizzando l'intervallo di porte UDP/IPv4 predefinito: Jul 5 18:12:43 dns-server denominato: utilizzando il valore predefinito Intervallo di porte UDP/IPv6: Jul 5 18:12:43 dns-server denominato: in ascolto sull'interfaccia IPv4 lo, 127.0.0.1#53 Jul 5 18:12:43 dns-server denominato: in ascolto sull'interfaccia IPv4 eth1, 192.168.1.1 #53 Jul 5 18:12:43 dns-server named: generazione della chiave di sessione per il DNS dinamico Jul 5 18:12:43 dns-server named: impossibile configurare root hints da "/etc/bind/db.root": file non trovato Jul 5 18:12:43 dns-server denominato: configurazione in caricamento: file non trovato # file non trovato Jul 5 18:12:43 dns-server denominato: in uscita (a causa di un errore irreversibile) Jul 5 18:15:05 server dns denominato: avvio di BIND 9.7.3 -u bind Jul 5 18:15:05 server dns denominato: compilato con "--prefix=/usr" "--mandir=/usr/share/man" "-- infodir=/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "--with-libtool" "- -enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "--with-dlz-postgres= no" "--con-dlz-mysql=no" "--con-dlz-bdb=si" "--con-dlz-filesystem=si" "--con-dlz-ldap=si" "--con -dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" "CPPFLAGS=" 5 18 luglio: 15:05 server dns denominato: limite modificato sui file aperti da 1024 a 1048576 5 luglio 18:15:05 server dns denominato: trovata 1 CPU, utilizzando 1 thread di lavoro 5 luglio 18:15:05 server dns denominato: utilizzando fino a 4096 socket 5 lug 18:15:05 server dns denominato: caricamento della configurazione da "/etc/bind/named.conf" 5 lug 18:15:05 server dns denominato: utilizzo dell'intervallo di porte UDP/IPv4 predefinito: lug 5 18:15:05 server dns denominato: utilizzo dell'intervallo di porte UDP/IPv6 predefinito: 5 luglio 18:15:05 server dns denominato: in ascolto sull'interfaccia IPv4 lo, 127. 0.0.1#53 Jul 5 18:15:05 dns-server denominato: in ascolto sull'interfaccia IPv4 eth1, 192.168.1.1#53 Jul 5 18:15:05 dns-server denominato: automatico zona vuota: 254.169.IN-ADDR. ARPA 5 luglio 18:15:05 server dns denominato: zona vuota automatica: 2.0.192.IN-ADDR.ARPA 5 luglio 18:15:05 server dns denominato: zona vuota automatica: 100.51.198.IN-ADDR. ARPA 5 luglio 18:15:05 server dns denominato: zona vuota automatica: 113.0.203.IN-ADDR.ARPA 5 luglio 18:15:05 server dns denominato: zona vuota automatica: 255.255.255.255.IN-ADDR. ARPA Jul 5 18:15:05 dns-server denominato: zona vuota automatica: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. .ARPA Jul 5 18:15:05 dns-server denominato: zona vuota automatica: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. IP6.ARPA 5 luglio 18:15:05 server dns denominato: zona vuota automatica: D.F.IP6.ARPA 5 luglio 18:15:05 server dns denominato: zona vuota automatica: 8.E.F.IP6.ARPA 5 luglio 18:15 :05 dns-server denominato: automatico zona vuota: 9.E.F.IP6.ARPA Jul 5 18:15:05 dns-server denominato: automatico zona vuota: A.E.F.IP6.ARPA Jul 5 18:15:05 dns-server denominato: automatico zona vuota: B.E.F.IP6.ARPA Jul 5 18:15:05 dns-server denominato: automatico zona vuota: 8.B.D.0.1.0.0.2.IP6.ARPA Jul 5 18:15:05 dns-server denominato: zona 0. in-addr.arpa/IN: caricato seriale 1 Jul 5 18:15:05 dns-server denominato: zona 127.in-addr.arpa/IN: caricato seriale 1 Jul 5 18:15:05 dns-server denominato: zona 255.in-addr.arpa/IN: caricato seriale 1 Jul 5 18:15:05 dns-server denominato: zone localhost/IN: caricato seriale 2 Jul 5 18:15:05 dns-server denominato: in esecuzione # avviato correttamente
Sono un ottimo strumento diagnostico.
Riepilogo
Nell'articolo corrente, ho descritto come impostare le configurazioni DNS di base del server BIND. Lo scopo di questo articolo era quello di dare un'idea di come funziona il server BIND su UNIX. Praticamente non ho toccato i problemi di sicurezza DNS e ho toccato poco impostazioni specifiche come il funzionamento del server in modalità edge, quando reti diverse dato Informazioni varie sulla/e zona/e. Per una comprensione più approfondita, fornirò un elenco di fonti aggiuntive, in cui, spero, sarà possibile ottenere le informazioni necessarie. Ho messo fine a tutto questo. Ci vediamo.
Domain Name System: http://citforum.ru/internet/dns/khramtsov/
RFC 1034- Nomi di dominio - Concetti e strutture: http://tools.ietf.org/html/rfc1034
RFC 1035- Nomi di dominio - Implementazione e specifica: http://tools.ietf.org/html/rfc1035
RFC 1537- Errori comuni di configurazione del file di dati DNS: http://tools.ietf.org/html/rfc1537
RFC 1591- Struttura e delega del Domain Name System: http://tools.ietf.org/html/rfc1591
RFC 1713- Strumenti per il debug del DNS: http://tools.ietf.org/html/rfc1713
RFC 2606- Nomi DNS di primo livello riservati: http://tools.ietf.org/html/rfc2606
Sicurezza DNS (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
BIND 9 Manuale di riferimento per l'amministratore: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
Modello BIND sicuro: http://www.cymru.com/Documents/secure-bind-template.html
I parametri di configurazione sono ben definiti surusso: http://www.bog.pp.ru/work/bind.html
Creazione automatica di un file di zona: http://www.zonefile.org/?lang=en#zonefile
Ogni anno, la velocità di Internet, sia l'ultimo miglio che i canali principali, aumenta. Solo una cosa è invariabile: la latenza ha già incontrato limiti fisici: la velocità della luce in una fibra ottica è di circa 200 mila chilometri al secondo e, di conseguenza, più veloce di ~ 150 ms, una risposta da un server attraverso l'Oceano Atlantico lo farà non essere ricevuto nel prossimo futuro (anche se ovviamente ci sono fronzoli, come una fibra ottica con nucleo d'aria o comunicazione a relè radio, ma questo è difficilmente accessibile ai comuni mortali).
Quando proviamo, ad esempio, dalla Russia ad aprire un sito Web situato negli Stati Uniti (il suo server NS è probabilmente nello stesso posto) e il dominio non è stato trovato nella cache DNS del tuo provider, allora dovremo attendere un molto tempo anche su Internet gigabit, forse anche un intero secondo: mentre attraversiamo l'oceano riceveremo i nomi dei server NS del dominio, mentre risolviamo il loro IP, mentre inviamo e riceviamo la richiesta DNS vera e propria.. .
Un paio di anni fa, Google ha avviato i propri server DNS pubblici e, per promuovere la transizione, ha sviluppato l'utilità NameBench, che esegue test DNS sulla cronologia di navigazione e mostra quanto il DNS di Google è più veloce del server DNS del tuo ISP.
Ma sono riuscito a far funzionare il mio server DNS più veloce di google DNS pubblico, e in questa breve nota voglio condividere i risultati.
È l'inclusione del polling parallelo che ci offre il vantaggio principale in termini di velocità., Perché quando troviamo il risultato nella cache di uno qualsiasi dei provider, otteniamo il risultato molto rapidamente e non aspettiamo una risoluzione completa e lenta se il primo provider non ha una risposta nella cache.
Installato in Ubuntu - banale apt-get.
In linea di massima il caching può essere reso meno aggressivo (ad esempio min_ttl=1m), ma non ci sono stati particolari problemi durante l'anno di operatività. In caso di problemi, se lo desideri, puoi cancellare una voce dalla cache:
sudo pdnsd-ctl record 3.14.by delete o tutto in una volta:
sudo pdnsd-ctl cache vuota
Secondo i risultati del test, NameBench ci dice felicemente:
8.8.8.8 Replica più lenta di SYS-192.167.0.98 8.8.4.4 Replica più lenta di SYS-192.167.0.98
Lo scopo del DNS è tradurre i nomi di dominio facilmente ricordabili dagli esseri umani in indirizzi IP comprensibili ai computer, un processo chiamato risoluzione dei nomi.
Cosa ci darà l'installazione del nostro server DNS di cache?!
Ciò accelererà leggermente la risposta dei siti + Linux non percepisce molto bene i nomi NetBios e talvolta devi trovare computer o stampanti all'interno della rete locale, ma vuoi farlo per nome.
Ricordare gli indirizzi IP non è conveniente, ma anche salire costantemente sul registro del server DHCP non è il nostro metodo. In tali casi, è necessario il DNS nella rete locale.
L'installazione del pacchetto bind9 stesso non è difficile, i plug di solito sorgono nella fase della sua configurazione, perché dopo i file di configurazione del sistema di facile lettura, una sintassi incomprensibile ricade su una persona, tra l'altro, molto simile al linguaggio di programmazione C. il server funzionerà all'interno della rete locale, quindi non ha senso trasferirlo in un ambiente chroot e l'intera configurazione richiede pochissimo tempo.
Su questo, la parte lirica può essere completata, procediamo all'installazione e alla configurazione.
Installa il server DNS Bind9:
sudo apt-get install bind9
Una volta completato, scaricato e installato, dobbiamo modificare il suo file di configurazione:
sudo nano /etc/bind/named.conf.options
Troviamo la sezione, si trova proprio all'inizio del file di configurazione, non c'è nient'altro oltre a questo ...
Options ( directory "/var/cache/bind"; // Se c'è un firewall tra te e i nameserver con cui vuoi // comunicare, potresti dover correggere il firewall per consentire a più // porte di comunicare. Vedi http: //www.kb.cert.org/vuls/id/800113 // Se il tuo ISP ha fornito uno o più indirizzi IP per server dei nomi // stabili, probabilmente vorrai usarli come forwarder. // Togli il commento dal seguente blocco, e inserire gli indirizzi sostituiscono // il segnaposto tutto-0. // forwarder ( // 0.0.0.0; // ); auth-nxdomain no; # conforme a RFC1035 listen-on-v6 ( any; ); );
La sezione forwarder è responsabile di dove verrà inviata la richiesta DNS per la risoluzione dei nomi se non si trova nel proprio database. Ultimamente non sono per niente contento, il lavoro di questi server presso il provider può essere collegato a quelli di terze parti, ad esempio quelli di Google, è molto facile ricordare l'IP 8.8.
Modifichiamo la sezione, prima devi rimuovere i commenti da essa e aggiungere DNS di terze parti, se è necessario aggiungere più server, ad esempio, nel caso in cui il server di Google non resista alle tue richieste e si rompa :), quindi il L'IP di altri server può essere scritto in una colonna, quindi puoi ottenere una maggiore resilienza.
spedizionieri ( 8.8.8.8; 193.58.251.251; //Servizio DNS russo -SkyDNS );
In questa sezione è meglio inserire l'IP del server che hai specificato nel file /etc/resolv.conf o entra lì nella sezione server dei nomi questo IP
Salva le modifiche ed esci
Riavvia il server e verifica
Reclutamento in riga di comando nslookup mail.ru
Dovrebbe emettere:
Risposta non autorevole: Nome: mail.ru Indirizzi: 94.100.191.202
Ciò suggerisce che il nostro server non è il principale al servizio di questa zona (mail.ru), ma le richieste sono state aggiunte alla cache!
Ora dobbiamo creare una zona DNS per la nostra rete in modo che le macchine possano trovare vari servizi di rete: possono esserci, ad esempio, stampanti di rete, possono essere indipendenti o condivise su altre workstation.
La nostra zona può essere chiamata orgname -i.e. Nome dell'organizzazione.
Prima di tutto, creiamo una zona, per questo modifichiamo denominato.conf.local
sudo nano /etc/bind/named.conf.local
e aggiungervi quanto segue:
zona "orgname" ( digitare master; file "/etc/bind/db.orgname"; );
Salva ed esci
Ora dobbiamo creare un file di configurazione della zona
sudo nano /etc/bind/db.orgname
e incollare quanto segue al suo interno:
(Si prega di prestare attenzione alla sintassi del file di configurazione, anche i punti contano)
@ IN SOA orgname. root.orgname. (20101015 4h ; tempo di aggiornamento -4 ore 1h ; ripetizione ogni ora 1w ; per quanto tempo conservare le informazioni -1 settimana 1d) ); Record TTL (time to live) - 1 giorno @ IN NS orgname. ; nome del server dei nomi @ IN A 192.168.10.1 ; A - record - Indirizzo IP del nostro server DNS che serve questa zona, @ significa che questa è la zona root. * IN CNAME @ stampante IN A 192.168.10.25 ; Puoi creare un record DNS stampante di rete che si trova a 192.168.10.25
Ora, quando si aggiunge un nuovo file dispositivo di rete, devi fare 2 cose:
1) Prenota un indirizzo IP per Server DHCP come fare questo, puoi leggere nell'articolo-
2) Crea una zona DNS per questo IP, come nome dispositivo IN A XXX.XXX.XXX.XXX. Dove: devicename - nome di rete del dispositivo; XXX.XXX.XXX.XXX è il suo indirizzo IP che è riservato sul server DHCP.
Ora dobbiamo modificare il file resolv.conf
sudo nano /etc/resolv.conf
Ed entra lì:
Server dei nomi 127.0.0.1
Tutto quello che c'era poteva essere commentato mettendo #
Riavvio del server
Questo viene fatto in modo che il server cerchi tutto nel proprio database e solo allora BIND reindirizzerà le richieste al server 8.8.8.8 il cui IP è inserito nella direttiva spedizionieri.
Ora puoi verificare se funziona:
Se il test viene eseguito da Windows:
ping nomedispositivo.nomeorg
Se testiamo da sotto Linux:
ping nomedispositivo.nomeorg -c 4
I ping dovrebbero andare all'IP che hai specificato invece che a XXX.XXX.XXX.XXX
Questo completa la configurazione del server DNS.
Ogni anno, la velocità di Internet, sia l'ultimo miglio che i canali principali, aumenta. Solo una cosa è invariabile: la latenza ha già incontrato limiti fisici: la velocità della luce in una fibra ottica è di circa 200 mila chilometri al secondo e, di conseguenza, più veloce di ~ 150 ms, una risposta da un server attraverso l'Oceano Atlantico lo farà non essere ricevuto nel prossimo futuro (anche se ovviamente ci sono fronzoli, come una fibra ottica con nucleo d'aria o comunicazione a relè radio, ma questo è difficilmente accessibile ai comuni mortali).
Quando proviamo, ad esempio, dalla Russia ad aprire un sito Web situato negli Stati Uniti (il suo server NS è probabilmente nello stesso posto) e il dominio non è stato trovato nella cache DNS del tuo provider, allora dovremo attendere un molto tempo anche su Internet gigabit, forse anche un intero secondo: mentre attraversiamo l'oceano riceveremo i nomi dei server NS del dominio, mentre risolviamo il loro IP, mentre inviamo e riceviamo la richiesta DNS vera e propria.. .
Un paio di anni fa, Google ha avviato i propri server DNS pubblici e, per promuovere la transizione, ha sviluppato l'utilità NameBench, che esegue test DNS sulla cronologia di navigazione e mostra quanto il DNS di Google è più veloce del server DNS del tuo ISP.
Ma sono riuscito a creare il mio server DNS più veloce di Google Public DNS e in questa breve nota voglio condividere i risultati.
È l'inclusione del polling parallelo che ci offre il vantaggio principale in termini di velocità., Perché quando troviamo il risultato nella cache di uno qualsiasi dei provider, otteniamo il risultato molto rapidamente e non aspettiamo una risoluzione completa e lenta se il primo provider non ha una risposta nella cache.
Installato in Ubuntu - banale apt-get.
In linea di massima il caching può essere reso meno aggressivo (ad esempio min_ttl=1m), ma non ci sono stati particolari problemi durante l'anno di operatività. In caso di problemi, se lo desideri, puoi cancellare una voce dalla cache:
sudo pdnsd-ctl record 3.14.by delete o tutto in una volta:
sudo pdnsd-ctl cache vuota
Secondo i risultati del test, NameBench ci dice felicemente:
8.8.8.8 Replica più lenta di SYS-192.167.0.98 8.8.4.4 Replica più lenta di SYS-192.167.0.98