Está en la página 1de 24

Curso de Sistema de Nombres de Dominios, DNS Ambiente GNU/Linux (20 horas)

Teora, Gua de prcticas y ejercicios

Pgina 1 de 24

ndice de contenido
Objetivos del curso..................................................................................................3 Prerequisitos...........................................................................................................3 Teora de los servidores DNS .................................................................................4 Funcionamiento y proceso de resolucin de nombres............................................7 Clientes DNS...........................................................................................................7 Tipos de servidores DNS.........................................................................................9 Tipos de consultas...................................................................................................9 Zonas de autoridad................................................................................................10 Que es BIND?......................................................................................................11 Instalacin de bind9..............................................................................................14 Archivos y directorios involucrados..................................................................15 Servidor cache...................................................................................................16 DNS maestro.........................................................................................................18 DNS esclavo..........................................................................................................21 Configuracin de un subdominio...........................................................................22 Caso prctico de configuracin de un servicio DNS.............................................23

Pgina 2 de 24

Objetivos del curso El curso tiene como objetivo brindar a los participantes las destrezas, conocimiento y la confianza para preparar un servicio de DNS en GNU/Linux en una organizacin. Instalar BIND Configurar un cliente DNS. Configurar un servidor DNS en GNU/Linux Crear archivos de zonas primarias para resolucin de nombres y resolucin reversa. Interrogar al DNS usando nslookup, dig o host. Configurar la seguridad de un DNS. Resolver problemas en DNS.

Prerequisitos Conocimiento de protocolos de redes TCP/IP y conocimientos bsicos de servidores GNU/Linux.

Pgina 3 de 24

Teora de los servidores DNS El DNS ( Domain Name System) es un sistema de nombres que permite traducir de nombre de dominio a direccin IP y vice-versa. Aunque Internet slo funciona en base a direcciones IP, el DNS permite que los humanos usemos nombres de dominio que son bastante ms simples de recordar. El sistema de nombres de dominios en Internet es un sistema distribuido, jerrquico, replicado y tolerante a fallas. Aunque parece muy difcil lograr todos esos objetivos, la solucin no es tan compleja en realidad. El punto central se basa en un rbol que define la jerarqua entre los dominios y los sub-dominios. En un nombre de dominio, la jerarqua se lee de derecha a izquierda. Por ejemplo, en lab.dominio.com, el dominio ms alto es com. Para que exista una raz del rbol, se puede ver como si existiera un punto al final del nombre: lab.dominio,com., y todos los dominios estn bajo esa raz (tambin llamada ``punto"). Un termino que veremos comnmente sera FQDN (Nombre de dominio completo cualificado, lo que se refiere a un nombre como www.misitio.com. Cada componente del dominio (y tambin la raz) tiene un servidor primario y varios servidores secundarios. Todos estos servidores tienen la misma autoridad para responder por ese dominio, pero el primario es el nico con derecho para hacer modificaciones en l. Por ello, el primario tiene la copia maestra de los archivos y los secundarios copian la informacin desde l. La raz del sistema de dominios es servida por algunos servidores ''bien conocidos o autorizados''. Todo servidor de nombres debe ser configurados con la lista de los servidores raz bien conocidos (en general lo vienen de fbrica). Estos servidores dicen cuales dominios de primer nivel existen y cuales son sus servidores de nombres. Recursivamente, los servidores de esos dominios dicen
Pgina 4 de 24

qu sub-dominios existen y cuales son sus servidores.

Existen 13 servidores raz en toda Internet distribuidos en diferentes partes de la red. Estos servidores reciben miles de consultas por segundo, y a pesar de esta carga la resolucin de nombres trabaja con bastante eficiencia.

Inicial A B C D

Nombreviejo ns.internic.net ns1.isi.edu c.psi.net terp.umd.edu

Empresa VeriSign USCISI CogentCommunications UniversityofMaryland

Lugar Dulles,Virginia,EEUU MarinaDelRey,California,EEUU distribuido(anycast) CollegePark,Maryland,EEUU

Pgina 5 de 24

E F G H I J K L M

ns.nasa.gov ns.isc.org ns.nic.ddn.mil aos.arl.army.mil nic.nordu.net

NASA ISC U.S.DoDNIC U.S.ArmyResearchLab Autonmica VeriSign RIPENCC ICANN WIDEProject

MountainView,California,EEUU distribuido(anycast) Columbus,Ohio,EEUU AberdeenProvingGround,Maryland,EEUU distribuido(anycast) distribuido(anycast) distribuido(anycast) LosAngeles,California,EEUU distribuido(anycast)

DNS permite la resolucin en ambas direcciones. La conversin hacia adelante convierte los nombres en direcciones IP, y la resolucin inversa convierte direcciones IP en nombres. Existen muy pocos dominios a alto nivel, pero en cada nivel se despliegan muchos mas. Siguiendo esta lgica, las direcciones IP deben tener tambin un dominio a alto nivel. Este dominio se llama in-addr.arpa. A diferencia del FQDN, las direcciones IP se resuelven de izquierda a derecha una vez que estn bajo el dominio in-addr.arpa. Cada octeto de una direccin IP reduce mas los posibles nombres de maquinas. Devuelven nombres FQDN (Fully Qualified Domain Name) para las bsquedas hechas para direcciones IP. Los grandes ISP, y en algunos casos algunas empresas, son quienes se hacen cargo de las Zonas de Resolucin Inversa.

Pgina 6 de 24

Veamos la siguiente imagen de ejemplo de una resolucin inversa:

Funcionamiento y proceso de resolucin de nombres. Cuando una aplicacin (cliente) necesita resolver un FQDN enva un requerimiento al servidor de nombres configurado en el sistema (normalmente, el provisto por el ISP). A partir de entonces se desencadena el proceso de resolucin del nombre: 1. El servidor de nombres inicial consulta a uno de los servidores raz (cuya direccin IP debe conocer previamente). 2. Este devuelve el nombre del servidor a quien se le ha delegado la sub-zona. 3. El servidor inicial interroga al nuevo servidor. 4. El proceso se repite nuevamente a partir del punto 2 si es que se trata de una sub-zona delegada. 5. Al obtener el nombre del servidor con autoridad sobre la zona en cuestin, el servidor inicial lo interroga.
Pgina 7 de 24

6. El servidor resuelve el nombre correspondiente, si este existe. 7. El servidor inicial informa al cliente el nombre resuelto.

Clientes DNS Los Clientes DNS son programas que se ejecutan en la computadora del usuario y que genera peticiones DNS de resolucin de nombres a un servidor DNS (Por ejemplo: Qu direccin IP corresponde a nombre.dominio?). La configuracin de equipos cliente DNS suele implicar la ejecucin de las siguientes tareas administrativas: Configurar en el PC cliente los nombres para cada PC en la red. Configurar un sufijo DNS principal para el PC. El sufijo DNS principal del equipo es el nombre del dominio el cual este es miembro. Identificar los servidores DNS para los clientes y as realizar la consulta de resolucin de nombres de forma rpida. Puede configurar los servidores DNS preferidos y alternativos. Los servidores DNS alternativos o suplentes se consultan cuando el preferido no contesta. El orden en el cual se coloquen los servidores DNS es predominante para la rapidez de las consultas. Supongamos que tenemos el siguiente orden en el archivo de configuracin: nameserver 200.44.32.12

Pgina 8 de 24

nameserver 150.187.110.2 El primero que el cliente consulta seria al servidor 200.44.32.12; si este no contesta, automticamente se realiza la consulta al siguiente que vendra siendo el servidor 150.187.110.2. Puede configurar tantos servidores DNS como prefiera.

Tipos de servidores DNS. Primarios (Autorizados): Son los que se consideran autorizados para un dominio en particular, es en el cual residen los archivos de configuracin del dominio. Cuando se produzca una actualizacin de las tablas de dominio DNS se harn en este servidor Secundarios (No autorizados completamente): Trabajan como respaldo y como distribuidores de carga de los servidores primarios, estos solo mantienen copias de la informacin ayudando a disminuir el trabajo de los servidores primarios. Cache (No autorizados): No contienen archivos de configuracin de ningn dominio. Cuando una maquina cliente realiza una peticin a un servidor cache para que resuelva un nombre, este servidor comprueba su cache local. Si no la encuentra, la buscara en un servidor primario y le preguntara, luego la respuesta del primario pasa a cache. Todos los DNS actan como cache de otros dominios sin importar si son primarios o secundarios.

Tipos de consultas. Consultas Iterativas (no recursivas): El cliente hace una consulta al Servidor

Pgina 9 de 24

DNS y este le responde con la mejor respuesta que pueda darse basada sobre su cach o en las zonas locales. Si no es posible dar una respuesta, la consulta se reenva hacia otro Servidor DNS repitindose 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 informacin de una zona. Cada Zona de Autoridad abarca al menos un dominio y posiblemente sus sub-dominios, si estos ltimos no son delegados a otras zonas de autoridad. La informacin 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:

Tipo de Registro A (Address) AAAA CNAME (Canonical Name) MX (Mail

Descripcin Registro de direccin que resuelve un nombre de un anfitrin hacia una direccin IPv4 de 32 bits. Registro de direccin que resuelve un nombre de un anfitrin hacia una direccin IPv6 de 128 bits. Registro de nombre cannico que hace que un nombre sea alias de otro. Los dominios con alias obtiene los subdominios y registros DNS del dominio original. Registro de servidor de correo que sirve para definir una

Pgina 10 de 24

Exchanger) PTR (Pointer)

lista de servidores de correo para un dominio, as como la prioridad entre stos. Registro de apuntador que resuelve direcciones IPv4 hacia el nombre anfitriones. Es decir, hace lo contrario al registro A. Se utiliza en zonas de Resolucin Inversa.

NS (Name Server) SOA (Start of Authority)

Registro de servidor de nombres que sirve para definir una lista de servidores de nombres con autoridad para un dominio. Registro de inicio de autoridad que especifica el Servidor DNS Maestro (o Primario) que proporcionar la informacin con autoridad acerca de un dominio de Internet, direccin de correo electrnico del administrador, nmero de serie del dominio y parmetros de tiempo para la zona.

SRV (Service)

Registro de servicios que especifica informacin acerca de servicios disponibles a travs del dominio. Protocolos como SIP (Session Initiation Protocol) y XMPP (Extensible Messaging and Presence Protocol) suelen requerir registros SRV en la zona para proporcionar informacin a los clientes.

TXT (Text)

Registro de texto que permite 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 filtracin de Spam. Otro ejemplo de uso son las VPN, donde suele requerirse un registro TXT para definir una llave que ser utilizada por los clientes.

Que es BIND? BIND (Berkeley Internet Name Domain, anteriormente: Berkeley Internet Name Daemon) es el servidor de DNS ms comnmente usado en Internet,
Pgina 11 de 24

especialmente en sistemas Unix, en los cuales es un standard de facto. Es patrocinado por la Internet Systems Consortium. BIND fue creado originalmente por cuatro estudiantes de grado en la University of California, Berkeley y liberado por primera vez en el 4.3BSD. Paul Vixie comenz a mantenerlo en 1988 mientras trabajaba para la DEC. Una nueva versin de BIND (BIND 9) fue escrita desde cero en parte para superar las dificultades arquitectnicas presentes anteriormente para auditar el cdigo en las primeras versiones de BIND, y tambin para incorporar DNSSEC (DNS Security Extensions). en paralelo, BIND y una 9 incluye entre otras caractersticas en cuanto a importantes: TSIG, notificacin DNS, nsupdate, IPv6, rndc flush, vistas, procesamiento arquitectura mejorada portabilidad. Es comnmente usado en sistemas Linux. BIND trabaja en la capa de aplicacin. Si el segmento a enviar es menor que 512 Bytes utiliza el protocolo UDP, de lo contrario utiliza el protocolo TCP. El nmero de puerto que utiliza el protocolo DNS para comunicarse con la capa de aplicacin es el nmero 53. Todos los mensajes generados por el protocolo DNS utilizan un nico formato de cabecera: 0123456789012345 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| Opcode |AA|TC|RD|RA| Z | RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT |
Pgina 12 de 24

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Cabecera del protocolo DNS

ID: Es un identificador de 16 bits asignado por el programa. Este identificador se copia en la respuesta correspondiente del servidor de nombres y se puede usar para diferenciar respuestas cuando concurren mltiples consultas.

QR: Flag que indica consulta(0) o respuesta(1). Op code: Campo de 4-bit que especifica el tipo de consulta: 0 consulta estndar(QUERY). 1 consulta inversa(IQUERY). 2 solicitud del estado del servidor(STATUS).

Se reservan los otros valores para su uso en el futuro. AA: Flag de respuesta autoritativa. Si est activo es una respuesta, especifica que el servidor de nombres que responde tiene autoridad para el nombre de dominio enviado en la consulta.

TC: Flag de truncado. Activo si el mensaje es ms largo de lo que permite la lnea de transmisin.

Pgina 13 de 24

RD: Flag de recursividad. Este bit se copia en la respuesta e indica al servidor de nombres una resolucin recursiva.

RA: Flag de recursividad disponible. Indica si el servidor de nombres soporta resolucin recursiva.

Z: 3 bits reservados para uso futuro. Deben ser cero. Rcode: Cdigo de respuesta de 4 bits. Los posibles valores son: 0. Ningn error. 1. Error de formato. El servidor fue incapaz de interpretar el mensaje. 2. Fallo en el servidor. El mensaje no fue procesado debido a un problema con el servidor. 3. Error en nombre. El nombre de dominio de la consulta no existe. Slo vlido si el bit AA est activo en la respuesta. 4. No implementado. El tipo solicitado de consulta no est implementado en el servidor de nombres. 5. Rechazado. El servidor rechaza responder por razones polticas. Los dems valores se reservan para su usuario en el futuro.

Qdcount: Un entero sin signo de 16 bits que especifica el nmero de entradas en la seccin "question".

Ancount: Un entero sin signo de 16 bits que especifica el nmero de RRs en la seccin "answer".

NScount. Un entero sin signo de 16 bits que especifica el nmero de RRs en la seccin "authority".

ARcount. Un entero sin signo de 16 bits que especifica el nmero de RRs en la seccin "additional records".

Pgina 14 de 24

Instalacin de bind9. La instalacin de un servidor DNS es sencilla es esta a cargo del paquete bind en su version9. Colocamos en consola: #apt-get install bind9 dnsutils Luego de desempaquetar y configurar la aplicacin, nos dirigimos al directorio para visualizar los archivos de configuracin involucrados: # cd /etc/bind # ls
db.0 db.255 db.local named.conf named.conf.options zones.rfc1918 db.127 db.empty db.root named.conf.local rndc.key

Archivos y directorios involucrados.

Directorios.

/etc/bind: Archivos de configuracin, archivos de nmeros IP y nombres de mquinas de la zona local atendida por esta mquina. /var/cache/bind: Directorio de trabajo donde bind guarda la informacin sobre nmeros IP y nombres de mquinas que va recogiendo en sus actividades de bsqueda consultando otras mquinas DNS de la red.

Archivos existentes.

db.local: Datos de resolucin directa para interfaz local "loopback".

Pgina 15 de 24

db.127: Datos de resolucin inversa para interfaz local "loopback". db.0: Inverso para zona de difusin, segn lo requerido por las normas. db.255: Inverso para zona de difusin, segn lo requerido por las normas. db.root: Informacin de servidores de nombres raz de Internet, autoridades mximas en servicio de nombres; estos servidores son la referencia esencial para iniciar la actividad del servidor DNS local en bsqueda de nombres por Internet. El DNS local puede preguntar a estos servidores las direcciones desconocidas, o a otros servidores DNS ms cercanos si se le indican. Ver documento dnsraiz. named.conf: Archivo de configuracin para el servidor DNS local. Aqu figuran todos los nombres de archivos locales consultados, direcciones de servidores DNS prximos y ajustes de operacin para el DNS. named.conf.options: Opciones genricas. named.conf.local: Especificacin particular de este servidor DNS. rndc.key: Para generar una llave y comunicarse con el servidor de nombres en comunicaciones TCP autenticadas. zones.rfc1918: Direcciones IP invalidas especificadas en el RFC1918 para disear redes privadas o intranets y recomendadas cuando se experimenta con redes. Estas son: 10. - 172.16 172.31 y 192.168 db.empty: Archivo vaco de ejemplo.

Pgina 16 de 24

Servidor cache. Por defecto al instalar bind, actuara como un servidor cache. Recordemos que la funcin de un servidor cache es consultar a otros servidores DNS y las respuestas de esas consultas realizadas por los clientes, son almacenadas en el cache del servidor local. Veremos a continuacin los pasos para configurar los clientes y el servidor para realizar las pruebas del funcionamiento del servidor DNS cache. Primero vamos a configurar los clientes. Editaremos el archivo resolv.conf de la siguiente forma:

#nano /etc/resolv.conf search pruebadns.org cantv.net nameserver (DNS LOCAL) nameserver (Direccion IP DNS1) nameserver (Direccion IP DNS2)

En el servidor editaremos el archivo named.conf.options y localizaremos la linea que tiene comentados los forwarders. Aqu asignaremos los DNS externos los cuales podrn consultar:
forwarders { 200.44.32.12; };

Nota: En este caso se coloco en forwarders la direccin IP del servidor DNS de CANTV, lgicamente esto puede variar segun su ISP. Luego de haber editado los archivos correspondientes en el cliente y en el servidor, reiniciaremos los servicios

Pgina 17 de 24

En el cliente: /etc/init.d/networking restart En el servidor: /etc/init.d/bind9 restart Para realizar las pruebas de funcionamiento utilizaremos el comando dig: # dig www.yahoo.com Buscaremos una linea casi al final de la respuesta de la consulta realizada:
;; Query time: 97 msec ;; SERVER: 190.75.126.72#53(190.75.126.72) ;; WHEN: Sat May 19 17:06:08 2007 ;; MSG SIZE rcvd: 403

Vemos que la consulta ha tardado 97 milisegundos. Ahora, si realizamos la consulta nuevamente tendremos un cambio:
;; Query time: 9 msec ;; SERVER: 190.75.126.72#53(190.75.126.72) ;; WHEN: Sat May 19 17:09:26 2007 ;; MSG SIZE rcvd: 403

La consulta ahora ha tardado tan solo 9 milisegundos. Porque? La respuesta es sencilla. Anteriormente hemos consultado www.yahoo.com, y al realizar la segunda vez esta consulta, no se realizo a DNS externos sino a nuestro servidor DNS local, el cual tenia almacenado en cache esta informacin, optimizando las consultas a nombres de maquinas externas a nuestra red local. Probar accediendo a pginas web ms de una vez. Comparar los tiempos. Nota: No olvidemos revisar constantemente los registros syslog y
Pgina 18 de 24

daemon.log en el directorio /var/log/, si queremos obtener mayor informacin de lo que ocurre en nuestro servidor.

DNS maestro. Ahora vamos a configurar un dominio simple. Para ello solo debemos crear dos archivos nuevos. Una zona directa y una zona inversa para la resolucin de nombres a IP y viceversa. Antes agregaremos informacin sobre nuestro dominio al archivo named.conf: # cd /etc/bind #ls
db.0 db.127 db.255 db.empty db.local named.conf.local zones.rfc1918 db.0.0.10 db.dominio db.root named.conf.options

named.conf rndc.key

#nano named.conf Al final del archivo agregaremos los siguiente:


#Resolucin Directa. zone "dominio.com" { type master; notify no; file "/etc/bind/db.dominio"; };

// Resolucin Inversa. zone "168.168.192.in-addr.arpa" { type master;

Pgina 19 de 24

file "/etc/bind/db.168.168.192"; };

Ahora debemos crear los archivos para la resolucin directa e inversa, para ello utilizaremos el archivo db.empty: # cd /etc/bind # cat db.empty > db.dominio En el cual agregaremos los siguientes parmetros:
$TTL @ 86400 IN SOA 1 604800 86400 2419200 86400 ) ; @ IN debian web www dns mail gw IN IN IN IN IN A A TXT A IN MX IN A A NS 10 server.dominio.com. mail.dominio.com 192.168.168.112 ;Cliente 192.168.168.34 ;Servidor web CNAME web 192.168.168.2 192.168.168.1 Enrutador red local ;Servidor DNS 192.168.168.44 ;Servidor Correo dominio.com. root.dominio.com. ( ; Serial ; Refresco ; Reintento ; Expira ; Negative Cache TTL

Para el archivo de resolucin inversa utilizaremos de nuevo el archivo


Pgina 20 de 24

db.empty: # cd /etc/bind # cat db.empty > db.168.168.192 En el cual agregaremos los siguientes parmetros:
$TTL @ 86400 IN SOA 1 604800 86400 2419200 86400 ) ; @ 112 2 34 44 IN IN NS IN PTR IN IN server.dominio.com. PTR PTR PTR debian.dominio.com. www.dominio.com. mail.dominio.com localhost. root.localhost. ( ; Serial ; Refresco ; Reintento ; Expira ; Negative Cache TTL

dns.dominio.com.

Para realizar las pruebas de funcionamiento, chequearemos los registros: # named # tail -f /var/log/syslog Tambin podemos probar haciendo ping a las maquinas pero utilizando nombres, lo cual nos mostrara la ip de la maquina: $ping maquina1

Pgina 21 de 24

Adems las herramientas dig y host: #dig -x (ip-del-servidor) #host (nombre-maquina)

DNS esclavo. Ya con las configuraciones correctas en nuestras zonas, en el servidor primario, necesitamos al menos un servidor esclavo en la red local. Se debera agregar en el servidor esclavo lo siguiente: En el archivo named.conf
zone dominio.com { type slave; file /etc/bind/db.dominio; masters { 192.168.168.2; }; };

(del Servidor esclavo)

En el archivo db.dominio
$TTL @ 86400 IN SOA 1 604800 86400 2419200 86400 )

(del servidor esclavo)

ns.dominio.com. root.dominio.com. ( ; Serial ; Refresh ; Retry ; Expire ; Negative Cache TTL

Pgina 22 de 24

Configuracin de un subdominio. Supongamos queremos agregar un subdominio y queremos que la resolucin la realice un determinado servidor En el archivo named.conf
zone redes.dominio.com { type slave; file /etc/bind/db.redes; masters { 192.168.168.56; }; };

En el archivo db.dominio
$TTL @ 86400 IN SOA 1 604800 86400 2419200 86400 ) ns.dominio.com. root.dominio.com. ( ; Serial ; Refresh ; Retry ; Expire ; Negative Cache TTL

Caso prctico de configuracin de un servicio DNS. Para desarrollar en el curso: Ejecutar todo los pasos para configurar y verificar, con las herramientas de bsqueda y consulta, el servicio de DNS en un ambiente como se describe a continuacin: Ntese que para configurar, iniciar y verificar este servicio de DNS no se pueden utilizar valores hipotticos.

Pgina 23 de 24

Servidor: valiente01 dominio: telecomvcg.net Servidor de nombre principal (SOA) FQDN: Correo administrador: Servidor de correo (MX), con registro A, nunca CNAME: ISP: Cantv.net Servidor DNS 1: 200.44.32.12 Servidor DNS 2: 200.11.248.12 Red privada: 192.168.1.0/24

Pgina 24 de 24