viernes, 18 de julio de 2014

Cómo configurar un servidor DNS dinámico con named y dhcpd en CentOS 6

DHCP y DNS son los servicios más básicos (y por qué no los más importantes) en una red local y en Internet. Hemos trabajado con ellos antes, como por ejemplo en las guías de Samba 4, pero hoy veremos cómo configurarlos independientemente de otros servicios que ya haya disponibles en nuestra red local. Precisamente debido a su importancia, veremos primero algunos conceptos teóricos tomados del libro de Configuración de Servidores de Joel Barrios de Alcance Libre. 

DHCP (Dynamic Host Configuration Protocol) 
Es un protocolo que permite a dispositivos individuales en una red de direcciones IP obtener su propia información de configuración de red (dirección IP; máscara de sub-red, puerta de enlace, etc.) a partir de un servidor DHCP. Su propósito principal es hacer más fáciles de administrar las redes grandes. DHCP existe desde 1993 como protocolo estándar y se describe a detalle en el RFC 2131.

Sin la ayuda de un servidor DHCP, tendrían que configurarse de forma manual cada dirección IP de cada anfitrión que pertenezca a una Red de Área Local. Si un anfitrión se traslada hacia otra ubicación donde existe otra Red de Área Local, se tendrá que configurar otra dirección IP diferente para poder unirse a esta nueva Red de Área Local. Un servidor DHCP entonces supervisa y distribuye, las direcciones IP de una Red de Área Local asignando una dirección IP a cada anfitrión que se una a la Red de Área Local. Cuando, por mencionar un ejemplo, una computadora portátil se configura para utilizar DHCP, a ésta le será asignada una dirección IP y las variables de red, necesarios para unirse a cada Red de Área Local donde se localice.

Existen tres métodos de asignación en el protocolo DHCP: 
  • Asignación manual: La asignación utiliza una tabla con direcciones MAC (acrónimo de Media Access Control Address, que se traduce como dirección de Control de Acceso al Medio). Sólo los anfitriones con una dirección MAC definida en dicha tabla recibirá el IP asignada en la misma tabla. Ésto se hace a través de la opción hardware ethernet combinado con deny unknown-clients. 
  • Asignación automática: Una dirección de IP disponible dentro de un rango determinado se asigna permanentemente al anfitrión que la requiera. 
  • Asignación dinámica: Se determina arbitrariamente un rango de direcciones IP y cada anfitrión conectado a la red está configurada para solicitar su dirección IP al servidor cuando se inicia el dispositivo de red, utilizando un intervalo de tiempo controlable (opciones default-lease-time y max-lease-time), de modo que la asignación de direcciones IP es de manera temporal y éstas se reutilizan de forma dinámica. 
DNS (Domain Name System) 
Es una base de datos distribuida y jerárquica, que almacena la información necesaria para los nombres de dominio. Sus usos principales son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico correspondientes para cada dominio. El DNS nació de la necesidad de facilitar a los seres humanos el acceso hacia los servidores disponibles a través de Internet permitiendo hacerlo por un nombre, algo más fácil de recordar que una dirección IP.

Los Servidores DNS utilizan TCP y UDP, en el puerto 53 para responder las consultas. Casi todas las consultas consisten de una sola solicitud UDP desde un Cliente DNS, seguida por una sola respuesta UDP del servidor. Se realiza una conexión TCP cuando el tamaño de los datos de la respuesta exceden los 512 bytes, tal como ocurre con tareas como transferencia de zonas.

Componentes de DNS
DNS opera a través de tres componentes: Clientes DNS, Servidores DNS y Zonas de Autoridad.

Clientes DNS: Son programas que ejecuta un usuario y que generan peticiones de consulta para resolver nombres. Básicamente preguntan por la dirección IP que corresponde a un nombre determinado.

Servidores DNS: Son servicios que contestan las consultas realizadas por los Clientes DNS. Hay dos tipos de servidores de nombres:
  • Servidor Maestro: También denominado Primario. Obtiene los datos del dominio a partir de un archivo alojado en el mismo servidor. 
  • Servidor Esclavo: También denominado Secundario. Al iniciar obtiene los datos del dominio a través de un Servidor Maestro (o primario), realizando un proceso denominado transferencia de zona. 
