Instalar y configurar un servidor DNS con Ubuntu Server paso a paso

Un servidor DNS (Domain Name System) es un sistema que nos permite usar nombres de dominio en lugar de direcciones IP. Su principal ventaja es que para nosotros es mucho más fácil recordar un nombre que una dirección IP.

El servidor DNS más utilizado es Bind y, aunque teníamos un poco abandonado a Ubuntu Server en Slice of Linux, hoy vamos a ver cómo instalarlo y configurarlo sobre él paso a paso. El contenido de este tutorial es genérico pero las pruebas y capturas de pantalla se han hecho sobre Ubuntu 10.04 Server.

Los valores que debemos tener claros antes de comenzar son los siguientes:

  • Dirección IP del servidor: 192.168.2.1
  • Nombre del servidor: servidor
  • Dominio que vamos a crear: sliceoflinux.lan

Estos valores deberemos sustituirlos por los que necesitemos en cada caso.

Los pasos para instalar y configurar Bind en Ubuntu Server son los siguientes:

  1. Actualizamos la información de los repositorios con el siguiente comando:

    sudo aptitude update

  2. Instalamos el servidor DNS Bind9:

    sudo aptitude install bind9

  3. Hacemos una copia de seguridad del archivo que vamos a modificar:

    sudo cp /etc/bind/named.conf.local{,.original}

    Este comando nos puede ahorrar mucho tiempo y está descrito en el artículo «hacer copias de seguridad de archivos rápidamente«.

  4. Editamos el archivo /etc/bind/named.conf.local con el siguiente comando:

    sudo nano /etc/bind/named.conf.local

    y añadimos el siguiente contenido:

    zone "sliceoflinux.lan" {
      type master;
      file "db.sliceoflinux.lan";
    };
    
    zone "2.168.192.in-addr.arpa" {
      type master;
      file "db.192.168.2";
    };

    Esto se puede ver en la siguiente captura de pantalla:

    Editamos el archivo /etc/bind/named.conf.local

    Editamos el archivo /etc/bind/named.conf.local

    Para guardar el archivo debemos pulsar la combinación de teclas Control+O y para salir Control+X.

  5. Para comprobar la sintaxis de los archivos de configuración ejecutamos el siguiente comando:

    named-checkconf

    Si no aparece nada, la sintaxis de los archivos de configuración es correcta. ¡Ojo! Eso no significa que no haya ningún error, sólo que no hay errores de sintaxis.

    Ejecución de named-checkconf sin errores

    Ejecución de named-checkconf sin errores

    Si hubiésemos cometido un error de sintaxis, nos aparecería indicado junto a la línea en la que ocurre. En el siguiente ejemplo puede verse que en el archivo /etc/bind/named.conf.local en la línea 15 hay un error:

    Ejecución de named-checkconf con un error

    Ejecución de named-checkconf con un error

  6. Creamos el archivo /var/cache/bind/db.sliceoflinux.lan:

    sudo nano /var/cache/bind/db.sliceoflinux.lan

    e incluimos el siguiente contenido:

    $ORIGIN sliceoflinux.lan.
    $TTL 86400 ; 1 dia
    @       IN      SOA     servidor        postmaster (
            1    ; serie
            6H   ; refresco (6 horas)
            1H   ; reintentos (1 hora)
            2W   ; expira (2 semanas)
            3H   ; mínimo (3 horas)
    )
             NS     servidor
    servidor A      192.168.2.1

    El contenido del archivo es bastante especial y no lo vamos a comentar pero para más información se puede leer el RFC 1912 y el RFC 2308. Aquí deberíamos añadir todos los equipos de nuestra red que quisiéramos mantener identificados pero como es más fácil hacerlo con DDNS (Dynamic DNS) ya lo veremos en otra ocasión.

  7. Comprobamos la zona que acabamos de crear (sliceoflinux.lan):

    named-checkzone sliceoflinux.lan /var/cache/bind/db.sliceoflinux.lan

    En esta ocasión siempre nos aparecerá una salida, ya sea para indicarnos que todo está bien (OK) o algún error.

    Ejecución de named-checkzone sin errores

    Ejecución de named-checkzone sin errores

  8. A continuación creamos el archivo /var/cache/bind/db.192.168.2 para la zona inversa:

    sudo nano /var/cache/bind/db.192.168.2

    e incluimos el siguiente contenido:

    $ORIGIN 2.168.192.in-addr.arpa.
    $TTL 86400     ; 1 dia
    @       IN      SOA     servidor        postmaster (
            1      ; serie
            6H     ; refresco (6 horas)
            1H     ; reintentos (1 hora)
            2W     ; expire (2 semanas)
            3H     ; mínimo (3 horas)
    )
           NS      servidor.sliceoflinux.lan.
    1      PTR     servidor.sliceoflinux.lan.

    El número 1 se corresponde con el último dígito de la dirección IP del servidor (192.168.2.1).

  9. Comprobamos la zona inversa recién creada:

    named-checkzone 2.168.192.in-addr.arpa /var/cache/bind/db.192.168.2

    Al igual que antes obtendremos un mensaje para indicarnos tanto si la zona es correcta como si no lo es.

    Ejecución de named-checkzone sin errores

    Ejecución de named-checkzone sin errores

  10. Reiniciamos el servicio:

    sudo service bind9 restart

    Si todo va bien, veremos que está OK.

    Reiniciamos el servicio

    Reiniciamos el servicio

  11. Revisamos el log para comprobar que todo ha ido bien. Aunque se puede hacer con el comando tail, yo prefiero less porque me permite ver todo el contenido del mismo:

    less /var/log/syslog

    El resultado se puede ver en la siguiente captura:

    Comprobamos que no hay errores en syslog

    Comprobamos que no hay errores en syslog

    Para salir deberemos pulsar la tecla q.

  12. Editamos el archivo /etc/resolv.conf para que nuestro servidor resuelva las peticiones DNS:

    sudo nano /etc/resolv.conf

    Cambiando el primero de los servidores DNS por la IP del nuestro:

    nameserver 192.168.2.1
    nameserver 8.8.8.8
  13. Probamos nuestro servidor de nombres:

    dig sliceoflinux.lan

    La respuesta será muy parecida a la siguiente:

    Ejecución de dig sliceoflinux.lan

    Ejecución de dig sliceoflinux.lan

  14. Probamos la resolución inversa:

    dig -x 192.168.2.1

    Esta sería la salida esperada del comando anterior:

    Ejecucuión de dig -x 192.168.2.1

    Ejecución de dig -x 192.168.2.1

  15. Por último, para poder sacarle partido al servidor que hemos creado nos faltaría incluir este servidor DNS en la configuración de los clientes. Para esto puedes nuestro artículo Configurar el servidor DNS de Ubuntu Karmic desde la interfaz gráfica.

Vía: Cahilig

Artículos relacionados:

39 Respuestas to “Instalar y configurar un servidor DNS con Ubuntu Server paso a paso”


  1. 1 redtitle miércoles, 21 abril 2010 a las 2:38 pm

    Buenas! yo hace tiempo que lo utilizo como servidor dns para mi propia maquina, es decir, solo hay que ponerlo en marcha y editar el archivo /etc/resolv.conf y poner:

    nameserver 127.0.0.1

    y ya está, ya tenemos un servidor dns cache de forma local, asi ahorramos tiempo puesto que la consulta la hace en local y no al servidor dns de nuestro ISP

    un saludo!

  2. 2 David Arredondo miércoles, 21 abril 2010 a las 3:46 pm

    No tuviste problemas con Ubuntu 10.04 ? Que Beta ocupaste? Recomiendas ya ocupar los Beta o RC en producción?
    Saludos

    • 3 &rés miércoles, 21 abril 2010 a las 4:13 pm

      @David Arredondo
      No tuve ningún problema con Ubuntu 10.04 Server Beta 2 para hacer este tutorial pero lógicamente recomiendo esperar a la definitiva para ponerlo en producción.
      El hacerlo con la Ubuntu 10.04 Server Beta 2 sólo fue para no cambiar para el resto de tutoriales sobre servidores que tengo pensado escribir.
      Un saludo.

  3. 4 triangulolinux miércoles, 21 abril 2010 a las 3:58 pm

    Buen aporte vamos a ponerlo a prueba.

    Saludos.

  4. 6 SeccionNet jueves, 22 abril 2010 a las 4:44 am

    ho;a tengo un problema, espero me puedas apoyar ya tengo un rato con este problema que es la resolucion inversa, y siguiendo este tutorial pensaba eliminarlo, pero te agrego el resultado
    dig -x 148.208.141.1

    ; <> DiG 9.6.1-P2 <> -x 148.208.141.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 7399
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;1.141.208.148.in-addr.arpa. IN PTR

    ;; Query time: 0 msec
    ;; SERVER: 148.208.141.1#53(148.208.141.1)
    ;; WHEN: Wed Apr 21 20:41:31 2010
    ;; MSG SIZE rcvd: 44

    • 7 &rés jueves, 22 abril 2010 a las 8:47 am

      @SeccionNet
      Es lógico que no obtengas respuesta porque si te fijas en el status aparece SERVFAIL lo que significa que hay un error en Bind. Revisa cada uno de los archivos de nuevo porque tiene que haber algo mal. A mi me pasó mientras escribí el tutorial.
      Saludos.

    • 8 Diana lunes, 26 julio 2010 a las 6:19 pm

      Hola yo tengo el mismo error… pero ya revise los archivos…… y esta todo bien… me puedes ayudar indicándome en donde estuvo tu error…. gracias…..

  5. 9 SeccionNet jueves, 22 abril 2010 a las 5:33 am

    y no se por que se refiere a las ip 3 10 11 etc si ni se usan
    named-checkzone 141.208.148 /etc/bind/db.148.208.141
    /etc/bind/db.148.208.141:3: ignoring out-of-zone data (141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:10: ignoring out-of-zone data (1.141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:11: ignoring out-of-zone data (1.141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:12: ignoring out-of-zone data (2.141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:13: ignoring out-of-zone data (3.141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:14: ignoring out-of-zone data (7.141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:15: ignoring out-of-zone data (8.141.208.148.in-addr.arpa)
    /etc/bind/db.148.208.141:16: ignoring out-of-zone data (9.141.208.148.in-addr.arpa)
    zone 141.208.148/IN: has 0 SOA records
    zone 141.208.148/IN: has no NS records

  6. 10 Juan Carlos lunes, 26 abril 2010 a las 11:09 pm

    Despues de instalar el paquete que tiene el servidor DNS(sudo apt-get install bind9)yo utilizo el webmin ya que es mas comodo. El webmin ofrece el módulo de Servidor DNS BIND dentro de la categoría de Servidores que permite configurarlo.
    Despues configuro todos los equipos del dominio(tanto los clientes como el propio servidor)para que usen como servidor de DNS nuestro servidor. Tanto en los clientes como en el servidor indico cual es en el servidor DNS: en el ficheiro /etc/resolv.conf

  7. 11 netgarland martes, 27 abril 2010 a las 10:13 am

    Muy bueno el artículo, pero despues de editar el fichero «/etc/resolv.conf» hay que reiniciar el servicio :)

  8. 14 toto lunes, 3 May 2010 a las 5:06 pm

    este herror me sale espero y me puedas ayudar
    ohtokani@ubuntu:~$ dig sliceoflinux.lan

    ; <> DiG 9.6.1-P2 <> sliceoflinux.lan
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached

  9. 15 Niko miércoles, 5 May 2010 a las 4:47 pm

    Gracias che!! Hace rato que andaba con ganas de instalar y configurar un DNS en el laburo, pero no podia hacerlo funcionar, hasta que encontre este tuto…

    Segui asi y gracias de nuevo!!

  10. 16 Eduardo Simmonds viernes, 21 May 2010 a las 8:16 pm

    Por favor

    Solo deseo saber se puede o no , tengo un modem con internet conectado a un router para varias computadoras o terminales , mi idea es colocar en vez de una de estas terminales un servidor para otra computadora.

    osea Internet – modem – 4 terminales
    1 servidor – terminal

    Puedo no hacerlo . gracias

  11. 17 PIN sábado, 22 May 2010 a las 3:16 pm

    Tengo que instalar un servidor en Ubuntu que haga DHCP a unas 20 máquinas, conviene que también le configure un servidor DNS?
    Gracias,

  12. 18 Adrián lunes, 24 May 2010 a las 6:02 am

    Compañeros,

    Desde hace unos días he decidido montar mi propio servidor web, en Ubuntu Server 10.04. La verdad que es poca la información actualizada, a manera de tutorial/manual que se encuentra en la red. Encontré en Forat, un completísimo manual, haciendo tal cual indica, a excepción que no logro poner la IP estática, pero más adelante el trabaja con NO-IP, que es un servicio que trabaja con IPs dinámicas, y pues por ese lado no estoy tan preocupado. Culmino la guía (por lo general las guías que se encuentran manejan lo mismo) y todo bien. Desde mi misma máquina ingreso la IP (de ésta) o la URL que obtuve a través del servicio mencionado, y conecta; pero el problema es el siguiente: desde afuera, otro PC no conecta al servidor mio. Francamente no se que es lo que pasa, no se imaginan lo que he investigado, me gusta bastante Ubuntu, recién estoy con Server, y la verdad necesito sacar este proyecto adelante, y se que aquí me ayudarán para realizarlo xD. Espero sus comentarios, ayuda , etc. Si necesitan que les envíe info, o la pege en el foro me avisan.

    Saludos.

  13. 19 ernest miércoles, 26 May 2010 a las 6:33 pm

    hola adrian a mi me pasa algo parecido cuando pongo la direccion del dominio se me conecta al router comtrend ct5361 agradeceria muchisimo una respuesta

  14. 20 Mariano Tera martes, 1 junio 2010 a las 7:30 am

    Que tal saludos,
    Recien empece a usar ubuntu, y la verdad me ha sido facil administrar este sistema, ya que nos ofrecen ventajas en las web, sobre los comandos que necesitamos en el momento.
    Viva ubuntu, ademas recien tuve configurar un programa CRM, y la verdad al principio con un poco de temor en cuanto las configuraciones existente, pero luego me arriesgue…y bueno fue mas el susto que la configuracion que lo hice en un instante,
    Espero que ubuntu siga mejorando, para asi hacer la vida mas facil…jejeje
    Saludos y hasta pronto..

  15. 21 peterchan domingo, 15 agosto 2010 a las 8:34 pm

    a mi me funciona perfectamente. es solo saber lo que estas haciendo y el por qué. no hacer copy paste a ciegas

  16. 22 Novatillo viernes, 24 septiembre 2010 a las 1:03 pm

    Buenas a tod@s,

    Tengo un problemilla, a ver si alguien me puede decir lo q es.
    Tengo instalado Ubuntu 9.10 en una máquina virtual, cuando edito el named.conf.local y meto los datos:

    zone «sliceoflinux.lan» {
    type master;
    file «db.sliceoflinux.lan»;
    };

    Le doy a guardar ctrl+o y me dice: error guardando ´named.conf.local: permiso denegado.
    Da igual q lo hago con un usuario root.

    Alguna idea? gracias

  17. 24 Tifanix miércoles, 29 septiembre 2010 a las 6:37 am

    Holas, tengo una duda se puede hacer esto mismo en un ubuntu q no sea server? como el karmic?

  18. 26 osiris lunes, 8 noviembre 2010 a las 5:40 pm

    yo tengo un problema espero me ayuden…

    lo ke pasa es ke acavo de instalar el bind9 en mi ubuntu 9.10

    ahora si que es como mi proyecto, el profesor me pide que edite el archivo named.conf.options

    ya lo corri con este comando

    etc/bind9/named.conf.options

    etc/bind/named.conf.options

    bind9/named.conf.options

    pero me dice que el fichero no existe, como le hago… soy nuevo en ubuntu

  19. 27 saul viernes, 19 noviembre 2010 a las 6:48 pm

    hola amigo quiero conectar una pc cliente xp a el servidor DNS de ubuntu, como tendria q configurar al cliente xp o en el servidor como tendria q agregarlo

    espero me ayudes gracias

  20. 28 Marco jueves, 25 noviembre 2010 a las 11:36 pm

    De donde saco el nombre «sliceoflinux.lan», lo invento, o lo registro en algún lado?

  21. 29 alejo miércoles, 29 diciembre 2010 a las 1:46 am

    @migos tengo este error despues de configurar el archivo….

    sudo nano /etc/resolv.conf
    pongo la ip para el servidor ip

    nameserver 192.168.10.1

    y me sale este error… soy nuevo en esto y necesito de urgencia configurar un DNS muchas graxias…

    root@alejo-VirtualBox:/home/alejo# dig server.com

    ; <> DiG 9.7.1-P2 <> server.com
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached

  22. 30 David domingo, 16 enero 2011 a las 5:27 am

    Que buen aporte me sirvio de mucho (YYY’

  23. 31 clarkn lunes, 14 febrero 2011 a las 12:54 am

    Muchas gracias por el tutorial, esta perfecto no me funciono la primera vez pero tal vez cometi un error

  24. 32 jorge martes, 15 marzo 2011 a las 11:40 pm

    Hola Me gusta saber como podria probar el servidor dns desde otra maquina o como podria verificar que funcione al 100% gracias

  25. 33 omar lunes, 11 abril 2011 a las 7:51 am

    Hola, no hay problema si estoy intentando desde linux mint julia??

  26. 34 Adrian martes, 24 May 2011 a las 5:07 am

    Hola buenas noches, no he logrado concluir la configuraciòn debido a un error, estoy utilizando ubuntu desktop 10.10 y el resultado que obtengo despuès de cambiar el servidor por el nuestro es este:

    root@ubuntu:/home/castillo# dig sliceoflinux.lan

    ; <> DiG 9.7.3 <> sliceoflinux.lan
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 49231
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;sliceoflinux.lan. IN A

    ;; AUTHORITY SECTION:
    . 1133 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2011052301 1800 900 604800 86400

    ;; Query time: 86 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Mon May 23 19:59:45 2011
    ;; MSG SIZE rcvd: 109

    Agradezco mucho tu apoyo para corregirlo.


  1. 1 Instalar y configurar un servidor DNS con Ubuntu Server paso a paso « Linuxdom's Blog Trackback en miércoles, 21 abril 2010 a las 10:38 pm
  2. 2 Crear un servidor DNS « Tux Files Trackback en lunes, 26 abril 2010 a las 7:23 am
  3. 3 Crear un servidor DNS Trackback en martes, 27 abril 2010 a las 12:17 am
  4. 4 Trackback Trackback en sábado, 22 May 2010 a las 1:18 pm
  5. 5 Instalar Ubuntu Server 10.04 LTS « Slice of Linux Trackback en martes, 15 junio 2010 a las 10:33 am

Deja un comentario




Síguenos en Twitter

 

Sitios amigos:

Si has leído nuestro Acerca de, sabes que no publicamos ningún artículo práctico que no hayamos probado. Aún así, no podemos garantizar que en tu sistema funcione como en el nuestro.

Esta página no es de soporte. Compartimos lo que sabemos, pero si resolviésemos todas las dudas que recibimos, no podríamos hacer artículos nuevos. Por eso, si alguien plantea un problema, y sabes la respuesta, siéntete libre para comentarla.

Si tienes una duda y no obtienes respuesta, puedes recurrir a sitios específicos como ubuntu-es.org o Linux Q.

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.