DNS e DHCP in CentOS 7 - Reti SMB

Indice generale della collana: Reti di computer per PMI: Introduzione

Ciao amici! In questo articolo vedremo come implementare gli importanti servizi di rete DNS e DHCP in CentOS Linux, nello specifico la versione 7.2.

  • Alcuni articoli sul DNS fanno riferimento al fatto che l'implementazione di questo servizio è un po 'oscura e difficile. Non sono del tutto d'accordo con questa affermazione. Preferisco dire che è un po 'concettuale e che molti dei suoi file di configurazione hanno una sintassi esigente. Fortunatamente, abbiamo strumenti per controllare, passo dopo passo, la sintassi di ogni file di configurazione che modifichiamo. Pertanto, cercheremo di rendere la lettura di questo post il più piacevole e divertente possibile..

Per chi cerca concetti di base su entrambi i servizi, consigliamo vivamente di iniziare la ricerca su Wikipedia, sia nella versione spagnola che in quella inglese. Non è meno vero che gli articoli in inglese sono quasi sempre più completi e coerenti. Tuttavia, Wikipedia è un ottimo punto di partenza.

A coloro che desiderano davvero approfondire la conoscenza di DNS e BIND si consiglia di leggere il libro " OReilly – DNS and BIND 4th ed " scritto da Paul Albitz e Cricket Liu , o un'edizione successiva che sicuramente esiste.

Abbiamo già pubblicato un articolo su questo argomento intitolato " DNS e DHCP in openSUSE 13.2 Harlequin – Reti per PMI " per coloro che preferiscono un ambiente grafico. Tuttavia, d'ora in poi, troverete articoli su questo argomento – ma non su altri – scritti con un ampio utilizzo di un emulatore di terminale o di console. In altre parole, nello stile classico utilizzato dagli amministratori di sistema UNIX®/Linux.

Se desiderate approfondire l'argomento del titolo di questo articolo, " Reti di PMI ", potete visitare la pagina " Reti di PMI: Prima analisi virtuale " su questo stesso blog . Lì troverete i link a molti altri articoli pubblicati.

  • Dopo che l'installazione del sistema operativo CentOS 7 è terminata con i pacchetti che consigliamo, edirectory l /usr/share/doc/bind-9.9.4/ Contiene una buona quantità di documentazione che ti consigliamo di consultare prima di avventurarti in una ricerca su Internet senza prima sapere che, a portata di mano ea casa tua, puoi trovare quello che stai cercando.

Installazione del sistema di base

Dati generali del dominio e del server DNS

Nome di dominio: desdelinux.fan
Nome del server DNS: DNS.desdelinux.fan
indirizzo IP: 192.168.10.5
Maschera di sottorete: 255.255.255.0

Installazione

Partiamo da un'installazione nuova o pulita del sistema operativo CentOS 7, come descritto nell'articolo precedente " CentOS 7 Hypervisor I – Reti per PMI ". Dobbiamo solo apportare le seguenti modifiche:

  • Qui alla Imagen 22 «SELEZIONE DEL SOFTWARE«, Consigliamo di scegliere nella colonna di sinistra«Ambiente di base»L'opzione corrispondente a«Server infrastruttura«, Mentre nella colonna di destra«Plugin per l'ambiente selezionato»Seleziona la casella di controllo«Server dei nomi DNS«. In seguito installeremo il server DHCP.
  • Ricordiamo la dichiarazione dei repository aggiuntivi come mostrato nel file Imagen 23, dopo aver impostato il «RETE E NOME DEL TEAM«.
  • Le immagini che si riferiscono alle partizioni che creeremo sul nostro disco rigido sono fornite solo come guida. Sentiti libero di selezionare le partizioni a tua discrezione, pratica e buon senso.
  • Finalmente, nel Immagine 13 «NETWORK & TEAM NAME», dobbiamo modificare i valori in base ai parametri generali del dominio e del server DNS dichiarati, senza dimenticare di specificare il nome dell'host -in questo caso «dns«- dopo che la configurazione di rete è stata completata. È positivo da fare ping -da un altro host- all'indirizzo IP specificato dopo che la rete è attiva:

DNS e DHCP su CentOS

Sono davvero pochi e molto evidenti i cambiamenti che dobbiamo apportare rispetto all'articolo precedente.

Controlli e adeguamenti iniziali

Dopo aver installato il sistema operativo dobbiamo rivedere almeno i seguenti file, e per questo avviamo una sessione tramite SSH dal nostro computer amministratore di sistema.desdelinux.fan:

buzz @ sysadmin: ~ $ ssh 192.168.10.5
[email protected]Password di : Ultimo accesso: sab 28 gen 09:48:05 2017 da 192.168.10.1
[buzz @ dns ~] $

L'operazione di cui sopra potrebbe richiedere più tempo del normale ed è principalmente dovuta al fatto che non abbiamo ancora un DNS sulla LAN. Controlla più tardi che il DNS funzioni.

[buzz @ dns ~] $ cat / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

[buzz @ dns ~] $ cat / etc / hostname
dns

[buzz @ dns ~] $ cat / etc / sysconfig / network-scripts / ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=946f5ac9-238a-4a94-9acb-9e3458c680fe
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.5
PREFIX=24
GATEWAY=192.168.10.1
DNS1=127.0.0.1
DOMAIN=desdelinux.fan

[buzz @ dns ~] $ cat /etc/resolv.conf 
# Generato dalla ricerca NetworkManager desdelinuxserver dei nomi .fan 127.0.0.1

Le configurazioni principali rispecchiano le nostre scelte. Si noti che, anche su un server Red Hat 7 – CentOS 7 , NetworkManager è configurato di default per gestire le interfacce di rete, sia cablate che wireless (Wi-Fi), le connessioni VPN, le connessioni PPPoE e qualsiasi altra connessione di rete.

[buzz @ dns ~] $ sudo systemctl status networkmanager
[sudo] password per buzz: ● networkmanager.service Caricato: non trovato (motivo: nessun file o directory di questo tipo) Attivo: inattivo (morto)

[buzz @ dns ~] $ sudo systemctl status NetworkManager
● NetworkManager.service - Network Manager caricato: caricato (/usr/lib/systemd/system/NetworkManager.service; abilitato; preimpostazione del fornitore: abilitata) Attivo: attivo (in esecuzione) da sab 2017-01-28 12:23:59 EST; 12min fa PID principale: 705 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─705 / usr / sbin / NetworkManager --no-daemon

Red Hat – CentOS consente anche di connettere e disconnettere le interfacce di rete utilizzando i classici comandi `ifup` e `ifdown` . Eseguiamo i seguenti comandi in una console del server:

[root @ dns ~] # ifdown eth0
Il dispositivo "eth0" è stato disconnesso correttamente.

[root @ dns ~] # ifup eth0
Connessione attivata correttamente (percorso D-Bus attivo: / org / freedesktop / NetworkManager / ActiveConnection / 1)
  • Consigliamo non modificare le impostazioni predefinite offerte da CentOS 7 rispetto a NetworkManager.

Dichiariamo definitivamente i repository che utilizzeremo e aggiorneremo il sistema operativo se necessario:

[buzz @ dns ~] $ su Password: [root @ dns buzz] # cd /etc/yum.repos.d/
[root @ dns yum.repos.d] # ls -l
totale 28 -rw-r - r--. 1 radice radice 1664 9 dicembre 2015 CentOS-Base.repo -rw-r - r--. 1 radice radice 1309 9 dicembre 2015 CentOS-CR.repo -rw-r - r--. 1 root root 649 9 dicembre 2015 CentOS-Debuginfo.repo -rw-r - r--. 1 radice radice 290 9 dicembre 2015 CentOS-fasttrack.repo -rw-r - r--. 1 radice radice 630 9 dicembre 2015 CentOS-Media.repo -rw-r - r--. 1 radice radice 1331 9 dicembre 2015 CentOS-Sources.repo -rw-r - r--. 1 radice radice 1952 9 dicembre 2015 CentOS-Vault.repo

È salutare leggere il contenuto dei file di dichiarazione originali dei repository consigliati da CentOS. I cambiamenti che apportiamo qui sono dovuti al fatto che non abbiamo accesso a Internet e lavoriamo con repository locali scaricati dal WWW Village da colleghi che ci semplificano la vita. 

[root @ dns yum.repos.d] # mkdir originale
[root @ dns yum.repos.d] # mv CentOS- * originale /

[root @ dns yum.repos.d] # nano centos-repos.repo
[centos-base]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/base/
gpgcheck=0
enabled=1

[centos-updates]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/updates/x86_64/
gpgcheck=0
enabled=1

[root @ dns yum.repos.d] # yum pulisci tutto
Plugin caricati: più velocemirror, langpacks Pulizia dei repository: centos-base centos-updates Pulizia di tutto

[root @ dns yum.repos.d] # yum update
Plugin caricati: più velocemirror, langpacks centos-base | 3.4 kB 00:00 centos-updates | 3.4 kB 00:00 (1/2): centos-base / primary_db | 5.3 MB 00:00 (2/2): centos-updates / primary_db | 9.1 MB 00:00 Determinazione dei mirror più veloci Nessun pacchetto contrassegnato per l'aggiornamento

Il messaggio "Nessun pacchetto contrassegnato per l'aggiornamento" indica che, dichiarando i repository più aggiornati disponibili durante l'installazione, sono stati installati i pacchetti più recenti.

Informazioni sul contesto SELinux e sul firewall

Concentreremo questo articolo, fondamentalmente, sull'implementazione dei servizi DNS e DHCP, che è il suo obiettivo principale.

Se un lettore ha selezionato una politica di sicurezza durante il processo di installazione, come mostrato nell'immagine 06 dell'articolo di riferimento " CentOS 7 Hypervisor I – SME Networks " utilizzato per l'installazione di questo server DNS-DHCP, e si accorge di non sapere come configurare correttamente SELinux e il firewall di CentOS, gli suggeriamo di eseguire quanto segue:

Modifica il file /etc/sysconfig/selinux e cambia SELINUX=enforcing in SELINUX=disable

[root @ dns ~] # nano / etc / sysconfig / selinux
# Questo file controlla lo stato di SELinux sul sistema. # SELINUX = può assumere uno di questi tre valori: # enforcing - La politica di sicurezza di SELinux viene applicata. # permissive - SELinux stampa avvisi invece di applicare. # disabled - Non viene caricata alcuna policy SELinux.
SELINUX = disabled
# SELINUXTYPE = può assumere uno di tre due valori: # mirato - I processi mirati sono protetti, # minimo - Modifica della politica mirata. Solo i processi selezionati sono pr $ # mls - Protezione Multi Level Security. SELINUXTYPE = mirato

Quindi esegui i seguenti comandi

[root @ dns ~] # setenforce 0
[root @ dns ~] # servizio firewalld interrotto
Reindirizzamento a / bin / systemctl stop firewalld.service

[root @ dns ~] # systemctl disabilita firewalld
Rimosso collegamento simbolico /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Rimosso collegamento simbolico /etc/systemd/system/basic.target.wants/firewalld.service.

Se stai implementando un server DNS accessibile da Internet, NON seguire le istruzioni sopra riportate. Configura invece correttamente il contesto SELinux e il firewall. Fai riferimento a "Configuring Servers with GNU/Linux" di Joel Barrios Dueñas o alla documentazione di CentOS/Red Hat.

Configuriamo il BIND - denominato

  • Edirectory l /usr/share/doc/bind-9.9.4/ contiene una buona quantità di documentazione che ti consigliamo di consultare prima di avventurarti in una ricerca su Internet senza prima sapere che, a portata di mano ea casa tua, puoi trovare quello che stai cercando

In molte distribuzioni, il servizio DNS installato tramite il pacchetto BIND è chiamato Name Daemon . In CentOS 7, è installato disabilitato per impostazione predefinita, come mostrato nell'output del seguente comando, che indica che il suo stato è " disabled " e che questo stato è predefinito dal suo fornitore – vendor preset . Si noti che BIND è un software libero.

Abilitazione del servizio denominato

[root @ dns ~] # stato systemctl denominato
● named.service - Berkeley Internet Name Domain (DNS) caricato: caricato (/usr/lib/systemd/system/named.service; disabile; preset fornitore: disabilitato) Attivo: inattivo (morto)

[root @ dns ~] # systemctl abilita named
Creato collegamento simbolico da /etc/systemd/system/multi-user.target.wants/named.service a /usr/lib/systemd/system/named.service.

[root @ dns ~] # systemctl inizia con nome

[root @ dns ~] # stato systemctl denominato
● named.service - Berkeley Internet Name Domain (DNS) caricato: caricato (/usr/lib/systemd/system/named.service; abilitato; preset fornitore: disabilitato)
   Attivo: attivo (in esecuzione) da sab 2017-01-28 13:22:38 EST; 5min fa Processo: 1990 ExecStart = / usr / sbin / named -u named $ OPTIONS (code = exited, status = 0 / SUCCESS) Process: 1988 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "sì"]; quindi / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Il controllo dei file di zona è disabilitato"; fi (code = exited, status = 0 / SUCCESS) Main PID: 1993 (named) CGroup: /system.slice/named.service └─1993 / usr / sbin / named -u named Jan 28 13:22:45 dns named [1993]: errore (rete irraggiungibile) risoluzione di "./NS/IN": 2001: 500: 2f :: f # 53 Jan 28 13:22:47 dns denominato [1993]: errore (rete non raggiungibile) risoluzione di "./ DNSKEY / IN ': 2001: 500: 3 :: 42 # 53 Jan 28 13:22:47 DNS denominato [1993]: errore (rete non raggiungibile) risoluzione di' ./NS/IN ': 2001: 500: 3 :: 42 # 53 Jan 28 13:22:47 dns named [1993]: errore (rete non raggiungibile) risoluzione di "./DNSKEY/IN": 2001: 500: 2d :: d # 53 Jan 28 13:22:47 dns named [1993 ]: errore (rete non raggiungibile) nella risoluzione di "./NS/IN": 2001: 500: 2d :: d # 53 Jan 28 13:22:47 dns denominato [1993]: errore (rete non raggiungibile) nella risoluzione di "./DNSKEY/ IN ': 2001: dc3 :: 35 # 53 Jan 28 13:22:47 dns named [1993]: errore (rete non raggiungibile) risoluzione di' ./NS/IN ': 2001: dc3 :: 35 # 53 Jan 28 13: 22:47 dns named [1993]: errore (rete non raggiungibile) risoluzione di "./DNSKEY/IN": 2001: 7fe :: 53 # 53 Jan 28 13:22:47 dns named [1993]: errore (rete non raggiungibile) res olving './NS/IN': 2001: 7fe :: 53 # 53 Jan 28 13:22:48 dns named [1993]: managed-keys-zone: Impossibile recuperare il set DNSKEY '.': timeout

[root @ dns ~] # systemctl riavvio denominato

[root @ dns ~] # stato systemctl denominato
● named.service - Berkeley Internet Name Domain (DNS) Loaded: caricato (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
   Attivo: attivo (in esecuzione) da sab 2017-01-28 13:29:41 EST; 1s fa Processo: 1449 ExecStop = / bin / sh -c / usr / sbin / rndc stop> / dev / null 2> & 1 || / bin / kill -TERM $ MAINPID (code = exited, status = 0 / SUCCESS) Process: 1460 ExecStart = / usr / sbin / named -u named $ OPTIONS (code = exited, status = 0 / SUCCESS) Process: 1457 ExecStartPre = / bin / bash -c se [! "$ DISABLE_ZONE_CHECKING" == "sì"]; quindi / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Il controllo dei file di zona è disabilitato"; fi (code = exited, status = 0 / SUCCESS) Main PID: 1463 (named) CGroup: /system.slice/named.service └─1463 / usr / sbin / named -u named Jan 28 13:29:41 dns named [1463]: managed-keys-zone: il file journal non è aggiornato: rimozione del file journal 28 gennaio 13:29:41 dns denominato [1463]: managed-keys-zone: caricato seriale 2 gennaio 28 13:29:41 dns named [1463]: zone 0.in-addr.arpa/IN: caricato seriale 0 Jan 28 13:29:41 dns named [1463]: zone localhost.localdomain / IN: caricato seriale 0 Jan 28 13:29:41 dns named [1463]: zone 1.0.0.127.in-addr.arpa/IN: caricato seriale 0 Jan 28 13:29:41 dns named [1463]: zone 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 .6.ip0.arpa / IN: caricato seriale 28 gen 13 29:41:1463 dns denominato [0]: zone localhost / IN: caricato seriale 28 gen 13 29 : 41: 1463 dns con nome [28]: tutte le zone caricate il 13 gennaio 29:41:1463 dns con nome [28]: in esecuzione il 13 gennaio 29:41:1 dns systemd [XNUMX]: avviato Berkeley Internet Name Domain (DNS).

Dopo aver abilitato e avviato il servizio named per la prima volta, l'output del comando `systemctl status named` mostra degli errori. Quando riavviamo il servizio, named crea automaticamente tutti i file di configurazione necessari per il suo corretto funzionamento. Pertanto, eseguendo nuovamente il comando `systemctl status named` , non vengono visualizzati ulteriori errori.

  • Caro, caro ed esigente Lettore: se vuoi scoprire, almeno, quale percorso porta alla fine della tana del coniglio, per favore, leggi con calma gli output dettagliati di ciascun comando.  Sicuramente l'articolo ti sembrerà un po' lungo, ma non negherai che ne guadagna in spiegazione e chiarezza.

Modifichiamo il file /etc/named.conf

Molti commenti dei lettori esprimono – e non sono il solo a dirlo – l'abitudine dei manutentori delle diverse distribuzioni Linux di collocare i file di configurazione del sistema in cartelle con nomi diversi a seconda della distribuzione. Hanno ragione. Ma cosa possiamo fare noi, i normali utenti di queste distribuzioni? Adattarci! 😉

Per inciso, in FreeBSD, un clone di UNIX® "The Origin", il file si trova in /usr/local/etc/namedb/named.conf ; mentre in Debian, oltre ad essere suddiviso nei quattro file named.conf, named.conf.options, named.conf.default-zones e named.conf.local , si trova nella cartella /etc/bind/ . Chi volesse sapere dove si trova in openSUSE dovrebbe leggere " DNS and DHCP in openSUSE 13.2 Harlequin – SME Networks ". I lettori hanno ragione! 😉

E come facciamo sempre: prima di modificare qualsiasi cosa, salviamo il file di configurazione originale con un altro nome.

[root @ dns ~] # cp /etc/named.conf /etc/named.conf.original

Per semplificare le cose, invece di generare la chiave TSIG per gli aggiornamenti DNS dinamici tramite DHCP, copiamo la stessa chiave rndc.key come dhcp.key.

[root @ dns ~] # cp /etc/rndc.key /etc/dhcp.key

[root @ dns ~] # nano /etc/dhcp.key
chiave "dhcp-key" {algoritmo hmac-md5; segreto "OI7Vs + TO83L7ghUm2xNVKg =="; };

Affinché l' utente specificato possa leggere il file appena copiato, modifichiamo il suo gruppo proprietario:

[root @ dns ~] # chown root: chiamato /etc/dhcp.key [root @ dns ~] # ls -l /etc/rndc.key /etc/dhcp.key -rw-r -----. 1 radice denominata 77 Jan 28 16:36 PM /etc/dhcp.key -rw-r -----. 1 radice denominata 77 Jan 28 13:22 /etc/rndc.key

Piccoli dettagli come il precedente sono ciò che può farci impazzire cercando di capire, ora ... dov'è il problema ...? con qualche aggettivo in più, che non scriviamo per rispetto del Rispettabile.

Ora, finalmente, abbiamo modificato il file /etc/named.conf . Le modifiche o le aggiunte che abbiamo apportato, rispetto all'originale, sono in grassetto . Nota che ce ne sono solo alcune.

[root @ dns ~] # nano /etc/named.conf
// // named.conf // // Fornito dal pacchetto bind di Red Hat per configurare il server ISC BIND denominato (8) DNS // come server dei nomi solo per la cache (solo come risolutore DNS localhost). // // Vedere / usr / share / doc / bind * / sample / ad esempio file di configurazione denominati. //

// Elenco di controllo degli accessi che dichiara quali reti potranno consultare
// il mio server denominato
acl impantanato {
 127.0.0.0 / 8;
 192.168.10.0 / 24;
};

opzioni {
 // Dichiaro che anche il demone denominato ascolta l'interfaccia
 // eth0 che ha l'IP: 192.168.10.5
    porta di ascolto 53 {127.0.0.1; 192.168.10.5; };
    Listen-on-v6 porta 53 {:: 1; }; directory "/ var / named"; dump-file "/var/named/data/cache_dump.db"; file di statistiche "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt";

 // Dichiarazione degli spedizionieri
 // spedizionieri {
 // 0.0.0.0;
 // 1.1.1.1;
 //};
    // avanti prima;

    // Consento solo le query al mio ACL impantanato
    consentire-query { impantanato; }; // Per verificare con il comando dig desdelinux.fan axfr // solo dalla workstation SysAdmin e localhost // Non abbiamo server DNS slave. Non ne abbiamo bisogno... fino ad ora.
 consentire-trasferimento {localhost; 192.168.10.1; };

    / * - Se stai creando un server DNS AUTORITATIVO, NON abilitare la ricorsione. - Se stai creando un server DNS RICURSIVO (caching), devi abilitare la ricorsione. - Se il tuo server DNS ricorsivo ha un indirizzo IP pubblico, DEVI abilitare il controllo degli accessi per limitare le query ai tuoi utenti legittimi. In caso contrario, il tuo server diventerà parte di attacchi di amplificazione DNS su larga scala. L'implementazione di BCP38 all'interno della rete ridurrebbe notevolmente tale superficie di attacco * /
    // Vogliamo un server AUTHORITY per la nostra LAN - PMI
    ricorsione no;

    dnssec-enable sì; convalida dnssec sì; / * Percorso della chiave ISC DLV * / bindkeys-file "/etc/named.iscdlv.key"; directory-chiavi-gestite "/ var / named / dynamic"; pid-file "/run/named/named.pid"; file-chiave di sessione "/run/named/session.key"; }; logging {channel default_debug {file "data / named.run"; gravità dinamica; }; }; zona "." IN {tipo di suggerimento; file "named.ca"; }; includere "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

// Includiamo la chiave TSIG per gli aggiornamenti DNS dinamici // tramite DHCP
includere "/etc/dhcp.key";

// Dichiarazione di nome, tipo, posizione e autorizzazione all'aggiornamento
// delle zone dei record DNS // Entrambe le zone sono MASTER
zona"desdelinux.fan" {
 tipo master;
 file "dinamico/db.desdelinux.fan";
 consentire-aggiornamento {chiave dhcp-chiave; };
};

zona "10.168.192.in-addr.arpa" {
 tipo master;
 file "dynamic / db.10.168.192.in-addr.arpa";
 consentire-aggiornamento {chiave dhcp-chiave; };
};

Controlliamo la sintassi

[root @ dns ~] # named-checkconf 
[root @ dns ~] #

Poiché il comando precedente non restituisce nulla, la sintassi è corretta. Tuttavia, se eseguiamo lo stesso comando, ma con l' opzione -z , l'output sarà:

[root @ dns ~] # named-checkconf -z
zona localhost.localdomain/IN: seriale 0 caricata zona localhost/IN: seriale 0 caricata zona 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/IN: zona seriale 0 caricata 1.0.0.127.in-addr.arpa/IN: zona seriale 0 caricata 0.in-addr.arpa/IN: zona seriale 0 caricata desdelinux.fan/IN: caricamento dal file master dinamico/db.desdelinux.fan non riuscito: zona file non trovato desdelinux.fan/IN: non caricato a causa di errori. _predefinito/desdelinux.fan/IN: file non trovato zona 10.168.192.in-addr.arpa/IN: caricamento dal file master Dynamic/db.10.168.192.in-addr.arpa non riuscito: file non trovato zona 10.168.192.in- addr.arpa/IN: non caricato a causa di errori. _default/10.168.192.in-addr.arpa/IN: file non trovato

Ovviamente sono errori che si verificano perché non abbiamo ancora creato le zone di registrazione DNS per il nostro dominio.

  • Per ulteriori informazioni sul comando denominato-checkconf, correre uomo chiamato-checkconf, prima di cercare qualsiasi altra informazione su Internet. Ti assicuro che farà risparmiare un bel po 'di tempo.

Creiamo il file Direct Zone desdelinux.fan

…ma non senza prima un po’ di teoria. 

Come modello per la creazione del file di dati della zona, possiamo utilizzare /var/named/named.empty oppure /usr/share/doc/bind-9.9.4/sample/var/named/named.empty . Entrambi sono identici.

[root @ dns ~] # cat /var/named/named.empty 
$ TTL 3H @ IN SOA @ rname.invalid. (0; seriale 1D; aggiornamento 1H; riprova 1W; scadenza 3H); tempo di memorizzazione nella cache minimo o negativo per vivere NS @ A 127.0.0.1 AAAA :: 1

Tempo di vita - È ora di vivere TTL Record SOA

Dedichiamo un momento a spiegare il TTL (Time to Live) del record SOA (Start of Authority) per una Master Zone. Comprenderne il significato è utile quando si desidera modificarne i valori.

$TTL : Tempo di vita – Tempo di vita per tutti i record nel file che seguono la dichiarazione (ma precedono qualsiasi altra dichiarazione $TTL) e che non hanno una dichiarazione TTL esplicita.

Numero di serie : il numero di serie dei dati della zona. Ogni volta che modifichiamo manualmente un record DNS in una zona, dobbiamo incrementare questo numero di 1, soprattutto se disponiamo di server slave o secondari. Ogni volta che un server DNS secondario o slave contatta il suo server master, richiede il numero di serie dei dati del master. Se il numero di serie dello slave è inferiore, i dati per quella zona sul server slave sono obsoleti e lo slave esegue un trasferimento di zona per aggiornarli.

refresh : Indica al server slave l'intervallo di tempo con cui deve verificare se i suoi dati sono aggiornati rispetto al server master.

Retry : Se il server master non è disponibile per lo slave, ad esempio perché si è bloccato, dopo un intervallo di tempo di aggiornamento , il comando retry indica allo slave quanto tempo attendere prima di tentare nuovamente di contattare il master.

Scadenza : Se il server slave non riesce a contattare il server master per un intervallo di tempo specificato , la relazione di zona slave-master si interrompe e il server slave non ha altra scelta che far scadere la zona in questione. La scadenza di una zona da parte di un server DNS slave significa che smetterà di rispondere alle query DNS relative a quella zona perché i dati disponibili sono troppo vecchi per essere utili.

  • Quanto sopra ci insegna indirettamente e carico di grande buon senso - il meno comune dei sensi - che se non abbiamo bisogno di server DNS slave per il funzionamento del nostro SME, non lo implementiamo, a meno che non siano strettamente necessari. Cerchiamo sempre di passare dal semplice al complesso.

minimo : nelle versioni precedenti a BIND 8.2 , l'ultimo record SOA indica anche il tempo di vita predefinito e il tempo di vita della cache negativa per la zona. Questo tempo si riferisce a tutte le risposte negative fornite dal server autorevole per la zona.

File di zona /var/nominato/dinamico/db.desdelinux.fan

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.fan
$TTL 3H @ IN SOA dns.desdelinux.fan. radice.dns.desdelinux.fan. (1; seriale 1D; aggiorna 1H; riprova 1W; scade 3H); minimo o ; Tempo di vita della memorizzazione nella cache negativo; @ IN NS dns.desdelinux.fan. @ IN MX 10 e-mail.desdelinux.fan. @IN TXT "FromLinux, il tuo Blog dedicato al Software Libero" ; sysadmin IN UN 192.168.10.1 ad-dc IN UN fileserver 192.168.10.3 IN UN dns 192.168.10.4 IN UN proxyweb 192.168.10.5 IN UN blog 192.168.10.6 IN UN ftpserver 192.168.10.7 IN UN 192.168.10.8 posta IN A 192.168.10.9

Controlliamo /var/named/dynamic/db.desdelinux.fan

[root@dns ~]# denominata-checkzone desdelinux.fan /var/nome/dinamico/db.desdelinux.fan
zona desdelinux.fan/IN: seriale 1 caricata OK

Creiamo il file Reverse Zone 10.168.192.in-addr.arpa

  • Il record SOA di questa zona è lo stesso di quello della Direct Zone senza considerare il record MX..
[root @ dns ~] # nano /var/named/dynamic/db.10.168.192.in-addr.arpa
$TTL 3H @ IN SOA dns.desdelinux.fan. radice.dns.desdelinux.fan. (1; seriale 1D; aggiorna 1H; riprova 1W; scade 3H); minimo o ; Tempo di vita della memorizzazione nella cache negativo; @ IN NS dns.desdelinux.fan. ; 1 IN PTR amministratore di sistema.desdelinux.fan. 3 IN PTR ad-cc.desdelinux.fan. 4 IN file server PTR.desdelinux.fan. 5 IN PTR dns.desdelinux.fan. 6 IN PTRproxyweb.desdelinux.fan. 7 NEL blog PTR.desdelinux.fan. 8 IN PTR server ftp.desdelinux.fan. 9 NELLA posta PTR.desdelinux.fan.

[root @ dns ~] # named-checkzone 10.168.192.in-addr.arpa /var/named/dynamic/db.10.168.192.in-addr.arpa 
zone 10.168.192.in-addr.arpa/IN: seriale 1 caricata OK

Prima di riavviare il named controlliamo la sua configurazione

  • Finché non saremo sicuri che i file di configurazione denominati, named.conf, e i suoi file di zona non siano configurati correttamente, suggeriamo di non riavviare il demone named. Se lo facciamo e successivamente modifichiamo un file di zona, dobbiamo aumentare il numero di serie della zona modificata di 1.
  • Diamo un'occhiata al "." alla fine dei nomi di dominio e host.
[root @ dns ~] # named-checkconf 
[root @ dns ~] # named-checkconf -z
zona localhost.localdomain/IN: seriale 0 caricata zona localhost/IN: seriale 0 caricata zona 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/IN: zona seriale 0 caricata 1.0.0.127.in-addr.arpa/IN: zona seriale 0 caricata 0.in-addr.arpa/IN: zona seriale 0 caricata desdelinux.fan/IN: seriale 1 caricata zona 10.168.192.in-addr.arpa/IN: seriale 1 caricata

Tutta la configurazione con nome corrente

Per chiarezza, e sebbene l'articolo diventerà lungo, forniamo l'output completo del comando named-checkconf -zp :

[root @ dns ~] # named-checkconf -zp
zona localhost.localdomain/IN: seriale 0 caricata zona localhost/IN: seriale 0 caricata zona 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/IN: zona seriale 0 caricata 1.0.0.127.in-addr.arpa/IN: zona seriale 0 caricata 0.in-addr.arpa/IN: zona seriale 0 caricata desdelinux.fan/IN: zona seriale 1 caricata 10.168.192.in-addr.arpa/IN: opzioni seriale 1 caricate { bindkeys-file "/etc/named.iscdlv.key"; session-keyfile "/run/named/session.key"; directory "/var/nome"; file dump "/var/named/data/cache_dump.db"; porta di ascolto 53 { 127.0.0.1/32; 192.168.10.5/32; }; porta ascolto su v6 53 { ::1/128; }; directory delle chiavi gestite "/var/named/dynamic"; file-memstatistics "/var/named/data/named_mem_stats.txt"; file-pid "/run/nominato/nominato.pid"; file di statistiche "/var/named/data/named_stats.txt"; abilitazione DNSsec sì; convalida DNSsec sì; ricorsione no; consentire-query {"guardato"; }; consenti-trasferimento { 192.168.10.1/32; }; }; acl "guardato" { 127.0.0.0/8; 192.168.10.0/24; }; logging { canale "default_debug" { file "data/named.run"; gravità dinamica; }; }; chiave "dhcp-key" { algoritmo "hmac-md5"; segreto "OI7Vs+TO83L7ghUm2xNVKg=="; }; zona "." IN { digitare suggerimento; file "nome.ca"; }; zona "localhost.localdomain" IN { tipo master; file "nome.localhost"; consenti aggiornamento {"nessuno"; }; }; zona "localhost" IN { tipo master; file "nome.localhost"; consenti aggiornamento {"nessuno"; }; }; zona "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" IN { digitare master; file "nome.loopback"; consenti aggiornamento {"nessuno"; }; }; zona "1.0.0.127.in-addr.arpa" IN { tipo master; file "nome.loopback"; consenti aggiornamento {"nessuno"; }; }; zona "0.in-addr.arpa" IN { tipo master; file "nome.vuoto"; consenti aggiornamento {"nessuno"; }; }; zona"desdelinux.fan" { tipo master; file "dinamico/db.desdelinux.fan"; consenti-aggiornamento { chiave "dhcp-key"; }; }; zona "10.168.192.in-addr.arpa" { tipo master; file "dynamic/db.10.168.192.in-addr.arpa "; consentire-aggiornamento { chiave "dhcp-chiave"; }; }; chiavi-gestite { "." chiave-iniziale 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g 0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD F6dsV6DoBQzgul68sGIcGOYl0OyQdXfZ1relS Qageu+ipAdTTJ9AsRTAoub7ONGcLmqrAmRLKBP6dfwh YB3N5knNnulq QxA +Uk2ihz8="; };
  • Seguendo la procedura di modifica del file nome.conf In base alle nostre esigenze e verificando, creando ogni file di zona e verificandolo, dubitiamo che dovremo affrontare grossi problemi di configurazione. Alla fine ci rendiamo conto che è un gioco da ragazzi, con molti concetti e una sintassi pignola. 

I controlli hanno dato risultati soddisfacenti, quindi possiamo riavviare BIND – denominato.

Riavviamo il named e controlliamo il suo stato

[root @ dns ~] # systemctl riavvia named.service
[root @ dns ~] # systemctl status named.service

Se nell'output dell'ultimo comando compaiono degli errori, è necessario riavviare il servizio denominato e verificarne nuovamente lo stato . Se gli errori sono scomparsi, il servizio è stato avviato correttamente. In caso contrario, è necessario esaminare attentamente tutti i file modificati e creati e ripetere la procedura.

L'output corretto dello stato dovrebbe essere:

[root @ dns ~] # systemctl status named.service
● named.service - Berkeley Internet Name Domain (DNS) Loaded: caricato (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled) Active: attivo (in esecuzione) da domenica 2017-01-29 10:05:32 EST; 2min 57s fa Processo: 1777 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS) Processo: 1788 ExecStart=/usr/sbin/named -u name $OPTIONS (code=exited, status=0/SUCCESS) Processo: 1786 ExecStartPre =/bin/bash -c se [ ! "$DISABLE_ZONE_CHECKING" == "sì"]; quindi /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Il controllo dei file di zona è disabilitato"; fi (code=exited, status=0/SUCCESS) PID principale: 1791 (nominato) CGroup: /system.slice/named.service └─1791 /usr/sbin/named -u denominato 29 gennaio 10:05:32 dns denominato [1791]: zona 1.0.0.127.in-addr.arpa/IN: seriale caricato 0 gennaio 29 10:05:32 dns denominato[1791]: zona 10.168.192.in-addr.arpa/IN: seriale caricato 1 gennaio 29 10:05:32 dns denominato[1791]: zona 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/IN : seriale caricato 0 29 gennaio 10:05:32 DNS denominato[1791]: zona desdelinux.fan/IN: seriale caricato 1 gennaio 29 10:05:32 dns denominato[1791]: zona localhost.localdomain/IN: caricato seriale 0 gennaio 29 10:05:32 dns denominato[1791]: zona localhost/IN: caricato seriale 0 29 gennaio 10:05:32 DNS denominato[1791]: tutte le zone caricate
29 gennaio 10:05:32 dns con nome [1791]: running
29 gennaio 10:05:32 dns systemd [1]: Avviato Berkeley Internet Name Domain (DNS). Jan 29 10:05:32 dns named [1791]: zone 10.168.192.in-addr.arpa/IN: invio notifiche (seriale 1)

Controlli

I controlli possono essere eseguiti sullo stesso server o su una macchina collegata alla LAN. Preferiamo farli dalla squadra amministratore di sistema.desdelinux.fan a cui abbiamo dato espressa autorizzazione affinché possa effettuare Trasferimenti di Zona. Il file /etc/resolv.conf di quella squadra è la seguente:

buzz @ sysadmin: ~ $ cat /etc/resolv.conf 
# Generato dalla ricerca NetworkManager desdelinuxserver dei nomi .fan 192.168.10.5

buzz@sysadmin:~$ scava desdelinux.fan axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> desdelinux.fan axfr ;; opzioni globali: +cmd
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. radice.dns.desdelinux.fan. 1 86400 3600 604800
desdelinux.fan. 10800 IN NS dns.desdelinux.fan.
desdelinux.fan. 10800 IN MX 10 e-mail.desdelinux.fan.
desdelinux.fan. 10800 IN TXT "Da Linux, il tuo blog dedicato al software libero" ad-dc.desdelinux.fan. 10800 IN UN blog 192.168.10.3.desdelinux.fan. 10800 IN UN DNS 192.168.10.7.desdelinux.fan. 10800 IN TO 192.168.10.5 fileserver.desdelinux.fan. 10800 IN UN server ftp 192.168.10.4.desdelinux.fan. 10800 NELLA mail 192.168.10.8.desdelinux.fan. 10800 IN UN proxyweb 192.168.10.9.desdelinux.fan. 10800 IN UN amministratore di sistema 192.168.10.6.desdelinux.fan. 10800 IN 192.168.10.1
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. radice.dns.desdelinux.fan. 1 86400 3600 604800 10800 ;; Tempo di interrogazione: 0 ms ;; SERVER: 192.168.10.5#53(192.168.10.5) ;; QUANDO: domenica 29 gennaio 11:44:18 EST 2017;; Dimensione XFR: 13 record (messaggi 1, byte 385)

buzz @ sysadmin: ~ $ dig 10.168.192.in-addr.arpa axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> 10.168.192.in-addr.arpa axfr ;; opzioni globali: +cmd 10.168.192.in-addr.arpa. 10800 IN SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. radice.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800 10.168.192.in-addr.arpa. 10800 IN NS dns.desdelinux.fan. 1.10.168.192.in-addr.arpa. 10800 IN PTR amministratore di sistema.desdelinux.fan. 3.10.168.192.in-addr.arpa. 10800 IN PTR ad-cc.desdelinux.fan. 4.10.168.192.in-addr.arpa. File server 10800 IN PTR.desdelinux.fan. 5.10.168.192.in-addr.arpa. 10800 IN PTR dns.desdelinux.fan. 6.10.168.192.in-addr.arpa. 10800 IN PTRproxyweb.desdelinux.fan. 7.10.168.192.in-addr.arpa. 10800 nel blog PTR.desdelinux.fan. 8.10.168.192.in-addr.arpa. 10800 IN PTR server ftp.desdelinux.fan. 9.10.168.192.in-addr.arpa. 10800 NELLA posta PTR.desdelinux.fan. 10.168.192.in-addr.arpa. 10800 IN SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. radice.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800 ;; Tempo di interrogazione: 0 ms ;; SERVER: 192.168.10.5#53(192.168.10.5) ;; QUANDO: domenica 29 gennaio 11:44:57 EST 2017;; Dimensione XFR: 11 record (messaggi 1, byte 352)

buzz@sysadmin:~$ cerca IN SOA desdelinux.fan
buzz@sysadmin:~$ cerca IN MX desdelinux.fan buzz@sysadmin:~$ digita IN TXT desdelinux.fan
buzz @ sysadmin: ~ $ host dns
DNS.desdelinux.fan ha l'indirizzo 192.168.10.5
buzz @ sysadmin: ~ $ host sysadmin
amministratore di sistema.desdelinux.fan ha l'indirizzo 192.168.10.1 ... E qualsiasi altro controllo di cui abbiamo bisogno
  • Finora disponiamo delle basi per un server DNS sulla nostra rete PMI. Speriamo che l'intera procedura ti sia piaciuta, che è stata abbastanza semplice, vero? 

Installiamo e configuriamo DHCP

[root @ dns ~] # yum installa dhcp
Plugin caricati: più velocemirror, langpacks centos-base | 3.4 kB 00:00:00 centos-updates | 3.4 kB 00:00:00 Caricamento delle velocità del mirror dal file host memorizzato nella cache Risoluzione delle dipendenze -> Esecuzione del test delle transazioni ---> Il pacchetto dhcp.x86_64 12: 4.2.5-42.el7.centos deve essere installato -> Risoluzione delle dipendenze Dipendenze risolte terminate ============================================== ================================================ =================================== Dimensione del repository della versione dell'architettura del pacchetto =========== ================================================ ================================================ ====================== Installazione: dhcp x86_64 12: 4.2.5-42.el7.centos centos-base 511 k Riepilogo transazione ==== ================================================ ================================================ ============================ Installa 1 pacchetto Dimensione totale download: 511k Dimensione installata: 1.4 M Va bene [y / d / N]: y Download dei pacchetti: dhcp-4.2.5-42.el7.centos.x86_64.rpm | 511 kB 00:00:00 Controllo della transazione in corso Test della transazione in corso Test della transazione riuscito Transazione in corso Installazione: 12: dhcp-4.2.5-42.el7.centos.x86_64 1/1 Controllo: 12: dhcp-4.2.5-42. el7.centos.x86_64 1/1 Installato: dhcp.x86_64 12: 4.2.5-42.el7.centos Fatto!

[root @ dns ~] # nano /etc/dhcp/dhcpd.conf
# # File di configurazione del server DHCP. # vedere /usr/share/doc/dhcp*/dhcpd.conf.example # vedere la pagina man dhcpd.conf(5) # ddns-update-style interim; aggiornamenti ddns attivati; nome-dominio ddns "desdelinux.fan."; ddns-rev-domainname "in-addr.arpa."; ignora gli aggiornamenti del client; autorevole; opzione ip-forwarding disattivata; opzione domain-name "desdelinux.fan"; # opzione ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org; include "/etc/dhcp.key" ; zona desdelinux.fan. { primario 127.0.0.1; chiave chiave DHCP; } zona 10.168.192.in-addr.arpa. { primario 127.0.0.1; chiave chiave DHCP; } rete condivisa redlocal { sottorete 192.168.10.0 maschera di rete 255.255.255.0 { opzione router 192.168.10.1; opzione subnet-mask 255.255.255.0; opzione indirizzo broadcast 192.168.10.255; opzione server-nome-dominio 192.168.10.5; opzione netbios-name-servers 192.168.10.5; intervallo 192.168.10.30 192.168.10.250; } } # FINE dhcpd.conf

[root @ dns ~] # dhcpd -t
Internet Systems Consortium Server DHCP 4.2.5 Copyright 2004-2013 Internet Systems Consortium. Tutti i diritti riservati. Per informazioni, visitare https://www.isc.org/software/dhcp/ Nessuna ricerca in LDAP poiché ldap-server, ldap-port e ldap-base-dn non erano specificati nel file di configurazione

[root @ dns ~] # systemctl abilita dhcpd
Collegamento simbolico creato da /etc/systemd/system/multi-user.target.wants/dhcpd.service a /usr/lib/systemd/system/dhcpd.service.

[root @ dns ~] # systemctl avvia dhcpd

[root @ dns ~] # systemctl status dhcpd
● dhcpd.service - Daemon server DHCPv4 caricato: caricato (/usr/lib/systemd/system/dhcpd.service; abilitato; preimpostazione fornitore: disabilitato) Attivo: attivo (in esecuzione) da dom 2017-01-29 12:04:59 ITS T; 23s fa Documenti: man: dhcpd (8) man: dhcpd.conf (5) PID principale: 2381 (dhcpd) Stato: "Dispatching packets ..." CGroup: /system.slice/dhcpd.service └─2381 / usr / sbin / dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid 29 gennaio 12:04:59 dns dhcpd [2381]: Internet Systems Consortium DHCP Server 4.2.5 29 gennaio 12 : 04: 59 dns dhcpd [2381]: Copyright 2004-2013 Internet Systems Consortium. 29 gennaio 12:04:59 dns dhcpd [2381]: Tutti i diritti riservati. 29 gennaio 12:04:59 dns dhcpd [2381]: Per informazioni, visitare https://www.isc.org/software/dhcp/ 29 gennaio 12:04:59 dns dhcpd [2381]: Nessuna ricerca LDAP da LDAP -server, ldap-port e ldap-base-dn non sono stati specificati nel file di configurazione Jan 29 12:04:59 dns dhcpd [2381]: ha scritto 0 lease nel file lease. 29 gennaio 12:04:59 dns dhcpd [2381]: Ascolto su LPF / eth0 / 52: 54: 00: 12: 17: 04 / redlocal 29 gennaio 12:04:59 dns dhcpd [2381]: Invio su LPF / eth0 / 52: 54: 00: 12: 17: 04 / redlocal 29 gennaio 12:04:59 dns dhcpd [2381]: Invio su Socket / fallback / fallback-net 29 gennaio 12:04:59 dns systemd [1]: Avviato Daemon server DHCPv4.

Cosa resta da fare?

Semplice. Avvia un Windows 7 o un altro client con software gratuito e inizia a provare e controllare. Lo abbiamo fatto con due clienti: Sette.desdelinux.fan y suse-desktop.desdelinux.fan. I controlli sono stati i seguenti:

buzz @ sysadmin: ~ $ host seven
Sette.desdelinux.fan ha l'indirizzo 192.168.10.30

buzz@sysadmin:~$ host sette.desdelinux.fan
Sette.desdelinux.fan ha l'indirizzo 192.168.10.30

buzz@sysadmin:~$ digita IN TXT sette.desdelinux.fan
....;; SEZIONE DOMANDE: ;sette.desdelinux.fan. NEL TESTO;; SEZIONE RISPOSTE: sette.desdelinux.fan. 3600 IN TESTO"31b7228ddd3a3b73be2fda9e09e601f3e9"....

Rinominiamo il team "sette" in "LAGER" e riavviamo. Dopo aver riavviato il nuovo LAGER, controlliamo:

buzz @ sysadmin: ~ $ host seven
Host sette non trovato: 5 (RIFIUTATO)

buzz@sysadmin:~$ host sette.desdelinux.fan
Ospite sette.desdelinux.fan non trovato: 3(NXDOMAIN)

brusio@sysadmin: ~ $ host lager
birra chiara.desdelinux.fan ha l'indirizzo 192.168.10.30

brusio@sysadmin:~$host lager.desdelinux.fan
birra chiara.desdelinux.fan ha l'indirizzo 192.168.10.30

buzz@sysadmin:~$ cerca IN TXT lager.desdelinux.fan
....;; SEZIONE DOMANDE: ;lager.desdelinux.fan. NEL TESTO;; SEZIONE RISPOSTA: lager.desdelinux.fan. 3600 IN TESTO"31b7228ddd3a3b73be2fda9e09e601f3e9"....

Per quanto riguarda il client suse-desktop:

buzz @ sysadmin: ~ $ host suse-dektop
Host suse-dektop non trovato: 5 (RIFIUTATO)

buzz @ sysadmin: ~ $ host suse-desktop
suse-desktop.desdelinux.fan ha l'indirizzo 192.168.10.33

buzz@sysadmin:~$ host suse-desktop.desdelinux.fan
suse-desktop.desdelinux.fan ha l'indirizzo 192.168.10.33

buzz @ sysadmin: ~ $ host 192.168.10.33
33.10.168.192.in-addr.arpa puntatore del nome di dominio suse-desktop.desdelinux.fan.

buzz @ sysadmin: ~ $ host 192.168.10.30
Puntatore del nome di dominio 30.10.168.192.in-addr.arpa LAGER.desdelinux.fan.
buzz @ sysadmin: ~ $ dig -x 192.168.10.33
....;; SEZIONE DOMANDE: ;33.10.168.192.in-addr.arpa. NEL PTR;; SEZIONE RISPOSTE: 33.10.168.192.in-addr.arpa. 3600 IN PTR suse-desktop.desdelinux.fan. ;; SEZIONE AUTORITÀ: 10.168.192.in-addr.arpa. 10800 IN NS dns.desdelinux.fan. ;; SEZIONE AGGIUNTIVA: dns.desdelinux.fan. 10800 IN TO 192.168.10.5 ....

buzz@sysadmin:~$ digita IN TXT suse-desktop.desdelinux.fan....
;suse-desktop.desdelinux.fan. NEL TESTO;; SEZIONE RISPOSTA: suse-desktop.desdelinux.fan. 3600 IN TESTO "31b78d287769160c93e6dca472e9b46d73"

;; SEZIONE DELL'AUTORITÀ:
desdelinux.fan. 10800 IN NS dns.desdelinux.fan. ;; SEZIONE AGGIUNTIVA: dns.desdelinux.fan. 10800 IN 192.168.10.5
....

Eseguiamo anche i seguenti comandi

[root@dns ~]# dig desdelinux.fan axfr
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> desdelinux.fan axfr ;; opzioni globali: +cmd
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. radice.dns.desdelinux.fan. 6 86400 3600 604800
desdelinux.fan. 10800 IN NS dns.desdelinux.fan.
desdelinux.fan. 10800 IN MX 10 e-mail.desdelinux.fan.
desdelinux.fan. 10800 IN TXT "Da Linux, il tuo blog dedicato al software libero" ad-dc.desdelinux.fan. 10800 IN UN blog 192.168.10.3.desdelinux.fan. 10800 IN UN DNS 192.168.10.7.desdelinux.fan. 10800 IN TO 192.168.10.5 fileserver.desdelinux.fan. 10800 IN UN server ftp 192.168.10.4.desdelinux.fan. 10800 IN UNA LAGER 192.168.10.8.desdelinux.fan. 3600 IN TESTO"31b7228ddd3a3b73be2fda9e09e601f3e9"LAGER.desdelinux.fan.   3600 IN UNA E-mail 192.168.10.30.desdelinux.fan. 10800 IN UN proxyweb 192.168.10.9.desdelinux.fan. 10800 IN UN desktop suse 192.168.10.6.desdelinux.fan. 3600 IN TESTO"31b78d287769160c93e6dca472e9b46d73" suse-desktop.desdelinux.fan. 3600 IN A 192.168.10.33 amministratore di sistema.desdelinux.fan. 10800 IN 192.168.10.1
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. radice.dns.desdelinux.fan. 6 86400 3600 604800

Nell'output precedente, abbiamo evidenziato in grassetto i TTL (in secondi) per i dispositivi con indirizzi IP assegnati dal servizio DHCP, che hanno una dichiarazione esplicita di un TTL di 3600 fornito da DHCP. Gli IP statici sono regolati dal TTL di 3H (3 ore = 10800 secondi) dichiarato nel record SOA di ciascun file di zona.

Possono controllare la zona inversa allo stesso modo.

[root @ dns ~] # dig 10.168.192.in-addr.arpa axfr

Altri comandi estremamente interessanti sono:

[root@dns ~]# denominata-journalprint /var/named/dynamic/db.desdelinux.fan.jnl
[root @ dns ~] # named-journalprint /var/named/dynamic/db.10.168.192.in-addr.arpa.jnl
[root @ dns ~] # journalctl -f

Modifica manuale dei file delle zone

Dopo che il DHCP si occupa dell'aggiornamento dinamico dei file di zona del nameserver , se mai dovessimo modificare manualmente un file di zona, dobbiamo seguire la procedura descritta di seguito, ma non prima di aver appreso qualcosa in più sul funzionamento dell'utilità rndc per il controllo del nameserver.

[root @ dns ~] # man rndc
....
       congelare [zona [classe [vista]]]
           Sospendi gli aggiornamenti a una zona dinamica. Se non viene specificata alcuna zona, tutte le zone vengono sospese. Ciò consente di apportare modifiche manuali a una zona normalmente aggiornata tramite aggiornamento dinamico. Inoltre, le modifiche al file journal vengono sincronizzate nel file master. Tutti i tentativi di aggiornamento dinamico verranno rifiutati mentre la zona è congelata.

       disgelo [zona [classe [vista]]]
           Abilita gli aggiornamenti a una zona dinamica bloccata. Se non viene specificata alcuna zona, vengono abilitate tutte le zone bloccate. Ciò fa sì che il server ricarichi la zona dal disco e riattivi gli aggiornamenti dinamici al termine del caricamento. Dopo che una zona è stata scongelata, gli aggiornamenti dinamici non verranno più rifiutati. Se la zona è cambiata ed è in uso l'opzione ixfr-da-differenze, il file journal verrà aggiornato per riflettere le modifiche nella zona. Altrimenti, se la zona è cambiata, qualsiasi file journal esistente verrà rimosso. ....

Cosa, pensavi che trascrivessi tutto il manuale?... un pezzo e vanno in macchina. Lascio a te il resto. 

in sostanza:

  • rndc freeze [zona [classe [vista]]], sospende l'aggiornamento dinamico di una zona. Se non ne viene specificato uno, tutto si bloccherà. Il comando consente la modifica manuale della zona congelata o di tutte le zone. Qualsiasi aggiornamento dinamico verrà negato durante il congelamento.
  • rndc disgelo [zona [classe [vista]]], abilita gli aggiornamenti dinamici su una zona precedentemente bloccata. Il server DNS ricarica il file di zona dal disco e gli aggiornamenti dinamici vengono riattivati ​​al termine del ricaricamento.

Quali precauzioni bisogna prendere quando si modifica manualmente un file di zona? Le stesse che si prenderebbero in fase di creazione, ricordandosi di incrementare di 1 il numero di serie prima di salvare il file con le modifiche finali.

Esempio:

[root @ dns ~] # rndc freeze desdelinux.fan

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.fan
Modifico il file di zona per qualsiasi motivo, necessario o meno. Salvo le modifiche

[root @ dns ~] # rndc disgelo desdelinux.fan
È stato avviato un ricaricamento e un disgelo di zona. Controlla i log per vedere il risultato.

[root @ dns ~] # journalctl -f
29 gennaio 14:06:46 DNS denominato[2257]: zona di scongelamento 'desdelinux.fan/IN': successo
29 gennaio 14:06:46 DNS denominato[2257]: zona desdelinux.fan/IN: seriale zona (6) invariata. la zona potrebbe non riuscire a trasferire agli schiavi.
29 gennaio 14:06:46 DNS denominato[2257]: zona desdelinux.fan/IN: seriale 6 caricata

L'errore nell'output precedente, che viene mostrato in rosso sulla console, è dovuto al fatto che ho "dimenticato" di aumentare il numero di serie di 1. Se avessi seguito correttamente la procedura, l'output sarebbe stato:

[root @ dns ~] # journalctl -f
-- Le registrazioni iniziano a domenica 2017-01-29 08:31:32 EST. -- 29 gennaio 14:06:46 DNS denominato[2257]: zona desdelinux.fan/IN: seriale caricato il 6 gennaio 29 14:10:01 dns systemd[1]: sessione 43 avviata dell'utente root. 29 gennaio 14:10:01 dns systemd[1]: avvio della sessione 43 dell'utente root. 29 gennaio 14:10:01 dns CROND[2693]: (root) CMD (/usr/lib64/sa/sa1 1 1) 29 gennaio 14:10:45 dns denominato[2257]: ricevuto il comando del canale di controllo 'freeze desdelinux.fan' 29 gennaio 14:10:45 dns denominato[2257]: zona di congelamento 'desdelinux.fan/IN': successo 29 gennaio 14:10:58 dns denominato[2257]: ricevuto il comando del canale di controllo 'scongelamento desdelinux.fan' 29 gennaio 14:10:58 dns denominato[2257]: zona di scongelamento 'desdelinux.fan/IN': successo 29 gennaio 14:10:58 dns denominato[2257]: zona desdelinux.fan/IN: il file journal non è aggiornato: rimozione del file journal 29 gennaio 14:10:58 dns denominato[2257]: zona desdelinux.fan/IN: seriale 7 caricata
  • Amici lettori, ripeto che dovete leggere attentamente le uscite dei comandi. Per qualcosa i suoi sviluppatori hanno speso così tanto lavoro per programmare ogni comando, non importa quanto sia semplice.

Riassunto

Finora abbiamo affrontato l'implementazione della coppia DNS - DHCP, servizi importanti e cruciali per il buon andamento della nostra Rete di PMI, riferiti alla concessione di indirizzi dinamici tramite DHCP e alla risoluzione di computer e nomi di dominio tramite DNS.

Ci auguriamo seriamente che l'intera procedura ti sia piaciuta come abbiamo fatto noi. Sebbene possa sembrare più difficile usare la console, è molto più semplice ed educativo implementare un servizio in UNIX® / Linux con il suo aiuto.

Sono perdonato per qualsiasi interpretazione errata di concetti pensati, creati, scritti, rivisti, riscritti e pubblicati nella lingua di Shakespeare, non di Cervantes. 

Prossima consegna

Penso un po 'di più la stessa cosa - con aggiunte teoriche sui record DNS - ma in Debian. Non possiamo dimenticare quella distribuzione, giusto?


Aggiungi come fonte preferita in Google