Los Servidores DNS responden dos tipos de consultas: 
  • Consultas Iterativas (no recursivas): El cliente hace una consulta al Servidor DNS y éste le responde con la mejor respuesta que pueda darse basada sobre su caché o en las zonas locales. Si es imposible dar una respuesta, la consulta se reenvía hacia otro Servidor DNS repitiéndose este proceso hasta encontrar al Servidor DNS que tiene la Zona de Autoridad capaz de resolver la consulta. 
  • Consultas Recursivas: El Servidor DNS asume toda la carga de proporcionar una respuesta completa para la consulta realizada por el Cliente DNS. El Servidor DNS desarrolla entonces Consultas Iterativas separadas hacia otros Servidores DNS (en lugar de hacerlo el Cliente DNS) para obtener la respuesta solicitada. 
Zonas de Autoridad
Permiten al Servidor Maestro o Primario cargar la información de una zona. Cada Zona de Autoridad abarca al menos un dominio y, posiblemente, sus sub-dominios, si estos últimos son imposibles de delegar a otras zonas de autoridad. La información de cada Zona de Autoridad es almacenada de forma local en un archivo en el Servidor DNS. Este archivo puede incluir varios tipos de registros:
  • A (Address): Registro de dirección que resuelve un nombre de un anfitrión hacia una dirección IPv4 de 32 bits. 
  • AAAA Registro de dirección que resuelve un nombre de un anfitrión hacia una dirección IPv6 de 128 bits.
  • CNAME (Canonical Name): Registro de nombre canónico que hace que un nombre sea alias de otro. Los dominios con alias obtienen los sub-dominios y registros DNS del dominio original. 
  • MX (Mail Exchanger) Registro de servidor de correo que sirve para definir una lista de servidores de correo para un dominio, así como la prioridad entre éstos. 
  • PTR (Pointer): Registro de apuntador que resuelve direcciones IPv4 hacia los nombres anfitriones. Es decir, hace lo contrario al registro A. Se utiliza en zonas de Resolución Inversa. 
  • NS (Name Server): Registro de servidor de nombres, que sirve para definir una lista de servidores de nombres con autoridad para un dominio. 
  • SOA (Start of Authority): Registro de inicio de autoridad, encargado de especificar el Servidor DNS Maestro (o Primario) que proporcionará la información con autoridad acerca de un dominio de Internet, dirección de correo electrónico del administrador, número de serie del dominio y parámetros de tiempo para la zona. 
  • SRV (Service): Registros de servicios, encargados de especificar información acerca de servicios disponibles a través del dominio. Protocolos como SIP (Session Initiation Protocol) y XMPP (Extensible Messaging and Presence Protocol) suelen requerir registros SRV en la zona para proporcionar información a los clientes. 
  • TXT (Text): Registros de texto, encargados de permitir al administrador insertar texto arbitrariamente en un registro DNS. Este tipo de registro es muy utilizado por los servidores de listas negras DNSBL (DNS-based Blackhole List) para la filtración de Spam. Otro ejemplo de uso sería el caso de las VPN, donde suele requerirse un registro TXT, para definir una firma digital que será utilizada por los clientes. 
