Configuracion DNS Ubuntu

30
José María Jiménez López Módulo profesional “Servicios en Red” I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - Andalucía Curso 2011-2012 Servidor DNS en Ubuntu 11.04 1) INSTALACIÓN En modo root (en Aplicaciones-Accesorios->Terminal se pone sudo su y luego la contraseña) apt-get install bind9 bind9-doc dnsutils Ya se puede poner la ip local del ordenador como servidor DNS. Se puede hacer desde “Conexiones de red” Importante: en Ubuntu no hace falta reiniciar el equipo para cambiar la configuración de la tarjeta de red. Basta con dar con el botón derecho en Página 1 de 30

Transcript of Configuracion DNS Ubuntu

Page 1: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Servidor DNS en Ubuntu 11.04

1) INSTALACIÓN

En modo root (en Aplicaciones-Accesorios->Terminal se pone sudo su y luego la contraseña)

apt-get install bind9 bind9-doc dnsutils

Ya se puede poner la ip local del ordenador como servidor DNS. Se puede hacer desde “Conexiones de red”

Importante: en Ubuntu no hace falta reiniciar el equipo para cambiar la configuración de la tarjeta de red. Basta con dar con el botón derecho en

Página 1 de 30

Page 2: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

para desactivar la tarjeta de red, y luego hacerlo de nuevo para activarla y que lea la nueva configuración.

También puede hacerse este paso 1) usando el programa terminal, y como root, escribir:

gedit /etc/resolv.conf

poniendo dentro:nameserver 127.0.0.1nameserver 80.58.0.33nameserver 8.8.8.8

Observa que si el servidor DNS que hemos instalado no está funcionando, seguiremos teniendo Internet al haber indicado otros servidores DNS (los de nuestro proveedor de Internet).

IMPORTANTE: - Se podría haber puesto

o, lo que es lo mismo, en el archivo /etc/resolv.conf

nameserver 127.0.0.1

¿En qué se diferencia de lo que pusimos antes? Que como no esté funcionando el servidor DNS local que hemos instalado, no estará disponible Internet.

Página 2 de 30

Page 3: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

2) SERVIDOR DNS CONFIGURADO COMO CACHÉ

Todo lo que hay que hacer es, tras instalar el servidor, editar el archivo /etc/bind/named.conf.optionsy escribir:

forwarders { 80.58.0.33; 8.8.8.8;};

(Luego se guarda y se reinicia el servidor DNS para que lea su nueva configuración)

Estas IP son las de nuestro proveedor de Internet. Cuando se haga una consulta al servidor DNS que hemos instalado, la mirará en su base de datos; si está, la devuelve como resultado, y si no, la pide al primero de los DNS que se ha puesto en la sección forwarders (si no responde se acudirá al segundo escrito), que darán el resultado y el servidor DNS local lo guardará en su memoria caché para tenerla disponible cuando alguien pida de nuevo esa IP.

Para iniciar el servidor DNS hay que escribir:

/etc/init.d/bind9 start (arranca el servidor)

Otros comandos útiles son:

/etc/init.d/bind9 stop (para el servidor)

/etc/init.d/bind9 restart (para y luego arranca el servidor)

/etc/init.d/bind9 status (informa de si el servidor se está ejecutando o no)

Existe un comando en Ubuntu, llamado rndc (name server control utility), que permite configurar el demonio named de Bind (este comando forma parte del paquete servidor DNS Bind). Ejemplos del comando rndc:

rndc status dice si el servidor DNS está funcionando o no

rndc -cache dumpdb guarda la caché en /var/cache/bind/named_dump.db

rndc flush borra la caché del servidor DNS

rndc muestra sus opciones

Página 3 de 30

Page 4: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Para probar el funcionamiento de nuestro servidor DNS configurado como caché se usan comandos CLIENTE de servidores DNS, como:

dig

ping

host

2.A) Comando cliente DNS dig

EJEMPLO 1 : dig dominio devuelve la IP de dicho dominio (búsqueda directa)

Página 4 de 30

Page 5: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Observa el tiempo de la consulta (Query time): 155 milisegundos.

Como esta dirección www.google.es no la tenía en su caché, ha tardado ese tiempo en solicitarla al servidor DNS de nuestro proveedor de Internet (la que tenía en forwarders) y ya la tiene en su memoria caché. Si hacemos otra vez el mismo comando de antes, observa el resultado:

Solamente ha tardado... 1 milisegundo, ya que lo tenía almacenado en su memoria caché.

