DNS i DHCP a CentOS 7 - Xarxes PIMES

Índex general de la sèrie: Xarxes de Ordinadors per a les PIMES: Introducció

Hola amics !. Veurem en aquest article com podem implementar la important dupla de serveis per a xarxes constituïda pel DNS i DHCP a CentOS - Linux, específicament en la seva versió 7.2.

  • Alguns articles sobre el tema DNS es refereixen al fet que la implementació d'aquest servei és una mica obscura i difícil. No estic molt d'acord amb aquesta afirmació. Millor diria que és una mica conceptual i que molts dels seus arxius de configuració tenen una sintaxi primmirada. Per sort, tenim eines per comprovar, pas a pas, la sintaxi de cada arxiu de configuració que modifiquem. Per això, tractarem de fer el més agradable i amena possibles la lectura d'aquest post.

Als que busquen conceptes bàsics sobre els dos serveis, es recomana comencin la seva recerca per Wikipedia, tant en les seves versions en espanyol com en anglès. No és menys cert que gairebé sempre els articles en anglès són més complets i coherents. Així i tot, Wikipedia constitueix un molt bon punt de partida.

Aquells que de veritat vulguin aprendre sobre DNS i BIND, els recomanem la lectura d'el llibre «Oreilly - DNS and BIND 4ed»Escrit per Paul Albitz y cricket Liu, O una edició posterior que de segur existeix.

Ja vam publicar un article sobre el tema titulat «DNS i DHCP a openSUSE 13.2 Harlequin - Xarxes PIME»Per als amants de l'entorn gràfic. No obstant això, en el endavant s'enfrontaran amb articles sobre aquest tema -que no sobre altres- escrits amb molt ús de l'emulador d'una terminal o consola. Vaja !, a l'estil clàssic utilitzat pels administradors de Sistemes de UNIX® / Linux.

Si voleu conèixer més sobre el cognom de l'títol d'aquest article «xarxes PIMES»Poden visitar la pàgina en aquest mateix blog«Xarxes PIMES: primer tall virtual«. Hi trobareu enllaços a molts altres articles publicats.

  • Després que acabi la instal·lació de el Sistema Operatiu CentOS 7 amb els paquets recomanem, el directori /usr/share/doc/bind-9.9.4/ conté una bona quantitat de documentació que recomanem consulti abans d'aventurar en una recerca per Internet sense abans conèixer que, a l'abast de la mà i en la seva pròpia casa, pot trobar el que busca.

Instal·lació de la base del sistema

Dades generals de l'domini i servidor DNS

Nom de l'domini: desdelinux.fan
Nom de servidor DNS: dns.desdelinux.fan
adreça IP: 192.168.10.5
Màscara de subxarxa: 255.255.255.0

Instal·lador

Partim d'una instal·lació nova o neta de sistema operatiu CentOS juliol tal com vam indicar en article anterior «CentOS 7 Hypervisor I - Xarxes PIMES«. Només hem de realitzar els següents canvis:

  • En la imatge 22 «SELECCIÓ SOFTWARE«, Recomanem triar a la columna esquerra«entorn Base»L'opció corresponent a un«Servidor d'infraestructura«, Mentre que a la columna dreta«Complements per a l'Entorn seleccionat»Marcar la casella de verificació«Servidor de noms DNS«. A l'servidor DHCP ho instal·larem posteriorment.
  • Recordem la declaració dels repositoris addicionals com es mostra a la imatge 23, Després de configurar la «XARXA & NOM D'EQUIP".
  • Les imatges referents a les particions que crearem al nostre disc dur, només es donen com a guies. Siéntase lliure de seleccionar les particions al seu propi criteri, pràctica, i bon judici.
  • Finalment, a la Imatge 13 «XARXA & NOM D'EQUIP», Hem de canviar els valors d'acord amb els paràmetres generals de l'domino i servidor DNS declarats, sense oblidar especificar el nom de l'amfitrió -en aquest cas «dns«- un cop acabada la configuració de la xarxa. És positiu fer fer ping -des altre host- a l'adreça IP especificada després que la xarxa estigui activa:

DNS i DHCP a CentOS

Realment són pocs i molt evidents els canvis que hem de fer pel que fa a l'article anterior.

Revisions i ajustos inicials

Després que instal·lem el sistema operatiu hem de revisar els següents arxius com a mínim, i per a això vam iniciar una sessió via SSH des del nostre equip sysadmin.desdelinux.fan:

buzz @ sysadmin: ~ $ ssh 192.168.10.5
buzz@192.168.10.5's password: Last login: Sat Jan 28 09:48:05 2017 from 192.168.10.1
[Buzz @ dns ~] $

Potser l'operació anterior es demori més del normal, i es deu en el fonamental al fet que encara no tenim un DNS en la LAN. Comproveu novament després que el DNS estigui funcionant.

[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 
# Generated by NetworkManager search desdelinux.fan nameserver 127.0.0.1

Les configuracions principals responen a les nostres seleccions. Observem que fins i tot en un servidor Xarxa Hat 7 - CentOS juliol, Es configura per defecte a l' Gestor de xarxa perquè aquest sigui qui gestioni les interfícies de xarxa, siguin cablejades o sense fils (WiFi), connexions VPN, connexions PPPoE, i qualsevol altra connexió de xarxa.

[Buzz @ dns ~] $ sudo systemctl estatus NetworkManager
[Sudo] password for buzz: ● networkmanager.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)

[Buzz @ dns ~] $ sudo systemctl estatus NetworkManager
● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: activi (running) since ds 2017 01:28:12 EST; 23min ago Main PID: 59 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─12 / usr / sbin / NetworkManager --no-daemon

Xarxa Hat - CentOS també permet connectar i desconnectar les interfícies de xarxa mitjançant els clàssics ordres ifup e si avall. Executem en una consola de servidor:

[Root @ dns ~] # ifdown eth0
Device 'eth0' successfully disconnected.

[Root @ dns ~] # ifup eth0
Connexió activada amb èxit (D-Bus active path: / org / freedesktop / NetworkManager / ActiveConnection / 1)
  • suggerim no canviar la configuració per defecte que ofereix CentOS 7 amb respecte a l' Gestor de xarxa.

Declarem de manera definitiva els repositoris que utilitzarem i actualitzem el sistema operatiu de ser necessari:

[Buzz @ dns ~] $ seu pas: [root @ dns buzz] # cd /etc/yum.repos.d/
[Root @ dns yum.repos.d] # ls -l
total 28 -RW-r - r--. 1 root root 1664 9 desembre 2015 CentOS-Base.repo -RW-r - r--. 1 root root 1309 9 desembre 2015 CentOS-CR.repo -RW-r - r--. 1 root root 649 9 desembre 2015 CentOS-Debuginfo.repo -RW-r - r--. 1 root root 290 9 desembre 2015 CentOS-fasttrack.repo -RW-r - r--. 1 root root 630 9 desembre 2015 CentOS-Media.repo -RW-r - r--. 1 root root 1331 9 desembre 2015 CentOS-Sources.repo -RW-r - r--. 1 root root 1952 9 desembre 2015 CentOS-Vault.repo

És saludable llegir el contingut dels arxius originals de declaració dels repositoris recomanats per CentOS. Els canvis que aquí realitzem es deuen al fet que no disposem d'un accés a Internet, i treballem amb dipòsits locals descarregats des de la Aldea WWW, per col·legues que ens fan la vida una mica més fàcil. 😉

[Root @ dns yum.repos.d] # mkdir originals
[Root @ dns yum.repos.d] # mv CentOS- * originals /

[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 clean all
Complements carregats: fastestmirror, langpacks Netejant repositoris: centos-base centos-updates Cleaning up everything

[Root @ dns yum.repos.d] # yum update
Complements carregats: fastestmirror, 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 Determining fastest mirrors No packages marked for update

El missatge «No (hi ha) paquets marcats per actualitzar» - «No packages marked for update»Indica que, a l'declarar els repositoris més actualitzats a la nostra disposició durant la instal·lació, es van instal·lar precisament els paquets més actuals.

Sobre el context SELinux i el tallafocs

Anem a enfocar a aquest article -en el fonamental- en la implementació dels serveis DNS i DHCP, que és el seu principal Objectiu.

Si algun lector seleccionat una Política de Seguretat durant el procés d'instal·lació, tal com s'indica a la imatge 06 de l'article de referència «CentOS 7 Hypervisor I - Xarxes PIMES»Utilitzat per a la instal·lació d'aquest servidor DNS - DHCP, i troba que no coneix com configurar adequadament el SELinux i el Firewall de CentOS, suggerim executen el següent:

Modifiqueu el fitxer / Etc / sysconfig / selinux i canviï SELINUX = imposar per SELINUX = disable

[Root @ dns ~] # nano / etc / sysconfig / selinux
# This file controls the state of SELinux on the system. # SELINUX = can take one of these three values: # enforcing - SELinux security policy is enforced. # Permissive - SELinux prints warnings instead of enforcing. # Disabled - No SELinux policy is loaded.
SELINUX = inhabilitat
# SELINUXTYPE = can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are pr $ # mls - Multi Level Security protection. SELINUXTYPE = targeted

A continuació executeu les ordres següents

[Root @ dns ~] # setenforce 0
[Root @ dns ~] # service firewalld stop
Redirecting to / bin / systemctl stop firewalld.service

[Root @ dns ~] # systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

Si vostè està implementant un servidor DNS cara a Internet, NO ha de realitzar el més aviat indicat, sinó configurar el context SELinux i el Firewall correctament. Consulti «Configuració de servidors amb GNU / Linux, de l'autor Joel Barris Dueñas» o la pròpia documentació de CentOS - Red Hat

Configurem el BIND - named

  • El directori /usr/share/doc/bind-9.9.4/ conté una bona quantitat de documentació que recomanem consulti abans d'aventurar en una recerca per Internet sense abans conèixer que, a l'abast de la mà i en la seva pròpia casa, pot trobar el que busca

En moltes distribucions a el servei DNS instal·lat mitjançant el paquet BIND se l'anomena nomenat (Name Daemon). En CentOS juliol s'instal·la deshabilitat per defecte, segons la pròpia sortida de la següent comanda, on expressa que el seu estat és «discapacitat«, I que aquest estat està predefinit per la seva« venedor »- vendor preset. Que consti que el BIND és Programari Lliure.

Habilitant el servei named

[Root @ dns ~] # systemctl estatus named
● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; discapacitat; vendor preset: disabled) Active: inactive (dead)

[Root @ dns ~] # systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

[Root @ dns ~] # systemctl start named

[Root @ dns ~] # systemctl estatus named
● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; habilitat; vendor preset: disabled)
   Actiu: actiu (executant) since ds 2017 01:28:13 EST; 22min ago procés: una 38 ExecStart = / usr / sbin / named -o named $ OPTIONS (code = exited, status = 5 / SUCCESS) al procés: una 1990 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "yes"]; then / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Checking of zone files is disabled"; fil (code = exited, status = 0 / SUCCESS) Main PID: 1988 (named) CGroup: /system.slice/named.service └─0 / usr / sbin / named -o named gen 1993 1993:28:13 dns named [22]: error (network unreachable) Resolving './NS/IN': 45: 1993: 2001f :: f # 500 gen 2 53:28:13 dns named [22]: error (network unreachable) Resolving './ DNSKEY / IN ': 47: 1993: 2001 :: 500 # 3 gen 42 53:28:13 dns named [22]: error (network unreachable) Resolving' ./NS/IN ': 47: 1993: 2001 :: 500 # 3 gen 42 53:28:13 dns named [22]: error (network unreachable) Resolving './DNSKEY/IN': 47: 1993: 2001d :: d # 500 gen 2 53:28:13 dns named [22 ]: error (network unreachable) Resolving './NS/IN': 47: 1993: 2001d :: d # 500 gen 2 53:28:13 dns named [22]: error (network unreachable) Resolving './DNSKEY/ IN ': 47: DC1993 :: 2001 # 3 gen 35 53:28:13 dns named [22]: error (network unreachable) Resolving' ./NS/IN ': 47: DC1993 :: 2001 # 3 gen 35 53: 28:13 dns named [22]: error (network unreachable) Resolving './DNSKEY/IN': 47: 1993fe :: 2001 # 7 gen 53 53:28:13 dns named [22]: error (network unreachable) res olving './NS/IN': 47: 1993fe :: 2001 # 7 gen 53 53:28:13 dns named [22]: managed-keys-zone: Unable to fetch DNSKEY set '.': timed out

[Root @ dns ~] # systemctl restart named

[Root @ dns ~] # systemctl estatus named
● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; habilitat; vendor preset: disabled)
   Actiu: actiu (executant) since ds 2017 01:28:13 EST; 29s ago procés: una 41 ExecStop = / bin / sh -c / usr / sbin / rndc stop> / dev / null 1> & 1449 || / Bin / kill -TERM $ MAINPID (code = exited, status = 2 / SUCCESS) al procés: una 1 ExecStart = / usr / sbin / named -o named $ OPTIONS (code = exited, status = 0 / SUCCESS) al procés: una 1460 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "yes"]; then / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Checking of zone files is disabled"; fil (code = exited, status = 0 / SUCCESS) Main PID: 1457 (named) CGroup: /system.slice/named.service └─0 / usr / sbin / named -o named gen 1463 1463:28:13 dns named [29]: managed-keys-zone: journal file is out of date: Removing journal file gen 41 1463:28:13 dns named [29]: managed-keys-zone: loaded serial 41 gen 1463 2:28:13 dns named [29]: zone 41.in-addr.arpa/IN: loaded serial 1463 gen 0 0:28:13 dns named [29]: zone localhost.localdomain / IN: loaded serial 41 gen 1463 0:28:13 dns named [29]: zone 41.in-addr.arpa/IN: loaded serial 1463 gen 1.0.0.127 0:28:13 dns named [29]: zone 41 .1463.ip1.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 / IN: loaded serial 6 gen 0 28:13:29 dns named [41]: zone localhost / IN: loaded serial 1463 gen 0 28 : 13: 29 dns named [41]: all zones loaded gen 1463 28:13:29 dns named [41]: running gen 1463 28:13:29 dns systemd [41]: Started Berkeley Internet Name Domain (DNS).

Després que habilitem el servei nomenat i el vam iniciar per primera vegada, la sortida de la comanda systemctl estatus named mostra errors. Quan reiniciem el servei a continuació, el nomenat crea tots els fitxers de configuració que, per defecte, li són necessaris per al seu correcte funcionament. Per això, en executar novament la comanda systemctl estatus named no es mostren més errors.

  • Benvolgut, car, i exigent Lector: si Vostè vol assabentar-se -almenys- qual camí condueix a la fi de l'forat de l'conill, si us plau, llegiu amb calma les detallades sortides de cada comanda. 😉 Segur que l'article li semblarà una mica llarg, però no negarà que guanya en explicació i claredat.

Modifiquem el fitxer /etc/named.conf

Molts comentaris de lectors diuen la -que no ho dic jo- la mania que tenen els mantenidors de les diferents distribucions Linux, d'ubicar els fitxers de configuració de sistema en carpetes amb noms diferents segons sigui la distro. Tenen raó. Però què podem fer nosaltres, els simples usuaris que utilitzem aquestes distribucions ?. ¡Adaptar-!. 😉

Per cert, en FreeBSD, clon de UNIX® «L'Origen», l'arxiu està en /usr/local/etc/namedb/named.conf; mentre que a Debian, a més de dividir-se en els quatre arxius named.conf, named.conf.options, named.conf.default-zones, i named.conf.local, Es troba a la carpeta / Etc / bind /. Els que vulguin conèixer on el col·loca openSUSE, llegeixin «DNS i DHCP a openSUSE 13.2 Harlequin - Xarxes PIME«. Tenen raó els lectors !. 😉

I com sempre fem: abans de modificar res, guardem l'arxiu de configuració original sota un altre nom.

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

Per facilitar-nos la vida, en comptes de generar la clau TSIG per a les actualitzacions dinàmiques de l'DNS pel DHCP, copiem la mateixa clau rndc.key com a dhcp.key.

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

[Root @ dns ~] # nano /etc/dhcp.key
key "dhcp-key" {algorithm HMAC-md5; secret "OI7Vs + TO83L7ghUm2xNVKg =="; };

Perquè el nomenat pugui llegir l'arxiu acabat de copiat, modifiquem el seu grup propietari:

[Root @ dns ~] # chown root: named /etc/dhcp.key [root @ dns ~] # ls -l /etc/rndc.key /etc/dhcp.key -RW-r -----. 1 root named 77 gen 28 16:36 /etc/dhcp.key -RW-r -----. 1 root named 77 gen 28 13:22 /etc/rndc.key

Petits detalls com l'anterior són els que ens poden tornar bojos tractant d'esbrinar ¿ara ..., on hi ha el problema ...? amb alguns adjectius més, que no escrivim per respecte a l'Respectable.

Ara si -Al fi! - modifiquem l'arxiu /etc/named.conf. Els canvis o addicions que hem fet, pel que fa a l'original, estan en negretes. Observin bé que són pocs.

[Root @ dns ~] # nano /etc/named.conf
// // named.conf // // mitjançant filtres Red Hat bind package to configure the ISC BIND named (8) DNS // server es a caching only nameserver (es a localhost DNS resoldre only). // // See / usr / share / doc / bind * / sample / for example named configuration files. //

// Llista de Control d'Accés declarant quals xarxes podran consultar
// el meu servidor named
acl mired {
 127.0.0.0 / 8;
 192.168.10.0 / 24;
};

opcions {
 // Declaro que el dimoni named, també escolti per la interfície
 // eth0 que té la IP: 192.168.10.5
    listen-on port 53 {127.0.0.1; 192.168.10.5; };
    listen-on-v6 port 53 {:: 1; }; directory "/ var / named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt";

 // Declaració dels Forwarders
 // forwarders {
 // 0.0.0.0;
 // 1.1.1.1;
 //};
    // forward first;

    // Només permeto consultes al meu ACL mired
    allow-query { mired; }; // Per comprovar amb l'ordre dig desdelinux.fan axfr // des de l'estació de treball del SysAdmin i el localhost només // No tenim servidors DNS esclaus. No ho necessitem... fins ara.
 allow-transfer {localhost; 192.168.10.1; };

    / * - If you are building an authoritative DNS server, do NOT enable recursion. - If you are building a recursive (caching) DNS server, necessites activar to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS Amplification attacks. Implementing BCP38 within your network would greatly redueix such attack surface * /
    // Volem un servidor AUTORITARI per a la nostra LAN - PIME
    recurs no;

    DNSSEC-enable yes; DNSSEC-validation yes; / * Path to ISC DLV key * / bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/ var / named / dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging {channel default_debug {file "data / named.run"; severity dynamic; }; }; zone "." IN {type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

// Incloem la clau TSIG per a les actualitzacions dinàmiques de l'DNS // a càrrec de l'DHCP
include "/etc/dhcp.key";

// Declaració de el nom, tipus, ubicació, i permís d'actualització
// de les Zones de Registres DNS // Les dues Zones són MESTRES
zone "desdelinux.fan" {
 tipus mestre;
 file "dynamic/db.desdelinux.fan";
 allow-update {key dhcp-key; };
};

zone "10.168.192.in-addr.arpa" {
 tipus mestre;
 file "dynamic / db.10.168.192.in-addr.arpa";
 allow-update {key dhcp-key; };
};

Vam comprovar la sintaxi

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

Com la comanda anterior no torna res, la sintaxi està OK. No obstant això, si executem el mateix ordre, però amb l'opció -z, La sortida serà:

[Root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0 zone localhost/IN: loaded serial 0 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. .ip6.arpa/IN: loaded serial 0 zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 zone 0.in-addr.arpa/IN: loaded serial 0 zone desdelinux.fan/IN: loading from master file dynamic/db.desdelinux.fan failed: file not found zone desdelinux.fan/IN: not loaded due to errors. _default/desdelinux.fan/IN: file not found zone 10.168.192.in-addr.arpa/IN: loading from master file dynamic/db.10.168.192.in-addr.arpa failed: file not found zone 10.168.192.in- addr.arpa/IN: no loaded due to errors. _default/10.168.192.in-addr.arpa/IN: file not found

Per descomptat que són errors que es produeixen perquè encara no hem creat les Zones de Registres DNS del nostre domini.

  • Per a més informació sobre l'comado named-checkconf, executeu man named-checkconf, Abans de buscar qualsevol altra informació a Internet. Li asseguro que s'estalviarà una bona quantitat de temps.

Creem el fitxer de la Zona Directa desdelinux.fan

... no sense abans una mica de teoria. 😉

Com plantilla per crear el fitxer de dades de la zona, podem prendre el /var/named/named.empty, O el /usr/share/doc/bind-9.9.4/sample/var/named/named.empty. Tots dos són idèntics.

[Root @ dns ~] # cat /var/named/named.empty 
$ TTL 3H @ IN SOA @ rname.invalid. (0; serial 1D; refresh 1H; retry 1W; expiri 3H); minimum or Negative caching time to live NS @ A 127.0.0.1 AAAA :: 1

Temps de vida - Time to live TTL de l'registre SOA

Fem un parèntesi per explicar els TTL - Time to live de l'registre SOA - Start of Authority d'una Zona Mestra. És interessant conèixer els seus significats per quan vulguem modificar algun dels seus valors.

$ TTL: Temps de vida - Temps de viure per a tots els registres de l'arxiu a continuació de la declaració (però precedeix a qualsevol altra declaració $ TTL) i que no tenen una explícita declaració TTL.

de sèrie: Nombre de sèrie de les dades de la Zona. Cada vegada que modifiquem manualment un registre DNS a una zona, hem d'incrementar aquest nombre en 1, en especial si tenim servidors esclaus o secundaris. Cada vegada que un servidor DNS secundari o esclau contacta al seu servidor mestre, pregunta pel nombre de sèrie de les dades de l'mestre. Si és menor el nombre de sèrie de l'esclau, llavors les dades d'aquesta zona al servidor esclau estan endarrerits, i l'esclau realitza una transferència de zona per actualitzar-se.

refresh: Li diu a l'servidor esclau l'interval de temps en què ha de comprovar si les seves dades estan actualitzades pel que fa a l'mestre.

torneu-ho a provar: Si el servidor mestre no es troba disponible -per que es va emmalaltir, digamos- per l'esclau després d'un interval de temps refresh, torneu-ho a provar li indica a l'esclau l'interval de temps que ha d'esperar per intentar novament un contacte amb el seu mestre.

caducar: Si l'esclau no pot contactar al seu mestre durant un interval de temps caducar, Llavors si que es va espatllar la relació zona esclava - mestra, i a el servidor esclau no li que queda mes remei que expirar la zona en qüestió. La Expiració d'una zona per part d'un servidor DNS esclau, vol dir que aquest deixarà de respondre consultes DNS relatives a aquesta zona, a causa que les dades disponibles són molt vells com per ser útils.

  • L'anterior ens ensenya de manera indirecta i carregada de gran sentit comú -el menys comú dels sentits- que sinó necessitem de servidors DNS esclaus per al funcionament de la nostra PIME, no ho implementem, llevat que siguin estrictament necessaris. Tractem sempre anar del senzill al complex.

Minimun: En versions anteriors a l' VINCULAR 8.2, L'últim registre SOA indica de la mateixa manera el Temps de vida per defecte - Default time to live, i el Temps de vida de la Memòria cau Negativa - Negative caching time to live per a la Zona. Aquest temps es refereix a totes les respostes negatives donades pel servidor autoritari per a la Zona.

Fitxer de zona /var/named/dynamic/db.desdelinux.fan

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.fan
$TTL 3H @ IN SOA dns.desdelinux.fan. root.dns.desdelinux.fan. (1; serial 1D; refresh 1H; retry 1W; expiri 3H); minimum or ; Negative caching time to live ; @ IN NS dns.desdelinux.fan. @ IN MX 10 mail.desdelinux.fan. @ IN TXT "DesdeLinux, el vostre Blog dedicat al Programari Lliure" ; server IN A 192.168.10.1 mail IN A 192.168.10.3

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

[root@dns ~]# named-checkzone desdelinux.fan /var/named/dynamic/db.desdelinux.fan
zona desdelinux.fan/IN: loaded serial 1 OK

Creem l'arxiu de la Zona Inversa 10.168.192.in-addr.arpa

  • El registre SOA d'aquesta zona, és el mateix que el de la Zona Directa sense considerar el registre MX.
[Root @ dns ~] # nano /var/named/dynamic/db.10.168.192.in-addr.arpa
$TTL 3H @ IN SOA dns.desdelinux.fan. root.dns.desdelinux.fan. (1; serial 1D; refresh 1H; retry 1W; expiri 3H); minimum or ; Negative caching time to live ; @ IN NS dns.desdelinux.fan. ; 1 IN PTR sysadmin.desdelinux.fan. 3 IN PTR ad-dc.desdelinux.fan. 4 IN PTR fileserver.desdelinux.fan. 5 IN PTR dns.desdelinux.fan. 6 IN PTR proxyweb.desdelinux.fan. 7 IN PTR bloc.desdelinux.fan. 8 IN PTR ftpserver.desdelinux.fan. 9 IN PTR mail.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: loaded serial 1 OK

Abans de tornar a arrencar el named comprovem la seva configuració

  • Fins que no estiguem segurs que els fitxers de configuració de l'named named.conf, i els seus arxius de zones no estiguin correctament configurats, suggerim no reiniciar el dimoni named. Si ho fem i posteriorment modifiquem un arxiu de zona, hem d'incrementar en 1 el número de sèrie de la zona modificada.
  • Observem el «.» a la fi dels noms de domini i de hosts.
[Root @ dns ~] # named-checkconf 
[Root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0 zone localhost/IN: loaded serial 0 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. .ip6.arpa/IN: loaded serial 0 zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 zone 0.in-addr.arpa/IN: loaded serial 0 zone desdelinux.fan/IN: loaded serial 1 zone 10.168.192.in-addr.arpa/IN: loaded serial 1

Tota la configuració actual de l'named

Per guanyar claredat, i encara que l'article es faci llarg, donem la sortida completa de la comanda named-checkconf -zp:

[Root @ dns ~] # named-checkconf -zp
zone localhost.localdomain/IN: loaded serial 0 zone localhost/IN: loaded serial 0 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. .ip6.arpa/IN: loaded serial 0 zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 zone 0.in-addr.arpa/IN: loaded serial 0 zone desdelinux.fan/IN: loaded serial 1 zone 10.168.192.in-addr.arpa/IN: loaded serial 1 options { bindkeys-file "/etc/named.iscdlv.key"; session-keyfile "/run/named/session.key"; directori "/var/named"; dump-file "/var/named/data/cache_dump.db"; listen-on port 53 { 127.0.0.1/32; 192.168.10.5/32; }; listen-on-v6 port 53 { ::1/128; }; managed-keys-directory "/var/named/dynamic"; memstatistics-file "/var/named/data/named_mem_stats.txt"; pid-file "/run/named/named.pid"; statistics-file "/var/named/data/named_stats.txt"; dnssec-enable yes; dnssec-validation yes; recursion no; allow-query { "mired"; }; allow-transfer { 192.168.10.1/32; }; }; acl "mired" { 127.0.0.0/8; 192.168.10.0/24; }; logging { channel "default_debug" { file "data/named.run"; severity dynamic; }; }; key "dhcp-key" { algorithm "hmac-md5"; secret "OI7Vs+TO83L7ghUm2xNVKg=="; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { "none"; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { "none"; }; }; 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.ip6.arpa" IN { type master; file "named.loopback"; allow-update { "none"; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { "none"; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { "none"; }; }; zone "desdelinux.fan" { type master; file "dynamic/db.desdelinux.fan"; allow-update { key "dhcp-key"; }; }; zone "10.168.192.in-addr.arpa" { type master; file "dynamic/db.10.168.192.in-addr.arpa "; allow-update { key "dhcp-key"; }; }; managed-keys { "." initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA +Uk1ihz0="; };
  • De seguir el procediment de modificar el anomenat.conf d'acord a les nostres necessitats i comprovar, i crear cada arxiu de zona i comprovar-la, dubtem que ens haguem d'enfrontar a problemes majors de configuració. A la fin ens adonem que és un joc de nois, amb molts conceptes i primmirada sintaxi,

Les comprovacions van tornar resultats satisfactoris, per tant podem reiniciar el BIND - nomenat.

Reiniciem el named i vam comprovar el seu status

[Root @ dns ~] # systemctl restart named.service
[Root @ dns ~] # systemctl estatus named.service

D'obtenir qualsevol tipus d'error en la sortida de l'últim comando, hem de reiniciar el named.service i tornar a comprovar la seva estat. Si els errors van desaparèixer, el servei es va iniciar correctament. En cas contrari, hem de realitzar una minuciosa revisió de tots els fitxers modificats i creats, i repetir el procediment.

La sortida correcta de l'estatus ha de ser:

[Root @ dns ~] # systemctl estatus named.service
● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; habilitat; vendor preset: disabled) Active: activi (running) since dom 2017-01-29 10:05:32 EST; 2min 57s ago Process: 1777 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS) Process: 1788 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS) Process: 1786 ExecStartPre =/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS) Main PID: 1791 (named) CGroup: /system.slice/named.service └─1791 /usr/sbin/named -u named gen 29 10:05:32 dns named [1791]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 gen 29 10:05:32 dns named[1791]: zone 10.168.192.in-addr.arpa/IN: loaded serial 1 gen 29 10:05:32 dns named[1791]: 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.ip6.arpa/IN : loaded serial 0 gen 29 10:05:32 dns named[1791]: zone desdelinux.fan/IN: loaded serial 1 gen 29 10:05:32 dns named[1791]: zone localhost.localdomain/IN: loaded serial 0 gen 29 10:05:32 dns named[1791]: zone localhost/IN: loaded serial 0 gen 29 10:05:32 dns named[1791]: all zones loaded
gen 29 10:05:32 dns named [1791]: funcionament
gen 29 10:05:32 dns systemd [1]: Started Berkeley Internet Name Domain (DNS). gen 29 10:05:32 dns named [1791]: zone 10.168.192.in-addr.arpa/IN: sending notifies (serial 1)