Las zonas que se pueden resolver son: 
  • Zonas de Reenvío. Devuelven direcciones IP para las búsquedas hechas para nombres FQDN (Fully Qualified Domain Name). En el caso de dominios públicos, la responsabilidad de que exista una Zona de Autoridad para cada Zona de Reenvío, corresponde a la autoridad misma del dominio, es decir quien esté registrado como autoridad del dominio la base de datos WHOIS donde esté registrado el dominio. Quienes adquieren dominios a través de un NIC (por ejemplo: www.nic.mx), son quienes deben hacerse cargo de las Zonas de Reenvío ya sea a través de su propio Servidor DNS o bien a través de los Servidores DNS de su ISP. Salvo que se trate de un dominio para uso en una red local, todo dominio debe ser primero tramitado con un NIC, como requisito para tener derecho legal a utilizarlo y poder propagarlo a través de Internet.
  • Zonas de Resolución Inversa. Devuelven nombres FQDN (Fully Qualified Domain Name) para las búsquedas hechas para direcciones IP. En el caso de segmentos de red públicos, la responsabilidad de que exista una Zona de Autoridad para cada Zona de Resolución Inversa, corresponde a la autoridad misma del segmento, es decir, corresponde a quien esté registrado como autoridad del bloque de direcciones IP, información que puede ser obtenida al consultar una base de datos WHOIS. Los grandes ISP y algunas empresas son quienes se hacen cargo de las Zonas de Resolución Inversa. 
Nuestro escenario
La Red               : 192.168.1.0/24

Servidor DNS Primario (Maestro):
OS       : CentOS 6.5
Hostname             : masterdns.fcld.local
IP Address           : 192.168.1.90

Servidor DNS Secundario (Esclavo):
OS       : CentOS 6.5
Hostname             : slavedns.fcld.local
IP Address           : 192.168.1.91

rainbox
OS       : Ubuntu  
Hostname             : rainbox.fcld.local
IP Address           : 192.168.1.100
CONFIGURAR DNS PRIMARIO 