EJEMPLO 2 : dig -x hace una búsqueda inversa (dada una dirección IP, devuelve su dominio)

Página 5 de 30

Page 6: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Si lo hacemos otra vez, se comprueba que tardará menos pues tiene esa información en su caché:

Página 6 de 30

Page 7: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

EJEMPLO 3: dig dominio +norecurse hace una búsqueda por el método iterativo, no recursivo que es el método en que trabaja por defecto.

EJEMPLO 4: si se pone dig @servidor y luego el resto del comando, se hará la consulta al SERVIDOR DNS que se haya puesto en @servidor. Hasta ahora, todos los ejemplos que hemos puesto es como si hubiésemos escrito dig @127.0.0.1 , esto es, el servidor de nombres DNS que tenemos instalado en nuestra máquina, que es el que está puesto en primer lugar en las propiedades TCP/IP de nuestra tarjeta de red -ver paso 1) más arriba en este documento-

A continuación se pone un ejemplo pidiendo información a uno de los servidores DNS raíz (uno de los 13 principales), no a nuestro servidor DNS local:

Página 7 de 30

Page 8: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

EJEMPLO 5: dig mostrando los servidores de nombres del dominio que se ponga en el comando, con su parámetro +trace

Página 8 de 30

Page 9: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

EJEMPLO 6:Diferencia entre el modo recursivo y el modo iterativo de consulta a un servidor DNS

Para comprender esta diferencia del modo de búsqueda, usaremos este caso de estudio: se trata de averiguar la ip de la dirección www.developpez.com

- Con el modo recursivo, la respuesta es inmediata, al encargarse cada servidor DNS consultado de pedir información a otro servidor DNS, en cadena, hasta hallar la solución

– Con el modo iterativo, el servidor DNS consultado dará la información que conozca: o bien señala la dirección de otro servidor DNS a consultar, o bien da el resultado correcto. Se irá recorriendo, en cada consulta individual que haga el cliente DNS, el árbol de directorios hasta llegar al servidor DNS que aporte la solución final:

Página 9 de 30

Page 10: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Página 10 de 30

Page 11: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

El servidor local nos dá los servidores 13 DNS raíz que nos pueden ayudar. Hacemos una consulta iterativa a uno de ellos:

Página 11 de 30

Page 12: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Ahora consultamos a un servidor DNS que tiene autoridad sobre los dominios .com

Este servidor nos informa de los servidores DNS que controlan el dominio developpez.comEs turno de preguntar a uno de ellos, de manera iterativa:

Página 12 de 30

Page 13: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Ya se tiene la solución. Observa que www.developpez.com es un alias (CNAME) de developpez.com

En resumen, para obtener la IP de www.developpez.com consultando de manera iterativa a servidores DNS, se han necesitado 4 consultas:La primera, para averiguar los servidores DNS raíz.La segunda, para averiguar los servidores DNS que controlan los dominios.comLa tercera, para averiguar los servidores DNS que controlan el dominio developpez.comLa cuarta y última, para averiguar la IP de www.developpez.com

Página 13 de 30

Page 14: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

ÚLTIMOS EJEMPLOS:

a) dig . ns obtiene la lista de los servidores raíz

b) dig dominio ns obtendrá la lista de servidores DNS del dominio especificado.

Si ponemos dig isidroarcenegui.com ns saldrá

Página 14 de 30

Page 15: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

--->Dirección web interesante: en http://us.mirror.menandmice.com/knowledgehub/tools/dig

se puede hacer dig de forma online, a través de esa página web:

Por último, un documento muy interesante en castellano de cómo usar dig está en:

http://www.ignside.net/man/redes/dig.php

Página 15 de 30

Page 16: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

2.B) Comando cliente DNS ping

2.C) Comando cliente DNS host

Más adelante hablaremos de este comando host otra vez.

Página 16 de 30

Page 17: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

3) SERVIDOR DNS PRIMARIO EN UBUNTU

MUY IMPORTANTE: EL COMANDO cat /var/log/syslog PERMITIRÁ CORREGIR FALLOS DE FUNCIONAMIENTO DEL SERVIDOR. ÚSALO EN CASO DE QUE EL SERVIDOR DNS NO ACTÚE COMO DEBERÍA

– Como ejemplo de estudio se va a trabajar con un dominio ficticio, isidroarcenegui.es– Si en las propiedades TCP/IP de la tarjeta de red de los ordenadores clientes DNS se pone en

“Dominios de búsqueda”

Cuando se haya configurado el servidor DNS para que controle el dominio isidroarcenegui.es, los clientes podrán usar el comando host de 2 formas:

host pc-01.isidroarcenegui.es o bien host pc-01

ya que se buscará en primer lugar en ese dominio puesto en “Dominios de búsqueda”

– para configurar la zona del servidor DNS primario hacen falta los archivos:

a) /etc/bind/named.conf

Página 17 de 30

Page 18: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

b) /etc/bind/named.conf.local

En este archivo se definen las 2 zonas, una para búsqueda directa (dado un nombre de dominio, obtener su IP) y otra de búsqueda inversa (dada una IP, obtener su nombre de dominio)

c) archivo de búsqueda directa, /etc/bind/db.isidroarcenegui.es

Página 18 de 30

Page 19: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

d) archivo /etc/bind/db.192, para la zona de búsqueda inversa:

Una vez situados estos archivos en sus carpetas correspondientes, ya se puede reiniciar el servidor DNS y luego hacer consultas a este dominio ficticio desde programas clientes, como:

Ejemplo 1:

Ejemplo 2:Observa que se puede hacer host pc-profe3, en vez de host pc-profe3.isidroarcenegui.es, al configurar el

Página 19 de 30

Page 20: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

dominio de búsqueda en las conexiones de red (ver arriba en este documento)

Ejemplo 3:

Página 20 de 30

Page 21: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

4) COMANDOS ADICIONALES USADOS DESDE EL TERMINAL

- Chequeo sintáctico de la zona directa y de la zona inversa:

5) SERVIDOR DNS SECUNDARIO EN UBUNTU

Una vez que se ha configurado un servidor de nombres DNS primario, para mantener que el dominio esté disponible siempre aunque caiga ese servidor DNS primario, se debería instalar un servidor DNS secundario.Para ello, las zonas del servidor DNS primario necesitan ser transferidas al servidor DNS secundario. Hay que añadir la opción allow-transfer en ambas zonas (directa e inversa) en el archivo /etc/bind/named.conf.local:

zone "example.com" {type master;file "/etc/bind/db.example.com";allow-transfer { 192.168.1.11; };};zone "1.168.192.in-addr.arpa" {type master;notify no;file "/etc/bind/db.192";allow-transfer { 192.168.1.11; };};

Importante: la dirección 192.168.1.11 es la IP del servidor de nombres DNS secundario. Debes sustituirla por la dirección IP de tu servidor DNS secundario y poner los nombres de zonas y de archivos que hayas elegido.

Luego, en el servidor de nombres DNS secundario, hay que instalar bind, como se hizo con el DNS primario (apt-get install bind9 bind9-doc dnsutils). Posteriormente hay que editar /etc/bind/named.conf.local y poner:zone "example.com" {type slave;file "db.example.com";masters { 192.168.1.10; };};zone "1.168.192.in-addr.arpa" {type slave;file "db.192";masters { 192.168.1.10; };};

Página 21 de 30

Page 22: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Importante: la dirección 192.168.1.10 es la IP del servidor de nombres DNS primario. Debes sustituirla por la dirección IP de tu servidor DNS primario y poner los nombres de zonas y de archivos que hayas elegido.

Llegó el momento de arrancar el servidor DNS secundario:

sudo /etc/init.d/bind9 restart

Con cat /var/log/syslog se debería ver algo parecido a esto:slave zone "example.com" (IN) loaded (serial 6)slave zone "100.18.172.in-addr.arpa" (IN) loaded (serial 3)

Nota: una zona es transferida solamente si el campo Serial en el servidor DNS primario es MAYOR que en el servidor DNS secundario.

6) CONFIGURACIÓN DE DNS DINÁMICO (DYNAMIC DNS O DDNS).

En los casos en que se dispone de un dominio y de una IP dinámica por parte del proveedor de servicios de Internet (en adelante ISP), se hace necesario un mecanismo que sincronice nombre de dominio e IP para que en todo momento apunten al mismo lugar.

Se va a proponer el siguiente caso de estudio: se dispone en casa de conexión a Internet mediante IP dinámica, y se desea instalar y configurar un servidor de páginas web. También se quiere disponer de un nombre de dominio gratuito que se desea asociar a la dirección del servidor de páginas web antes mencionado.

Pasos a seguir:

– Se instala el sistema operativo Ubuntu en un ordenador de IP 192.168.1.17. Interesa saber tanto esa dirección IP de la red local de casa como la dirección del router, que se puede averiguar desde el propio router o bien desde www.cualesmiip.com

– En ese ordenador se instala XAMPP, para conseguir, entre otras cosas, tener el servidor de páginas web Apache. Se configura el servidor de páginas web y se crea una página web para ese servidor.

– Para obtener un nombre de dominio gratuito y con manejo de DNS, se puede acceder, entre otras, a estas páginas web:

http://www.co.cc

Página 22 de 30

Page 23: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

http://www.registry.cu.cc/

http://www.dtdns.com

Página 23 de 30

Page 24: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

En www.co.cc registré el nombre josejl68.co.cc, en www.registry.cu.cc registré el nombre josejl68.cu.cc y en www.dtdns.com registré el nombre josejl68.dtdns.net. Obsérvese que son nombres de host los que he registrado, ya que tenía que aceptar los dominios que me ofrecían.

– Iniciamos el servidor de páginas web:

– Entramos en www.cualesmiip.com para saber la dirección del router de casa:

Página 24 de 30

Page 25: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

– Vamos a uno de nuestros dominios y lo configuramos:

– ¿Ya está? No, falta algo fundamental. Es necesario abrir el puerto 80 (y el 443, si se desean páginas web seguras) en el router para que se pueda acceder al servidor de páginas web que tenemos en casa. Para ello, se accede mediante el navegador de Internet al router (con la IP de la puerta de enlace que tengamos en nuestras propiedades TCP/IP):

Página 25 de 30

Page 26: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

– Ya está. Poniendo en el navegador de Internet www.josejl68.co.cc o josejl68.co.cc saldrá nuestra página web:

Página 26 de 30

Page 27: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

IMPORTANTE: con este sistema, necesitaremos nosotros poner a mano entrando en www.co.cc la nueva dirección IP de nuestro router si ésta ha cambiado (por caída del router, apagón de luz, etc.) para que se actualice el nombre de dominio con la dirección IP. Algunos routers tienen un menú en su configuración para DDNS, que permite que se haga automáticamente el proceso de asignar una IP al dominio si la IP dinámica ha cambiado. En el caso de mi router:

Página 27 de 30

Page 28: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Página 28 de 30

Page 29: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

Resulta que este router puede usar el dominio gratuito josejl68.dtdns.net y actualizar él solo la IP del router en el caso de que cambie, haciendo transparente al dueño del servidor de páginas web y del router el hecho de que la IP del router cambie o no, pudiéndose acceder siempre al servidor de páginas web sin tener que hacer nada más (todo lo hace el router). En efecto, si escribimos en el navegador: josejl68.dtdns.net, sale:

Página 29 de 30

Page 30: Configuracion DNS Ubuntu

José María Jiménez LópezMódulo profesional “Servicios en Red”

I.E.S. “Isidro de Arcenegui y Carmona” Marchena (Sevilla) - AndalucíaCurso 2011-2012

7) CONSIDERACIONES FINALES SOBRE EL SERVICIO DNS

– ¿Por qué no funciona el comando “dig www.google.es ns” ? Porque se está preguntando por el servidor de nombres DNS de una máquina, no de un dominio. Funcionaría si ponemos “dig google.es ns”

– Si hacemos varias veces “dig @127.0.0.1 google.es”, comprueba que varía cada vez su campo TTL (tiempo de vida), haciéndose más pequeño. Sin embargo, si hacemos varias veces “dig @ns2.google.com google.es”, siendo el servidor consultado uno de los servidores DNS con autoridad sobre el dominio google.es, comprobaremos que el campo TTL no cambia. ¿Por qué? Porque todo servidor DNS caché va actualizando el TTL hasta llegar a cero, para tener que volver a pedir al servidor DNS de google.es una dirección IP actualizada. El servidor DNS de google.es no necesita actualizar el TTL de las direcciones que controla en su base de datos.

– El balanceo de carga en servidores DNS se obtiene:a) dando el servidor DNS un orden diferente de las IP que controla (un mismo nombre de dominio que tiene varias IP, su lista de servidores DNS) en su base de datos cada vez que es consultado. Los servidores de DNS locales también pueden variar el orden de las IP que controla para el balanceo de carga.b) poniendo un TTL no muy alto para un refresco más frecuente de la IP (cuyo orden va variando, como pone en el apartado anterior), aunque a costa de un mayor número de consultas al servidor DNS.

Página 30 de 30