comprovacions

Les comprovacions es poden executar en el mateix servidor o en una màquina connectada a la LAN. Preferim realitzar-les des de l'equip sysadmin.desdelinux.fan a el qual vam donar permís exprés perquè pugui realitzar Transferències de Zones. l'arxiu /etc/resolv.conf d'aquest equip és el següent:

buzz @ sysadmin: ~ $ cat /etc/resolv.conf 
# Generated by NetworkManager search desdelinux.fan nameserver 192.168.10.5

buzz@sysadmin:~$ dig desdelinux.fan axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> desdelinux.fan axfr ;; global options: +cmd
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 1 86400 3600 604800 10800
desdelinux.fan. 10800 IN NS dns.desdelinux.fan.
desdelinux.fan. 10800 IN MX 10 mail.desdelinux.fan.
desdelinux.fan. 10800 IN TXT "DesdeLinux, el vostre Blog dedicat al Programari Lliure" ad-dc.desdelinux.fan. 10800 IN A 192.168.10.3 bloc.desdelinux.fan. 10800 IN A 192.168.10.7 dns.desdelinux.fan. 10800 IN A 192.168.10.5 fileserver.desdelinux.fan. 10800 IN A 192.168.10.4 ftpserver.desdelinux.fan. 10800 IN A 192.168.10.8 mail.desdelinux.fan. 10800 IN A 192.168.10.9 proxyweb.desdelinux.fan. 10800 IN A 192.168.10.6 sysadmin.desdelinux.fan. 10800 IN A 192.168.10.1
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 1 86400 3600 604800 10800;; Query time: 0 msec;; SERVER: 192.168.10.5#53(192.168.10.5) ;; WHEN: Sun Jan 29 11:44:18 EST 2017;; XFR size: 13 records (messages 1, bytes 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 ;; global options: +cmd 10.168.192.in-addr.arpa. 10800 IN SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.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 sysadmin.desdelinux.fan. 3.10.168.192.in-addr.arpa. 10800 IN PTR ad-dc.desdelinux.fan. 4.10.168.192.in-addr.arpa. 10800 IN PTR fileserver.desdelinux.fan. 5.10.168.192.in-addr.arpa. 10800 IN PTR dns.desdelinux.fan. 6.10.168.192.in-addr.arpa. 10800 IN PTR proxyweb.desdelinux.fan. 7.10.168.192.in-addr.arpa. 10800 IN PTR bloc.desdelinux.fan. 8.10.168.192.in-addr.arpa. 10800 IN PTR ftpserver.desdelinux.fan. 9.10.168.192.in-addr.arpa. 10800 IN PTR mail.desdelinux.fan. 10.168.192.in-addr.arpa. 10800 IN SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800;; Query time: 0 msec;; SERVER: 192.168.10.5#53(192.168.10.5) ;; WHEN: Sun Jan 29 11:44:57 EST 2017;; XFR size: 11 records (messages 1, bytes 352)

buzz@sysadmin:~$ dig IN SOA desdelinux.fan
buzz@sysadmin:~$ dig IN MX desdelinux.fan buzz@sysadmin:~$ dig IN TXT desdelinux.fan
buzz @ sysadmin: ~ $ host dns
dns.desdelinux.fan has address 192.168.10.5
buzz @ sysadmin: ~ $ host sysadmin
sysadmin.desdelinux.fan has address 192.168.10.1 ... I qualsevol altra comprovació que necessitem
  • Fins aquí, tenim la base per a un servidor DNS a la nostra xarxa PIME. Esperem hagin gaudit tot el procediment, el qual va ser bastant senzill, no ?. 😉

Instal·lem i configurem el DHCP

[Root @ dns ~] # yum install dhcp
Complements carregats: fastestmirror, langpacks centos-base | 3.4 kB 00:00:00 centos-updates | 3.4 kB 00:00:00 Loading mirror Speeds from cached hostfile Resolent dependències -> Executant prova de transacció ---> Paquet dhcp.x86_64 12: 4.2.5-42.el7.centos ha de ser instal·lat -> Resolució de dependències finalitzada Dependències resoltes =============================================== ================================================== =================================== Package Arquitectura Versió Repositori Mida ========== ================================================== ================================================== ====================== Instal·lant: dhcp x86_64 12: 4.2.5-42.el7.centos centos-base 511 k Resum de la transacció ==== ================================================== ================================================== ============================ Instal·lar 1 Paquet Mida total de la descàrrega: 511 k Mida de la instal·lació: 1.4 M Is this ok [i / d / N]: i Downloading packages: dhcp-4.2.5-42.el7.centos.x86_64.rpm | 511 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction instal·lant: 12: dhcp-4.2.5-42.el7.centos.x86_64 1/1 Comprovant: 12: dhcp-4.2.5-42. el7.centos.x86_64 1/1 Instal·lat: dhcp.x86_64 12: 4.2.5-42.el7.centos Llest!

[Root @ dns ~] # nano /etc/dhcp/dhcpd.conf
# # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # ddns-update-style interim; ddns-updates on; ddns-domainname "desdelinux.fan."; ddns-rev-domainname "in-addr.arpa."; ignoreu client-updates; authoritative; option ip-forwarding off; option domain-name "desdelinux.fan"; # option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org; include "/etc/dhcp.key" ; desdelinux.fan. { primary 127.0.0.1; key dhcp-key; } zone 10.168.192.in-addr.arpa. { primary 127.0.0.1; key dhcp-key; } shared-network redlocal { subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.10.255; option domain-name-servers 192.168.10.5; option netbios-name-servers 192.168.10.5; range 192.168.10.30 192.168.10.250; } } # FIN dhcpd.conf

[Root @ dns ~] # dhcpd -t
Internet Systems Consortium DHCP Server 4.2.5 Copyright 2004-2013 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file

[Root @ dns ~] # systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

[Root @ dns ~] # systemctl start dhcpd

[Root @ dns ~] # systemctl estatus dhcpd
● dhcpd.service - DHCPv4 Server Daemon Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; habilitat; vendor preset: disabled) Active: activi (running) since dg 2017 01:29:12 EST; 04s ago Docs: man: dhcpd (59) man: dhcpd.conf (23) Main PID: 8 (dhcpd) Status: "Dispatching packets ..." CGroup: /system.slice/dhcpd.service └─5 / usr / sbin / dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid gen 2381 2381:29:12 dns dhcpd [04]: Internet Systems Consortium DHCP Server 59 gen 2381 des : 4.2.5: 29 dns dhcpd [12]: Copyright 04-59 Internet Systems Consortium. gen 2381 2004:2013:29 dns dhcpd [12]: All rights reserved. gen 04 59:2381:29 dns dhcpd [12]: For info, please visit https://www.isc.org/software/dhcp/ gen 04 59:2381:29 dns dhcpd [12]: Not searching LDAP since ldap -server, ldap-port and ldap-base-dn were not specified in the config file gen 04 59:2381:29 dns dhcpd [12]: Wrote 04 leases to leases file. gen 59 2381:0:29 dns dhcpd [12]: Listening on LPF / eth04 / 59: 2381: 0: 52: 54: 00 / redlocal gen 12 17:04:29 dns dhcpd [12]: Sending on LPF / eth04 / 59: 2381: 0: 52: 54: 00 / redlocal gen 12 17:04:29 dns dhcpd [12]: Sending on Socket / fallback / fallback-net gen 04 59:2381:29 dns systemd [12]: Started DHCPv04 Server Daemon.

Que resta per fer?

Senzill. Iniciar un client Windows 7 o un altre amb Programari lliure i començar a provar i comprovar. Nosaltres ho vam fer amb dos clients: set.desdelinux.fan y suse-desktop.desdelinux.fan. Les comprovacions van ser les següents:

buzz @ sysadmin: ~ $ host seven
set.desdelinux.fan has address 192.168.10.30

buzz@sysadmin:~$ host seven.desdelinux.fan
set.desdelinux.fan has address 192.168.10.30

buzz@sysadmin:~$ dig IN TXT seven.desdelinux.fan
.... ;; QUESTION SECTION: ;seven.desdelinux.fan. IN TXT;; ANSWER SECTION: seven.desdelinux.fan. 3600 IN TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"....

Li canviem el nom a l'equip «seven» per «LAGER» i reiniciem. Després de reiniciar el nou LAGER, comprovem:

buzz @ sysadmin: ~ $ host seven
Host seven not found: 5 (Refused)

buzz@sysadmin:~$ host seven.desdelinux.fan
Host seven.desdelinux.fan not found: 3(NXDOMAIN)

brunzit@sysadmin: ~ $ host lager
lager.desdelinux.fan has address 192.168.10.30

brunzit@sysadmin:~$ host lager.desdelinux.fan
lager.desdelinux.fan has address 192.168.10.30

buzz@sysadmin:~$ dig IN TXT lager.desdelinux.fan
.... ;; QUESTION SECTION: ;lager.desdelinux.fan. IN TXT;; ANSWER SECTION: lager.desdelinux.fan. 3600 IN TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"....

Pel que fa a el client suse-desktop:

buzz @ sysadmin: ~ $ host suse-dektop
Host suse-dektop not found: 5 (Refused)

buzz @ sysadmin: ~ $ host suse-desktop
suse-desktop.desdelinux.fan has address 192.168.10.33

buzz@sysadmin:~$ host suse-desktop.desdelinux.fan
suse-desktop.desdelinux.fan has address 192.168.10.33

buzz @ sysadmin: ~ $ host 192.168.10.33
33.10.168.192.in-addr.arpa domain name pointer suse-desktop.desdelinux.fan.

buzz @ sysadmin: ~ $ host 192.168.10.30
30.10.168.192.in-addr.arpa domain name pointer LAGER.desdelinux.fan.
buzz @ sysadmin: ~ $ dig -x 192.168.10.33
.... ;; QUESTION SECTION: ;33.10.168.192.in-addr.arpa. IN PTR;; ANSWER SECTION: 33.10.168.192.in-addr.arpa. 3600 IN PTR suse-desktop.desdelinux.fan. ;; AUTHORITY SECTION: 10.168.192.in-addr.arpa. 10800 IN NS dns.desdelinux.fan. ;; ADDITIONAL SECTION: dns.desdelinux.fan. 10800 IN A 192.168.10.5.

buzz@sysadmin:~$ dig IN TXT suse-desktop.desdelinux.fan ....
;suse-desktop.desdelinux.fan. IN TXT;; ANSWER SECTION: suse-desktop.desdelinux.fan. 3600 IN TXT "31b78d287769160c93e6dca472e9b46d73"

;; AUTHORITY SECTION:
desdelinux.fan. 10800 IN NS dns.desdelinux.fan. ;; ADDITIONAL SECTION: dns.desdelinux.fan. 10800 IN A 192.168.10.5
....

Executem també les ordres

[root@dns ~]# dig desdelinux.fan axfr
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> desdelinux.fan axfr ;; global options: +cmd
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 6 86400 3600 604800 10800
desdelinux.fan. 10800 IN NS dns.desdelinux.fan.
desdelinux.fan. 10800 IN MX 10 mail.desdelinux.fan.
desdelinux.fan. 10800 IN TXT "DesdeLinux, el vostre Blog dedicat al Programari Lliure" ad-dc.desdelinux.fan. 10800 IN A 192.168.10.3 bloc.desdelinux.fan. 10800 IN A 192.168.10.7 dns.desdelinux.fan. 10800 IN A 192.168.10.5 fileserver.desdelinux.fan. 10800 IN A 192.168.10.4 ftpserver.desdelinux.fan. 10800 IN A 192.168.10.8 LAGER.desdelinux.fan. 3600 IN TXT "31b7228ddd3a3b73be2fda9e09e601f3e9LAGER.desdelinux.fan.   3600 IN A 192.168.10.30 mail.desdelinux.fan. 10800 IN A 192.168.10.9 proxyweb.desdelinux.fan. 10800 IN A 192.168.10.6 suse-desktop.desdelinux.fan. 3600 IN TXT "31b78d287769160c93e6dca472e9b46d73suse-desktop.desdelinux.fan. 3600 IN A 192.168.10.33 sysadmin.desdelinux.fan. 10800 IN A 192.168.10.1
desdelinux.fan. 10800 IN SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 6 86400 3600 604800 10800

A la sortida anterior, ressaltem en negretes tots els TTL -en segons- per als equips amb adreces IP atorgades pel servei DHCP els que posseeixen una declaració explícita de l'TTL 3600 donada pel DHCP. Les IP fixes es guien pel $ TTL de 3H -3 hores = 10800 segons- declarats en el registre SOA de cada arxiu de zona.

Poden comprovar de la mateixa manera la zona inversa.

[Root @ dns ~] # dig 10.168.192.in-addr.arpa AXFR

Altres comandaments summament interessants són:

[root@dns ~]# named-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

Modificació manual d'arxius de Zones

Després que el DHCP entra en el joc d'actualitzar de forma dinàmica als arxius de zones de l' nomenat, Si necessitem en algun moment modificar manualment un arxiu de zona, hem d'efectuar el següent procediment, no sense abans conèixer una mica més el funcionament de la utilitat rndc per al control de servidor de nom.

[Root @ dns ~] # man rndc
....
       freeze [zone [class [view]]]
           Suspend updates to a dynamic zone. If no zone is specified, then all zones are suspended. This Allows manual edits to be made to a zone normally updated by dynamic update. It also causes changes in the journal file to be synced into the màster file. All dynamic update Attempts will be Refused while the zone is frozen.

       Thaw [zone [class [view]]]
           Enable updates to a frozen dynamic zone. If no zone is specified, then all frozen zones are enabled. This causes the server to reload the zone from disk, and re-Enables dynamic updates after the load has completed. After a zone is Thawed, dynamic updates will no longer be Refused. If the zone has changed and the ixfr-from-differences option is in use, then the journal file will be updated to reflect changes in the zone. Otherwise, if the zone has changed, any existing journal file will be removed. ....

Què, van pensar que anava a transcriure tot el manual? ... un tros i van en cotxe. La resta l'hi deixo a Vostès. 😉

bàsicament:

  • rndc freeze [zone [class [view]]], Suspèn l'actualització dinàmica d'una zona. Sinó s'especifica una, totes es congelaran. La comanda permet l'edició manual de la zona congelada o de totes les zones. Es negarà qualsevol actualització dinàmica mentre estigui congelada.
  • rndc Thaw [Zone [class [view]]], Habilita les actualitzacions dinàmiques en una zona prèviament congelada. El servidor DNS recàrrega l'arxiu de zona des del disc i es tornen a habilitar les actualitzacions dinàmiques després que la recàrrega s'acabi.

¿Cures a tenir quan vam editar manualment un arxiu de zona ?. Els mateixos que si la estiguéssim creant, sense oblidar incrementar en 1 el número de sèrie o de sèrie abans de desar el fitxer amb els canvis definitius.

Exemple:

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

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.fan
Modificar l'arxiu de la zona per qualsevol raó, necessària o no. Guardo els canvis

[Root @ dns ~] # rndc Thaw desdelinux.fan
A zone reload and Thaw was started. Check the logs to see the result.

[Root @ dns ~] # journalctl -f
gen 29 14:06:46 dns named[2257]: thawing zone 'desdelinux.fan/IN': success
gen 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: zone serial (6) unchanged. zone mai fail to transfer to slaves.
gen 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: loaded serial 6

L'error en la sortida anterior, que a la consola es mostra en vermell, es deu al fet que «vaig oblidar» augmentar el serial en 1. D'haver seguit el procediment de correctament, la sortida hauria estat:

[Root @ dns ~] # journalctl -f
-- Logs begin at dom 2017-01-29 08:31:32 EST. -- gen 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: loaded serial 6 gen 29 14:10:01 dns systemd[1]: Started Session 43 of user root. gen 29 14:10:01 dns systemd[1]: Starting Session 43 of user root. gen 29 14:10:01 dns CROND[2693]: (root) CMD (/usr/lib64/sa/sa1 1 1) gen 29 14:10:45 dns named[2257]: received control channel command 'freeze desdelinux.fan' gen 29 14:10:45 dns named[2257]: freezing zone 'desdelinux.fan/IN': success gen 29 14:10:58 dns named[2257]: received control channel command 'thaw desdelinux.fan' gen 29 14:10:58 dns named[2257]: thawing zone 'desdelinux.fan/IN': success gen 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: journal file és el dia: removing journal file gen 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: loaded serial 7
  • Amics Lectors, repeteixo que cal llegir minuciosament les sortides de les ordres. Per alguna cosa els seus desenvolupadors van passar tant treball en programar cada comanda, per molt senzill que sigui.

Resum

Fins aquí hem abordat la implementació de la dupla DNS - DHCP, importants i crucials serveis per al bon exercici de la nostra Xarxa PIME, referents a l'atorgament d'adreces dinàmiques mitjançant el DHCP i la resolució de noms d'equips i domini pel DNS.

Seriosament esperem hagin gaudit de tot el procediment com ho vam fer nosaltres. Encara que sembli més difícil mitjançant la consola, és molt més senzill i educatiu el implementar un servei en UNIX® / Linux amb la seva ajuda.

Em perdonen qualsevol mala interpretació de conceptes pensats, creats, escrits, revisats, tornats a escriure, i publicats en l'idioma de Shakespeare, que no Cervantes. 😉

propera entrega

Crec que una mica més del mateix-amb addicions teòriques sobre registres DNS- però en Debian. No podem oblidar a aquesta distribució, ¿nó ?.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Cristian Merchan va dir

    Moltes gràcies per la seva lloable tasca a l'hora d'escriure tan fructífer articles. Em va servir de molt

  2.   federico va dir

    I moltes gràcies, Cristian, per seguir-me i per la valoració que fas d'aquest post. Èxits!

  3.   Ismael Álvarez Wong va dir

    Després d'haver fet una primera vista a l'est nou post de Federico es nota novament la gran professionalitat que es vist a tot el llarg de la sèrie «PIMES»; a més de el gran detall que il·lustra el seu domini sobre dos dels serveis (DNS i DHCP) mes importants d'una qualsevol xarxa de treball. En aquest ocasió ia diferència dels meus comentaris anteriors, es em queda pendent un 2on comentari després d'haver dut a la pràctica el que s'ha exposat en aquest post.

  4.   crespo88 va dir

    Sense comentaris, pa '400 !!! Fico agrair doncs molt bé saps que llegeixo els teus posts i més no podem demanar-te. Comences amb una molt bona organització, des de com instal·lar i ambientar l'escriptori personal d'un usuari, l'estació de treball és la base, és el sentit de ser d'aquells serveis de xarxa que molt bé ens expliques. Fes anat escalant i si bé és cert que el nível és cada vegada més gran, cert és que fes escrit i publicat per als que menys que són els que comencen, pels que porten algun temps com jo i per als més avançats.
    Amb el temps he arribat a la conclusió que sé molts ja han arribat, la teoria, aquesta que ens costa tant aconseguir adquirir pel simple fet de no voler llegir, perquè executar ja és molt més fàcil quan sabem el que fem, els per què ???, les qüestions, on trobar i com sortir de l'error que tant mal de cap donen quan ni sabem d'on provenen valgui la redundància.
    Per això no voldria que deixessis enrere aquests elements teòrics que inclouràs sobre els registres DNS a la propera publicació com anunciabas i molt menys quan es tracta de l'estimat i estimat DEBIAN.
    GRÀCIES MOLTES i estem a l'espera.

  5.   caçador va dir

    Excel·lent com sempre Fico! Espero la versió Debian, fa anys que ho estic jugant tot amb aquesta distro.

  6.   federico va dir

    Wong: una opinió teva després de llegir val molt. Espero els teus comentaris quan provis el contingut, ja que es que és com t'agrada fer. 😉

  7.   federico va dir

    Crespo: Com sempre els teus comentaris són molt ben rebuts. Veig que has captat la línia general que m'he plantejat en la composició d'aquesta sèrie. Espero que, a l'igual que el teu, molts s'hagin adonat ja. Gràcies pel teu comentari.

  8.   federico va dir

    Dhunter: Que bo llegir-te de nou !. No vas a haver d'esperar molt. Per al dilluns a mes trigar -o abans- quedarà acabada per a la seva publicació. No creguis que m'és fàcil abraçar tres distros diferents, però el Respectable Lector, així ho demana. No només Debian i Ubuntu, sinó les Tres Orientades a PIMES.

  9.   crespo88 va dir

    Anem que sí ha publicat és perquè pots, et donem suport i sabem que seguiràs aquesta línia.
    Com dhunter espere llançament de Debian amb les dents afilades. Seria bo que abordaràs una miqueta sobre NTP. Sl2 i una forta abraçada. Si els meus professors m'ho haguessin ensenyat tot així, jajajja, Títol de Platí, jajajja.

  10.   federico va dir

    EL nivell de detall en sortides d'ordres és necessari per a mostrar la seva importància. Diuen molt. És cert que pocs articles aborden aquest nivell de datalle, perquè pensen que serien articles llargs i pesats de llegir. Bé, part de la feina d'un SysAdmin és llegir aquestes pesades i detallades sortides, no només davant d'un problema, sinó també davant comprovacions.

  11.   Ismael Álvarez Wong va dir

    Hola Frederic, havia promès abans, escriure uns comentaris després d'haver estudiat minuciosament el post en qüestió; doncs aquí van a continuació:
    - Genial la tècnica de en comptes de generar la clau TSIG per a les actualitzacions dinàmiques de l'DNS pel DHCP, copiar la mateixa clau rndc.key com dhcp.key, això en aparença «tan simple» demostra que l'objectiu no només és el tecnicisme de l'HOWTO-INSTALL-DNS - & - DHCP sinó el ensenyar-nos a pensar, 5 ESTRELLES PER l'AUTOR.
    – Molt interessant a l'arxiu de configuració del DNS, named.conf, la presència de la línia «allow-transfer { localhost; 192.168.10.1; };» per realitzar test el Domini «desdelinux.fan» només des de l'estació de treball del SysAdmin i el localhost (el mateix server DNS), ia més de la inserció de la clau TSIG per a l'actualització del DNS des del DHCP.
    - Molt bo la creació de les zones directa i inversa de l'DNS juntament amb l'explicació «precisa» dels seus tipus de registres, a més de l'execució de la comanda «# named-checkconf -zp» per comprovar tota la sintaxi de l'named previ a la seva reinici definitiu, així com els exemples d'execució de la comanda «dig» per verificar diferents tipus de registres de l'DNS.
    . En la configuració de l'DHCP (utilitzant el fitxer /etc/dhcp/dhcpd.conf):
    - El com afegir la nostra xarxa local amb el seu rang per adreces IP dinàmiques a assignar, la definició de l'name-server, etc; a més de com dir-li a l'DHCP que actualitzi els registres de l'DNS a través d'l'ús de les línies «ddns- ...» en la seva configuració.
    . Quan tot ja està operatiu, 5 ESTRELLES PER A L'AUTOR, en l'execució de l'ordre «# dig desdelinux.fan axfr» per comprovar el TTL dels equips de la LAN que tenen IP static dels que tenen IP dinàmiques assignades.
    . Per últim, GENIAL, la modificació manual d'arxius de Zones congelant primer amb «# rndc freeze desdelinux.fan», realitzant a continuació la modificació i descongelant-les finalment amb «# rndc thaw desdelinux.fan»
    . I EL MILLOR, TOT VA SER REALITZAT DES DEL TERMINAL.
    Segueix així Fico.

    1.    Alegria va dir

      Hola,
      Ik kom net kijken, dit omdat ik probeer et achterhalen hoe het kan dat alles gedeeld en verwijderd wordt op mijn computer zelfs mijn foto s. Ik heb totaal geen controli meer over mijn eigen computer en Mobiel.
      Het zit m dus ook in het dns a dhcp. Ik weet echt niet hoe ik dit moet oplossen en het kan verwijderen. Misschien dat iemand mij Wilt helpen? Dit is namelijk buiten mij om geinstalleerd. Walgelijk gedrag vind ik het.

  12.   federico va dir

    Wong: el teu comentari complementa a l'article. De debò, es nota que ho has estudiat a consciència. Si no, no poguessis comentar amb el nivell de detall que ho fas. Només afegir que allow-transfer s'usa fonamentalment per a quan tenim un DNS Esclau i permetem la transferència de zones dese el mestre cap a ell. El ús d'aquesta forma perquè és un mecanisme fàcil d'implementar per fer comprovacions no perilloses des d'un sol equip. Moltes Gràcies per la teva avaluació de 5. Salutacions! i et seguiré esperant en els meus propers articles.

  13.   IgnacioM va dir

    Hola Federico. Sé que arribo una mica tard, però m'agradaria fer-te una consulta.
    Aquest procediment em serviria si vull apuntar un domini al meu servidor VPS?

    Cada 15 minuts rebut aquests missatges de sistema:

    DHCPREQUEST on eth0 to port 67 (XID = ...)
    DHCPACK from (XID = ...)
    bound to - renewal in 970 seconds.

    I pel que entenc hauria de crear un A rècord amb el meu domini i la ip del meu servidor dedicat.

    * Et felicito i agraeixo per aquest article, no sé si és el que estava buscant però em va semblar molt interessant i ben explicat. A més em porto la recomanació de «DNS and BIND» que ja ho vaig estar chusmeando una mica i sembla molt interessant.

    Salutacions des d'Argentina!

    1.    antonio valdes toujague va dir

      si us plau, poseu-vos amb mi a través de valdestoujague@yandex.com