Configurar la interfaz de red
[root@masterdns ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
BOOTPROTO=none 
NM_CONTROLLED=no 
ONBOOT=yes
TYPE=Ethernet 
IPADDR=192.168.1.90 
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
Reiniciar el servicio de red y asegurarnos que inicie durante el arranque junto con iptables
[root@masterdns ~]# service network restart
[root@masterdns ~]# chkconfig network on
[root@masterdns ~]# chkconfig iptables on
Instalar Bind y DHCP
[root@masterdns ~]# yum install -y dhcp bind bind-utils bind-libs bind-sdb
CONFIGURAR EL SERVICIO DHCP. El mismo debe incluir las directivas para poder actualizar las zonas del DNS de forma automática, según se vayan añadiendo clientes al dominio. Editar el fichero dhcpd.conf, quedando de la siguiente manera
root@masterdns ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#
ddns-update-style interim;
ddns-updates on;
ddns-domainname "fcld.local.";
ddns-rev-domainname "in-addr.arpa.";
ignore client-updates;
default-lease-time 900;
max-lease-time 7200;
option domain-name "fcld.local";
option domain-name-servers 192.168.1.90, 192.168.1.91;
option netbios-name-servers 192.168.1.90, 192.168.1.91;
option ntp-servers 0.pool.ntp.org;
authoritative;
include "/etc/rndc.key";
zone localdomain. {
 primary 127.0.0.1;
 key rndc-key;
}
zone 1.168.192.in.addr.arpa. {
 primary 127.0.0.1;
 key rndc-key;
}
zone fcld.local. {
 primary 127.0.0.1;
 key rndc-key;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.100 192.168.1.149;
 option broadcast-address 192.168.1.255;
 option routers 192.168.1.1;
}
CONFIGURAR EL SERVICIO NAMED. Editar el fichero named.conf, quedando de la siguiente manera
[root@masterdns ~]# nano /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
 listen-on port 53 { 127.0.0.1; 192.168.1.90; };
 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";
 allow-query { localhost; 192.168.1.0/24; }; 
 allow-update { localhost; 192.168.1.0/24; }; 
 allow-transfer { localhost; 192.168.1.91; }; 
 forwarders { 8.8.8.8; 8.8.4.4; };
 recursion yes;
 dnssec-enable yes;
 dnssec-validation yes;
 dnssec-lookaside auto;
 /* Path to ISC DLV key */
 bindkeys-file "/etc/named.iscdlv.key";

 managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
 type hint;
 file "named.ca";
};
zone "fcld.local" IN {
 type master;
 file "dynamic/fcld.local.zone";
 allow-update { localhost; 192.168.1.0/24; };
};
zone "1.168.192.in-addr.arpa" IN {
 type master;
 file "dynamic/1.168.192.in-addr.arpa.zone";
 allow-update { localhost; 192.168.1.0/24; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";
CREAR LOS ARCHIVOS DE LAS ZONAS 

Zona Forward
[root@masterdns ~]# nano /var/named/dynamic/fcld.local.zone
$TTL 86400
@   IN  SOA     masterdns.fcld.local. root.fcld.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          masterdns.fcld.local.
@       IN  NS          slavedns.fcld.local.
@       IN  A           192.168.1.90
@       IN  A           192.168.1.91
masterdns       IN  A   192.168.1.90
slavedns     IN  A   192.168.1.91
Zona Reverse
[root@masterdns ~]# vi /var/named/dynamic/1.168.192.in-addr.arpa.zone 
$TTL 86400
@   IN  SOA     masterdns.fcld.local. root.fcld.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          masterdns.fcld.local.
@       IN  NS          slavedns.fcld.local.
@       IN  PTR         fcld.local.
masterdns       IN  A   192.168.1.90
slavedns     IN  A   192.168.1.91
90     IN  PTR         masterdns.fcld.local.
91     IN  PTR         slavedns.fcld.local.
PROBAR LOS FICHEROS DE CONFIGURACION
[root@masterdns ~]# named-checkconf /etc/named.conf 
/etc/named.conf:54: open: /etc/rndc.key: file not found
[root@masterdns ~]# named-checkzone fcld.local /var/named/dynamic/fcld.local.zone 
zone fcld.local/IN: loaded serial 2011071001
OK
[root@masterdns ~]# named-checkzone fcld.local /var/named/dynamic/1.168.192.in-addr.arpa.zone 
zone fcld.local/IN: loaded serial 2011071001
OK
INICIAR LOS SERVICIOS named y dhcpd
[root@masterdns ~]# service named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]
[root@masterdns ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[root@masterdns ~]# chkconfig named on
[root@masterdns ~]# chkconfig dhcpd on
AJUSTES DE SEGURIDAD: Permisos, Iptables y Selinux

Permisos
[root@masterdns ~]# chmod 640 /var/named/dynamic/fcld.local.zone
[root@masterdns ~]# chmod 640 /var/named/dynamic/1.168.192.in-addr.arpa.zone 
[root@masterdns ~]# chown named:named /var/named/dynamic/fcld.local.zone
[root@masterdns ~]# chown named:named /var/named/dynamic/1.168.192.in-addr.arpa.zone 
[root@masterdns ~]# chown root:named /etc/rndc.key 
Iptables
[root@masterdns ~]# iptables -t filter -I INPUT 7 -s 192.168.1.0/24 -p tcp -m tcp --dport 53 -j ACCEPT 
[root@masterdns ~]# iptables -t filter -I INPUT 8 -s 192.168.1.0/24 -p udp -m udp --dport 53 -j ACCEPT 
[root@masterdns ~]# service iptables save
[root@masterdns ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]
Selinux
[root@masterdns ~]# chcon -t named_zone_t /var/named/dynamic/fcld.local.zone
[root@masterdns ~]# chcon -t named_zone_t /var/named/dynamic/1.168.192.in-addr.arpa.zone 
[root@masterdns ~]# chcon -u system_u -r object_r -t named_conf_t /etc/named.conf
[root@masterdns ~]# setsebool -P named_write_master_zones 1
EL MISMO SEVIDOR DNS NECESITA SUS DNS
[root@masterdns ~]# nano /etc/resolv.conf 
domain fcld.local
nameserver 192.168.1.90
nameserver 192.168.1.91
PROBAR EL SERVIDOR DNS
[root@masterdns ~]# dig masterdns.fcld.local

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> masterdns.fcld.local
;; global options: +cmd
;; Got answer:
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;masterdns.fcld.local.  IN A

;; ANSWER SECTION:
masterdns.fcld.local. 86400 IN A 192.168.1.90

;; AUTHORITY SECTION:
fcld.local.  86400 IN NS masterdns.fcld.local.
fcld.local.  86400 IN NS slavedns.fcld.local.

;; ADDITIONAL SECTION:
slavedns.fcld.local. 86400 IN A 192.168.1.91

;; Query time: 2 msec
;; SERVER: 192.168.1.91#53(192.168.1.91)
;; WHEN: Tue Jul  8 23:24:44 2014
;; MSG SIZE  rcvd: 107
[root@masterdns ~]# nslookup masterdns.fcld.local
Server:  127.0.0.1
Address: 127.0.0.1#53

Name: masterdns.fcld.local
Address: 192.168.1.90
CONFIGURAR EL DNS ESCLAVO O SECUNDARIO.
Es necesario tener el servicio DHCP en este también por alguna eventualidad, pero es bueno que entregue las IP en un rango diferente al primario para no tener conflictos de duplicidad en la red local.

Configurar la interfaz de red
[root@slavedns ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0 
BOOTPROTO=none 
NM_CONTROLLED=no 
ONBOOT=yes
TYPE=Ethernet 
DEFROUTE=yes 
IPADDR=192.168.1.91
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

[root@slavedns ~]# service network restart
[root@slavedns ~]# chkconfig network on
[root@slavedns ~]# chkconfig iptables on
Instalar los paquetes necesarios en lo adelante
[root@slavedns ~]# yum install -y dhcp bind bind-utils bind-libs bind-sdb
Editar el fichero named.conf
[root@slavedns ~]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
 listen-on port 53 { 127.0.0.1; 192.168.1.91; };
 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";
 allow-query     { localhost; 192.168.1.0/24; };
 recursion yes;
 dnssec-enable yes;
 dnssec-validation yes;
 dnssec-lookaside auto;
 /* Path to ISC DLV key */
 bindkeys-file "/etc/named.iscdlv.key";

 managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
 type hint;
 file "named.ca";
};

zone "fcld.local" IN {
 type slave;
 file "dynamic/fcld.local.zone";
 masters { 192.168.1.90; };
 allow-update { localhost; 192.168.1.0/24; };
};
zone "1.168.192.in-addr.arpa" IN {
 type slave;
 file "dynamic/1.168.192.in-addr.arpa.zone";
 masters { 192.168.1.90; };
 allow-update { 192.168.1.0/24; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";
CREAR LOS ARCHIVOS DE LAS ZONAS 

Zona Forward
[root@slavedns ~]# nano /var/named/dynamic/fcld.local.zone
$TTL 86400
@   IN  SOA     slavedns.fcld.local. root.fcld.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          masterdns.fcld.local.
@       IN  NS          slavedns.fcld.local.
@       IN  A           192.168.1.90
@       IN  A           192.168.1.91
masterdns       IN  A   192.168.1.90
slavedns     IN  A   192.168.1.91
Zona Reverse
[root@slavedns ~]# nano /var/named/dynamic/1.168.192.in-addr.arpa.zone 
$TTL 86400
@   IN  SOA     slavedns.fcld.local. root.fcld.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          masterdns.fcld.local.
@       IN  NS          slavedns.fcld.local.
@       IN  PTR         fcld.local.
masterdns       IN  A   192.168.1.90
slavedns     IN  A   192.168.1.91
90     IN  PTR         masterdns.fcld.local.
91     IN  PTR         slavedns.fcld.local.
PROBAR LOS FICHEROS DE CONFIGURACION
[root@slavedns ~]# named-checkconf /etc/named.conf 
[root@slavedns ~]# named-checkzone fcld.local /var/named/fcld.local.zone 
zone fcld.local/IN: loaded serial 2011071001
OK
[root@slavedns ~]# named-checkzone fcld.local /var/named/1.168.192.in-addr.arpa.zone 
zone fcld.local/IN: loaded serial 2011071001
OK
INICIAR EL SERVICIO BIND
[root@slavedns ~]# service named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]
[root@slavedns ~]# chkconfig named on
AJUSTES DE SEGURIDAD: Permisos, Iptables y Selinux

Permisos
[root@slavedns ~]# chmod 640 /var/named/dynamic/fcld.local.zone
[root@slavedns ~]# chmod 640 /var/named/dynamic/1.168.192.in-addr.arpa.zone 
[root@slavedns ~]# chown named:named /var/named/dynamic/fcld.local.zone
[root@slavedns ~]# chown named:named /var/named/dynamic/1.168.192.in-addr.arpa.zone 
[root@slavedns ~]# chown root:named /etc/rndc.key 
Iptables
[root@slavedns ~]# iptables -t filter -I INPUT 7 -s 192.168.1.0/24 -p tcp -m tcp --dport 53 -j ACCEPT 
[root@slavedns ~]# iptables -t filter -I INPUT 8 -s 192.168.1.0/24 -p udp -m udp --dport 53 -j ACCEPT 
[root@slavedns ~]# service iptables save
[root@slavedns ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]
Selinux
[root@slavedns ~]# chcon -t named_zone_t /var/named/dynamic/fcld.local.zone
[root@slavedns ~]# chcon -t named_zone_t /var/named/dynamic/1.168.192.in-addr.arpa.zone 
[root@slavedns ~]# chcon -u system_u -r object_r -t named_conf_t /etc/named.conf
[root@slavedns ~]# setsebool -P named_write_master_zones 1
EL MISMO SEVIDOR DNS NECESITA SUS DNS
[root@slavedns ~]# nano /etc/resolv.conf 
domain fcld.local
nameserver 192.168.1.91
nameserver 192.168.1.90
Verificamos que esté replicando del DNS Primario las dos zonas
[root@slavedns ~]# cat /var/named/dynamic/fcld.local.zone
$ORIGIN .
$TTL 86400 ; 1 day
fcld.local  IN SOA masterdns.fcld.local. root.fcld.local. (
    2011071011 ; serial
    3600       ; refresh (1 hour)
    1800       ; retry (30 minutes)
    604800     ; expire (1 week)
    86400      ; minimum (1 day)
    )
   NS masterdns.fcld.local.
   NS slavedns.fcld.local.
$ORIGIN fcld.local.
masterdns  A 192.168.1.90
$TTL 450 ; 7 minutes 30 seconds
rainbox   A 192.168.1.100
Antergos  A 192.168.1.101
   TXT "00ab356015937976bb3b430561702829aa"
$TTL 86400 ; 1 day
slavedns  A 192.168.1.91
[root@slavedns ~]# cat /var/named/dynamic/1.168.192.in-addr.arpa.zone
$ORIGIN .
$TTL 86400 ; 1 day
1.168.192.in-addr.arpa IN SOA masterdns.fcld.local. root.fcld.local. (
    2011071008 ; serial
    3600       ; refresh (1 hour)
    1800       ; retry (30 minutes)
    604800     ; expire (1 week)
    86400      ; minimum (1 day)
    )
   NS masterdns.fcld.local.
   NS slavedns.fcld.local.
$ORIGIN 1.168.192.in-addr.arpa.
$TTL 21600 ; 6 hours
100   PTR rainbox.fcld.local.
101   PTR Antergos.fcld.local.
$TTL 86400 ; 1 day
90   PTR masterdns.fcld.local.
91   PTR slavedns.fcld.local.
Desde el cliente hacemos consultas con el comando host
fraterneo@rainbox:~$ host masterdns
masterdns.fcld.local has address 192.168.1.90

fraterneo@rainbox:~$ host rainbox
rainbox.fcld.local has address 192.168.1.100
Finalmente tenemos un servicio de resolución de nombres de dominio DNS en nuestra red local, que se actualizará automáticamente vía DHCP en la medida en que se conectan los hosts a la red.

Más información y recursos:
https://www.isc.org/downloads/bind/
https://www.isc.org/downloads/DHCP/
Configuración de Servidores con GNU/Linux

Comandos de ayuda:
man named_selinux
man dhcpd_selinux
man dhcp-options

1 comentario: