Manual DNS Y
DHCP Linux Introducción
Este manual le muestra como configurar un sistema de Nombres de Dominio (DNS) y DHCP usando
BIND y DHCP3 Server- ISC-DHCP-Server. Cuando termine este manual, debería saber instalar,
configurar, mantener y resolver las incidencias de cualquier dominio que registre. Se empezara con
una introducción a DNS y DHCP.
By: John Michel Rivera De León.
Email: [email protected]
No vale más el que sabe
mucho, sino el que hace
mucho con lo poco que sabe.
By: John Michel Rivera De León.
1
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Descripció n:
El presente documento
es un manual para
comprender y crear
nuestro propio servidor
DNS y DHCP en Linux.
Dentro de este
documento se muestra
en la última sección un
ejemplo de
implementación en la
distribución Debían 6
Squeeze (pág. 11).
Se recomienda leer
todo el documento para
comprender que se está
haciendo, en caso de
conocer lo necesario
puede saltarse hasta la
última sección para ver
el ejemplo
implementado.
(pág. 11).
BIND9 (DNS) Características de DNS
DNS es la B.D más grande del mundo. DNS asocia la
dirección IP con el nombre de los servidores conectados a
internet, que abarcan desde pequeños sitios web, hasta
granjas de servidores como Google.
DNS separa los dominios en categorías. La colección de
categorías reside en lo que se llama el directorio de raíz.
Esta colección está dividida en dominios de alto nivel o TLD.
DNS busca los nombres según el sufijo .edu, .org, .com, etc.
Los dominios de cada TLD apuntan a la dirección que puede
usar para comunicarse con el servidor.
El DNS que originalmente se definió en el RFC 882 en 1983 y
luego se revisó como RFC 1034 y 1035 introdujo varias ideas
para gestionar el mapeo de los nombres comunes de
internet a direcciones IP’s. El sistema distribuye los datos y
los nombres de equipos de manera jerárquica en un espacio
de nombres de dominio.
Los Programas llamados servidores de nombres de parte de
los programas clientes. Los esquemas de nombres
jerárquicos como DNS evitan la duplicidad de los datos.
Cada dominio es único y puede tener tantos servidores
como quiera para su dominio, simplemente debe añadir un
prefijo a los equipos del dominio.
By: John Michel Rivera De León.
Email: [email protected]
2
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
BIND
BIND es un estándar en todas las versiones de Unix y Linux. Bind viene con tres
componentes. El primero es el servicio o demonio que ejecuta el servidor DNS.
Este componente se llama named.
El segundo elemento de BIND es la librería resolutoria. Este componente es el que
los navegadores Web, el software de correo y otras aplicaciones consultan cuando
intentan encontrar un servidor por su nombre DNS. El código del resolutor lanza
consultas sobre los servidores DNS para intentar traducir nombres en direcciones
IP.
Este elemento de BIND usa su propio directorio llamado resolv.conf que está
presente en cada ordenador. Es deber del administrador configurar resolv.conf.
Aquí un ejemplo:
Search midominio.net
Nameserver 70.253.158.42
Como observa, el archivo de configuración del resolutor BIND es sencillo, la
primera línea busca un servidor en el dominio local. La otra línea indica la
dirección de otros servidores de nombres que el administrador conoce, si una
consulta falla, se consulta al siguiente servidor.
Servidores DNS primarios y secundarios
Se recomienda disponer de al menos dos servidores DNS cuando registre su
dominio. Si quiere, puede hacer un duplicado exacto de la información que se
utiliza para el primer servidor DNS y colocarlo en el lugar del segundo servidor.
Es más útil considerar a un servidor como el primario y otro como secundario.
BIND permite al servidor secundario que se comunique con el primero y
automáticamente replique el directorio, lo que en la práctica se llama zona de
transferencia.
El servidor primario no transfiere la nueva configuración a los servidores
secundarios inmediatamente. En lugar de esto, cada servidor secundario sondea
al servidor primario a intervalos regulares de tiempo para detectar los cambios
que se han producidos. Un servidor secundario sabe que debe sondear al
primario, ya que se etiqueta con el término Slave en el archivo named.conf como
se muestra aquí:
By: John Michel Rivera De León.
3
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Zone” midominio.net” {
Type Slave;
file “sec.midominio.net”;
masters {70.253.158.42;};
};
Aun que un servidor secundario no puede actuar como mascara indefinidamente.
De manera eventual su información podría caducar, por lo que sería preferible
dejar de responder a las peticiones. Estas zonas se definen en diversos archivos,
no en el archivo named.conf. El archivo named.con apunta a la localización de su
archivo de zona.
Archivos de Configuración
Cuando instala Bind en Linux, se generan los archivos de configuración.
Named.conf
Cuando named recibe una petición, consultaba su propio directorio, el archivo de
configuración named.conf. Esto hace apuntar a named al archivo de zona para el
dominio solicitado. Este archivo esta normalmente instalado en su servidor Linux
por defecto. Dependiendo de la distribución, puede residir en distintos directorios
ie; /etc/bind/named.conf.
Un ejemplo sencillo es el siguiente:
Options{
Pid-file “/var/run/bind/run/named.pid”;
Directory “/etc/bind”;
Zone “.”{
Type hint;
File “db.root”;
};
Zone “0.0.127.in-addr.arpa”{
Type master;
By: John Michel Rivera De León.
Email: [email protected]
4
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
File “db.local”;
};
Zone “158.253.70.in-addr.arpa”{
Type master;
File “pri.158.253.70.in-addr.arpa”;
};
Zone “midominio.net”{
Type master;
File “pri.midominio.net”;
};
}
El archivo de ejemplo named.conf hace referencia a los otros cuatro archivos de
configuración. La tercera línea tiene el directorio /etc/bind.
La sentencia de opciones contiene dos líneas. La primera muestra la localización
de named.pid que solamente contiene el ID del proceso del demonio named que
se está ejecutando. Es muy útil cuando se requiere reiniciar o parar named.
La segunda linea de la sentencia de opciones define el directorio que contiene los
archivos relacionados con su ejecución.
Las sentencias de zona identifican la localización de varios archivos que contienen
la información de configuración. En resumen, named.conf necesita apunta a los
archivos de sentencias de zona:
Archivo Hints(para la zona “.”): Este archivo contiene los nombres y las
direcciones de los servidores raíz de internet, named debe conocer las
direcciones de estos servidores para poder empezar a consultar cuando
ninguno de los componentes del dominio solicitado este almacenado en la
cache.
Archivo local host (para la zona “0.0.127.in-addr.arpa”): El archivo
representa su propio sistema (dirección IP 127.0.0.1). La ventaja de estos
archivos de zona local es la de reducir el tráfico y permitir al software
By: John Michel Rivera De León.
5
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
funcionar de la misma forma, independientemente de que esté
accediendo a un equipo local o a uno remoto.
Archivo de zona inversa (para la zona “158.253.70.in-addr.arpa”): El
archivo convierte las direcciones IP en nombres. Puede reconocer un
archivo de zona inversa porque tiene una extensión in-addr-arpa y usa
registros PTR.
Archivo de zona primario (para la zona “midominio.net”): Este archivo,
algunas veces llamado base de datos de dominios, define la mayor parte
de la información necesario para resolver las consultas sobre el dominio
que administra. El archivo de zona primario asocia nombres a direcciones
IP y ofrece información sobre los servicios que los equipos ofrecen en
internet.
El archivo de configuración por defecto contiene las dos primerias sentencias de
zona. Se deben de añadir entradas para los archivos de zona inversa y zona
primaria. Los archivos de zona usan varios tipos de registros, entre los que se
incluyen:
SOA: Comienzo de autoridad.
NS: Servidor de nombres
MX: Pasarela de correo, que identifica un servidor de correo en el dominio.
A: Asocia un nombre de equipo a una dirección.
CNAME: Nombre canónico, que define un alias para un equipo en un
registro A.
PTR: Puntero, que asocia direcciones con nombres.
El archivo de zona primaria
Los elementos que contiene este archivo están especificados en el RFC 1035. Si
está usando el conjunto de archivos que la instalación ofrece, debería de asignarle
un nombre a su archivo de zona primaria añadiendo un prefijo a su dominio. Las
primeras líneas de este archivo ofrecen la información necesaria para
sincronizarlo con el servidor secundario:
@ IN SOA server1.midominio.net. root.localhost. {
20120124; serial
28800; refresh
7200; retry
By: John Michel Rivera De León.
Email: [email protected]
6
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
604800; expiración
86400); mínimo TTL
;
Eso es un registro SOA. SOA es el comienzo de autoridad, que lo distingue como
información para servidores autoritativos en contraposición con los servidores de
solo cache.
En la primer línea donde se comienza por el símbolo @. De izquierda a derecha los
campos son:
Name: El nombre raíz de la zona. El símbolo @ es la referencia abreviada a
la zona actual del archivo /etc/named.conf.
Class: La clase DNS. Existe un número de clases, pero la gran mayoría de
los sitios usan la clase IN (internet). Las otras clases están para protocolos y
funciones que no son de internet.
Type: El tipo del registro de recurso DNS. En este caso, es un registro de
recurso SOA.
Nameserver: El nombre completo del servidor de nombres primario. El
nombre debe terminar con un punto que denote la raíz de la jerarquía DNS
para poder indicar que la ruta es un nombre de dominio completo.
Dirección de Email: La dirección de correo electrónico de la persona que es
responsable del dominio.
Las siguientes líneas de los registros SOA contienen características para los
servidores esclavos:
Serial: El número de serie para la configuración actual. Usted incrementa
este número cada vez que hace un cambio en la configuración, por lo que
los servidores esclavos saben cuándo ha actualizado la información. Este
número está en formato de año-mes-día.
Refresh: El intervalo en el que un servidor DNS esclavo debería sondear al
maestro para determinar si es necesario una transferencia de zona. En el
ejemplo anterior el número 28800 es equivalente a 8hrs.
Retry: Frecuencia con la que intenta conectarse al maestro si una conexión
fallara.
Expiry: Cantidad de tiempo que un esclavo debería intentar conectar con el
maestro antes de que los datos que contiene caduquen.
By: John Michel Rivera De León.
7
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Mínimum-TTL: Tiempo de vida por defecto para este dominio en segundos.
86400 es un día, el registro de consultas a cache durara un día.
El registro SOA va seguido de una lista de nombres de equipos de varios tipos:
NS server1.midominio.net.;
NS server2.midominio.net.;
Estos registros NS especifican los servidores de nombres del dominio. Lo siguiente
es un registro MX que identifica el servidor de correo del dominio:
MX 10 server1.midominio.net.
El registro MX de nuestro archivo de zona primario va seguido por varios registros
A:
Midominio.net. A 70.253.258.42
www A 70.253.258.42
server1 A 70.253.158.42
Un registro A asocio un nombre a una dirección IP.
Registros A
Los registros NS y MX usan nombres de equipo como midominio.net,
server1.midominio.net, pero el archivo de zona primaria también debe especificar
la dirección IP con la que se deben asociar estos nombres. Los registros A
7ºrealizan esta asociación. En un navegador está acostumbrado a introducir
www.midominio.net, por lo tanto se crea el registro:
www A 70.253.258.42
Las www no van seguidas de un punto, por lo que BIND añade el origen de la
zona.
Registros CNAME
CNAME es la abreviación de nombre canónico, es un alias para un registro A, i.e;
ftp CNAME www
Esto quiere decir que ftp.midominio.net es un nombre alternativo para
www.midominio.net.
By: John Michel Rivera De León.
Email: [email protected]
8
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Archivo completo
El archivo de zona pri.midominio.net quedaría de la siguiente forma:
@ IN SOA server1.midominio.net. root.localhost. {
20120124 ;serial
28800; refresh
7200; retry
604800; expiración
86400); mínimo TTL
;
NS server1.midominio.net.;
NS server2.midominio.net.;
;
MX 10 server1.midominio.net.
;
Midominio.net A 70.253.158.42
www A 70.253.158.42
server1 A 70.253.158.42
server2 A 70.253.158.42
ftp CNAME www
Archivo de zona inversa
Con el archivo de zona primaria completo, los programas pueden buscar el
dominio midominio.net y todos los subdominios DNS. Pero aún se necesita un
archivo de zona inversa. El archivo de zona inversa debería parecerse a lo
siguiente:
@ IN SOA server1.midominio.net. root.localhost. {
20120124 ;serial
28800; refresh
7200; retry
By: John Michel Rivera De León.
9
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
604800; expiración
86400); mínimo TTL
;
NS server1.midominio.net.;
NS server2.midominio.net.;
Búsquedas de prueba
Para probar BIND podemos parar y arrancar names así:
/etc/init.d/bind9 stop
/etc/init.d/bind start
Ahora podemos probar nuestra configuración haciendo una búsqueda con
La herramienta de línea de comandos dig.Primero, buscaremos la dirección IP
midominio.net:
Dig midominio.net
Si resulta correcto, esta búsqueda retorna automáticamente la dirección IP
70.253.158.42.
Para hace una búsqueda inversa se hace:
Dig –x 70.253.158.42
DHCP
Los servicios de Dymanic Host Configuration Protocol DHCP pueden ayudar a
solucionar problemas asociados con entornos de área local, tales como problemas
de asignación de direcciones IP.
El servidor DHCP asegura que todas las direcciones IP son únicas. Los
administradores pueden escribir archivos de configuración y dejar el resto del
trabajo al servidor DHCP.
Configurando DHCP
Para utilizar DHCP se instala el servidor DHCP. Con la instrucción apt-.get install
dhcp3-server. Una vez que se instala, únicamente se debe modificar el archivo
/etc/dhcp/dhcpd.conf. Debería parecerse al siguiente ejemplo:
By: John Michel Rivera De León.
Email: [email protected]
10
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Ddns-update-style interim;
Ignore client-updates;
Subnet 192.168.1.0 netmask 255.255.255.0 {
Option routers 192.168.1.1;
Option subnet-mask 255.255.255.0;
Option domain-name-servers 192.168.1.1;
Default-lease-time 21600;
Max-lease-time 43200;
Host ns{
Next-server server1.midominio.net;
Hardware Ethernet 00:7E:24:22:11:C7;
Fixed-address 70.253.158.42;
}
}
Aquí se definen las direcciones de los routers y en este caso la dirección MAC de la
interfaz del servidor DNS.
Para iniciar el servicio DHCP se utiliza el comando /etc/init.d/isc-dhcp-server start.
By: John Michel Rivera De León.
11
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
IMPLEMENTACIÓN DE DNS Y DHCP EN DEBIAN 6 (EJEMPLO)
Este ejemplo está desarrollado en la distribución Debian 6 Squeeze. Se da por entendido que
ha leído y comprende las nociones básicas tanto de DNS y DHCP mencionadas anteriormente.
Los directorios varian dependiendo de la distribucion donde se desarrolle. Por ejemplo en
debían 5 los directorios de DHCP son /etc/dhcp3, mientras que en debían 6 es simplemente
/etc/dhcp.
Lo primero que se debe realizar es descargar el paquete BIND9 para configurar el servidor
DNS. Esto puede realizarse con la instrucción vía consola: apt-get install bind9.
Una vez que se tiene instalado el servidor tratara de iniciarse en automático, esto provocara
un error puesto que no está configurado, no debe preocuparse.
Antes que nada configuramos la IP statica de nuestro servidor, esto es modificando nuestro
archivo de interfaces con la instrucción nano /etc/network/interfaces
Definimos la dirección IP de nuestra máquina que usaremos como servidor DNS así como la
máscara, servidor DNS y la dirección de broadcast. Esta dirección IP la utilizaremos en los
archivos de BIND para configurar el servidor DNS.
Una vez configurada nuestra ip estatica cargamos la nueva configuración para nuestra interfaz
con la instrucción /etc/init.d/networking restart
By: John Michel Rivera De León.
Email: [email protected]
12
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Ahora debemos ubicarnos en la carpeta /etc/bind, suponiendo que se encuentra en debían 6.
Primero modificamos el archivo llamado named.conf, esto con la instrucción nano
named.conf
Dentro de este archivo se definen los archivos fuentes a cargar y que se crearan más adelante.
Así mismo se incluye la llave ubicada en el mismo directorio. Una vez realizado este pasó, se
procede a modificar el archivo named.conf.options nuevamente con la instrucción nano
named.conf.options, debería parecerse a lo siguiente:
By: John Michel Rivera De León.
13
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Ahora modificamos el archivo principal con la instrucción nano named.conf.local:
Dentro de este archivo se definen las zonas y el archivo de base de datos que contienen sus
instrucciones. De igual forma se especifica el tipo pudiendo ser maestro o esclavo.
Ahora creamos los archivos de base de datos que definimos en named.conf.local, que son
“db.thegangasso” y “db.192.77.0” tanto para la zona principal así como la inversa.
Primero creamos db.thegangasso con la instrucción nano db.thegangasso. Puede llamarse de
cualquier otra forma de acuerdo al dominio que elijan.
By: John Michel Rivera De León.
Email: [email protected]
14
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Si leyó las secciones anteriores comprenderá el contenido de este archivo, si no, recomiendo
que lo lea para saber qué es lo que hace. De igual manera creamos db.192.77.0.
Una vez que ya configuramos BIND y creamos sus archivos que sirven como bases de datos,
modificamos finalmente el archivo resolv con la instrucción nano /etc/resolv.conf
By: John Michel Rivera De León.
15
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
En el configuramos el dominio y el nombre del servidor. Una vez finalizados estos paso
iniciamos BIND con la instrucción /etc/init.d/bind9 start
Si todo fue configurado correctamente debería iniciar sin problemas, de lo contrario se
necesita ver el archivo syslog para ver el error, este se encuentra en /etc/var/log/syslog
Al final del archivo syslog se encontrara de manera detallada cual fue el error. Por lo general
esto se debe a falta de puntos o comas.
Para probar si funciona nuestro servidor DNS utilizamos la herramienta dig, en consola
utilizamos el comando dig thegangasso.com . En caso suyo el dominio que especificaron
Por ultimo probamos la zona inversa con dig –x 192.77.0.1
By: John Michel Rivera De León.
Email: [email protected]
16
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
De igual forma probamos nuestro dominio haciendo ping al nombre de dominio:
Por ultimo probamos con nslookup:
By: John Michel Rivera De León.
17
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Con esto comprobamos que nuestro servidor DNS funciona correctamente.
DHCP DHCP3-SERVER ISC-DHCP
Primero instalamos los paquetes dhcp3server y isc-dhcp-server con nuestra consola via apt.
Introducimos en consola apt-get install dhcp3-server y lo mismo hacemos para apt-get
install isc-dhcp-server.
Esto es bastante corto ya que únicamente debemos configurar dos archivos, el primero es
para definir la interfaz donde se escucharan las peticiones, en este archivo se define la
interfaz de la NIC a utilizar. Introducimos en consola el comando nano /etc/default/isc-dhcp-
server , definimos entre las comillas la interfaz.
Una vez completado esto, pasamos a modificar el archivo principal encargado de asignar las
direcciones dentro del rango especificado. Este archivo es dhcpd.conf y está ubicado en
By: John Michel Rivera De León.
Email: [email protected]
18
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
/etc/dhcp/. Con la consola modificamos el archivo con el comando nano
/etc/dhcp/dhcpd.conf Debería parecerse a lo siguiente:
Una vez configurado correctamente iniciamos el servicio con la instrucción /etc/init.d/isc-
dhcp-server start
Para probar el servidor DHCP debemos conectar un switch o hub a nuestra NIC de nuestra
máquina y conectar otra máquina al hub o switch. Si todo sale bien debe asignarle una ip
dentro del rango que establecimos en el archivo dhcpd.conf
IMPORTANTE: Si va a probar el servidor DHCP de maquina a máquina es importante utilizar un
cable trenzado de maquina a máquina o de lo contrario no funcionara. Puede buscar en
internet la configuración para hacer su cable par trenzado de máquina a máquina usted
mismo.
By: John Michel Rivera De León.
19
Emai
l: li
on
hea
rt81
5@
ho
tmai
l.co
m
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
Si configuro todo correctamente puede montar un servidor apache tomcat en su servidor DNS
y podrá acceder por otros equipos que tengan una ip dentro del rango de su servidor DHCP a
las páginas de tomcat sin tener que recordar la ip de la máquina, sino simplemente
introduciendo el dominio y la pagina como se muestra a continuación;
Con esto se da por terminado este manual básico para configurar un servidor DNS y DHCP en
Linux.
Referencias:
By: John Michel Rivera De León.
Email: [email protected]
20
Emai
l: li
on
hea
rt8
15
@h
otm
ail.c
om
Man
ual
DN
S Y
DH
CP
Lin
ux
1. RFC-1034
2. RFC-1035
Top Related