Instalación y configuración de un servidor DNS

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Google+ 0 0 Flares ×

Hola a todos. Hoy voy a explicar como instalar y configurar un servidor DNS. Lo instalaremos en un servidor Linux. Concretamente con la distribución Ubuntu 14.04. Antes de empezar, para los que aún no sabéis que es y para que se utiliza un servidor DNS, os voy a hacer una pequeña introducción. DNS proviene de las siglas en inglés (Domain Name System). Lo que hace principalmente es relacionar una @ip con un dominio y viceversa.




En un principio, para hacer cualquier consulta a una máquina externa a la nuestra mediante la red, ya sea un recurso compartido, una página web etc, deberíamos conocer la @ip de la máquina que queremos consultar. Yo siempre lo comparo como una llamada telefónica. Para realizar la llamada, tenemos que conocer el número de la persona a la que vamos a llamar. Por que los teléfonos no entienden de nombres, solo de números. Hoy en día, en nuestros teléfonos móviles, tenemos nuestra agenda de contactos.  Donde asignamos un número de teléfono a cada contacto. Esto se hace porque para el ser humano es más fácil recordar el nombre de una persona que su número de teléfono. Imaginaros que tuvierais que recordar todos los números de teléfono de vuestros amigos, familiares, compañeros de trabajo etc. Seria un follón verdad. Pues bueno. Un servidor DNS realiza una función muy similar a la de la agenda de nuestro teléfono móvil. Lo único que entienden las máquinas, son @ip. Seríais capaces de recordar todas la @ip’s de las páginas web que os gustan o os interesa. Seria complicado ¡¿a que si? Pues justamente lo que hace el servidor DNS es “treducir” esa @ip que nombre de dominio le corresponde o un determinado dominio, a que @ip apunta. De esta forma podemos hacer consultas en la red sin necesidad de conocer la @ip. Simplemente sabiendo el dominio el DNS es capaz de “traducir” ese dominio a una @ip. Esto se hace, porque es mucho más fácil, para un ser humano, recordar nombre de dominio que una @ip. Ya hecha la aclaración, voy a pasar a la acción y voy ha empezar a instalar el servidor DNS en nuestra máquina Linux.




Configuración de la red de nuestro servidor DNS

Lo primero que haré es mirar como tengo configurada o configuradas la o las tarjetas de red en mi servidor con el comando ifconfig.

configuracion de la red dns

Asignar una IP estática a la tarjeta de red

Una vez ya se de que tarjetas de red dispongo, ya podemos pasar a configurar la red a nuestras necesidades. Lo primero que haremos es asignar una @IP estática a la tarjeta de red que dará servicio a nuestra red. Lo haremos editando el fichero /etc/network/inerfaces.

dns-2

Reiniciar la red de nuestro servidor DNS

A continuación reiniciamos la red con el comando /etc/init.d/networking restart y comprobaremos que la configuración de red es correcta con el comando ifconfig que ya utilizamos antes.

configuracion de la red dns

Instalar servidor DNS instalando bind9

Ahora ya podemos instalar nuestro servidor DNS instalando el paquete bind9. Antes de instalarlo, comprobaremos que no este ya instalado con el comando dpkg -L  bind9. Si esta orden nos muestra todos los ficheros del paquete, es que ya esta instalado. De lo contrario, nos arrojará un mensaje diciendo que el paquete no está instalado. En ese caso, lo instalaremos con el comando apt-get install bind9.

Configurar servidor DNS Linux

Una vez instalado, ya podemos pasar a la configuración del servidor DNS. Todos los ficheros que necesitamos editar se encuentran en el directorio  /etc/bind/. Allí encontraremos entre otros los ficheros named.conf.options y /etc/bind/named.conf.local que serán los primero que editaremos.

Editar el fichero /etc/bind/named.conf.options

El primer fichero que editaremos, será el archivo /etc/bind/named.conf.options. En este archivo sólo hemos de descomentar las líneas de forward only y forwarders como se puede ver en la imagen de abajo y añadir las @ip de servidores DNS externos donde consultará nuestro servicio en caso de que no encuentre la respuesta a nuestra petición.

named.conf.options

Editar el fichero /etc/bind/named.conf.local

Después pasaremos a editar el archivo /etc/bind/named.conf.local. En este archivo especificaremos las zonas de búsqueda directa e inversa del servicio DNS. El dominio de nuestra zona directa y la subred del la zona inversa. También tendremos que incluir qué tipo de servicio es (maestro o esclavo) y en que archivos hará la búsqueda de nombres.

named.conf.local

Podemos comprobar que no tenemos errores de sintaxis en al fichero, garcias al comando named-checkconf. No te asustes si no devuelve nada. Significa que no hay errores. De lo contrario nos especificará cual es el error de sintaxis y en que linea se encuentra el error. Ojo errores de sintaxis. Si nos equivocamos al poner, por ejemplo, al poner el nombre de un fichero de las tablas directa o inversa, no lo detectará.




Tabla de la búsqueda directa DNS

El siguiente archivo a editar es el que contendrá las tablas de la búsqueda directa /etc/bind/db.webebre.net.host. Este archivo contiene las tablas de búsqueda directa. Las primeras líneas son unos parámetros relacionados con la actualización del DNS (número de serie y periodos de actuación). La siguiente línea indica quién es el servidor primario (NS = Name Server). Las siguientes líneas especifican las @IP’s de los diferentes PC’s componentes del dominio (A = Address). En la siguiente imagen puedes ver como quedaría el fichero.

dns-5

Tablas de la búsqueda inversa DNS

Seguidamente editaremos el archivo /etc/bind/db.192.168.83.rev. Este archivo contiene las tablas de búsqueda inversa. Así quedaría el fichero.

dns-6

Comprobación de errores se sintaxis en DNS Ubuntu

Al igual como ya hice con el fichero /etc/bind/named.conf.local. También puedo comprobar que estos dos ficheros que contienen las tablas de búsqueda directa e inversa tengan la sintaxis correctos gracias al comando named-checkzone webebre.net /etc/bind/db.webebre.net.host para el fichero de la zona directa y named-checkzone webebre.net /etc/bind/db.192.168.83.rev para el fichero de la inversa. Si están correctos nos devolverá un OK.

dns-7

Especificar la IP y el dominio donde hacer las peticiones DNS el servidor

Ya casi hemos acabado. Una vez configurado nuestro servidor DNS, debemos indicar a nuestro PC que el servidor DNS es él mismo, se especifica editando el archivo /etc/resolv.conf. Indicando la @ip del servidor y el dominio de donde realizará las búsquedas.

dns-8

Reiniciar Bing 9

Ya hemos terminado de configurar nuestro servidor DNS. Para finalizar, reiniciaremos el bind para que los cambios realizados en los archivos anteriores tengan efecto. Lo haremos con el comando /etc/init.d/bind9 restart.

Comprobaciones del servidor DNS con el comando nslookup

Nuestro servidor DNS ya esta funcionando, para comprobar que lo hace correctamente, realizaremos alguna comprobaciones con el comando nslookup. Con este comando podremos comprobar que resuelve peticiones de la zona directa.

dns-9

Y también de la zona inversa.

dns-10

De esta forma ya podemos afirmar que nuestro servidor DNS esta instalado, configurado y funcionando correctamente. Espero que te haya gustado el tutorial y te haya sido de ayuda. Si es así, compártelo en las redes sociales con tus amigos. Es probable que a alguno de ellos también le sea útil. Por último, si has tenido paciencia de seguir el tutorial hasta el final, aquí tienen de regalo el vídeo practico donde podrás ver paso a paso como instale y configure este servidor DNS. Que lo disfrutes.

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Google+ 0 0 Flares ×

25 thoughts on “Instalación y configuración de un servidor DNS

    • Hola Michael,

      Lo cierto es que no es nada complicado que un cliente Windows consulte nuestro servidor DNS. Te intentare hacer una explicación breve.

      Solo tienes que ir a Panel de control->Redes e Internet->Centro de redes y recursos compartidos->Cambiar configuración de adaptador. Aquí haz clic con el botón derecho del ratón a tu conexión de área local y selecciona la opción Propiedades. En la ventana emergente, selecciona el Protocolo de Internet versión 4 (TCP/IPv4) y estando seleccionada esta opción le das al botón Propiedades. Ya casi has llegado jajaja… Por último en esta nueva ventana emergente, en la parte inferior se encuentra la configuración DNS de la conexión. Selecciona la opción de Usar la siguientes direcciones de servidor DNS y ahí puedes poner la @IP de tu servidor DNS. Puedes poner 2 “IP’s de dos servidores distintos. Por último le das a Aceptar y ya tienes conectado tu cliente Windows con tu servidor DNS Linux.

      Espero que te sirva de ayuda.

  1. espero me ayudes tengo en dos maquinas virtuales una este servidor dns y en la otra otro ftp en la red por ejemplo 198.162.0.1 vaya, y el dns lo tengo en la 198.162.0.5 y el ftp en la 198.162.0.6 como en mascaro la ip en un dominio cualquieara como http://ftp.prueba.com para que otros vean mi dominio prueba y no mi ip 198.162.06 las 2 estan montadas sobre ubuntu 14.04

    • Hola Jean,

      Disculpa por haber tardado tanto en responder. Espero que hayas resuelto ya el problema. Por si aún no lo has hecho, te explico a continuación como hacerlo:

      Fijate, que lo primero que hago en el ejemplo, es comprobar la red con el comando ifconfig. Ahí puedo saber que números de eth tienen mis tarjetas de red. En mi caso, tengo asignado el eth0 para una tergeta de red y el eth1 para la otra, pero quizás tu tengas el eth3 y el eth4.

      Cuando edites el fichero /etc/network/inerfaces sustituye el eth0 y el eth1 por los que tu tengas.

      Espero haberte ayudado y disculpa una vez más la demora de la respuesta.

  2. Hola buenas tardes, mi servidor dns esta configurado y listo, lo puedo ve en las pc cliente agregando la ip en DNS de la maquina de windows, la cuestion es, hay alguna manera de ingresar solo mi dominio en la pc cliente sin haber agregado la direccion de mi servidor en DNS de windows?

    • Hola Gerardo,

      Disculpa por tardar tanto tiempo en responder. He estado muy ocupado últimamente y no he podido responder a los comentarios del blog.

      Por otro lado, estoy leyendo tu comentario y no acabo de entender muy bien cual es tu problema o la duda que tienes. Si puedes o quieres explicarme con mas detalle que es lo que te sucede y que pretendes hacer, intentaré ayudarte con mucho gusto.

      Lo siento no haber podido responder a tu problema, pero no acabo de comprender la pregunta.

  3. Hola muy bueno pero tengo una duda!
    Mira tengo 2 servidores en servicio un FTP y WEB en un segmento de red 187.176.10.x y tengo una red interna con la 192.168.20.x el servidor DNS lo configure en la red interna estos 2 segmentos de red estan conectados a un Firewall (Smoothwall) pero lo que no logro hacer o tal vez comprender es Como puedo hacer que una solicitud de un cliente de la red interna pueda ver mi pagina de mi servidor con un dominio del servidor DNS podrias ayudarme?

  4. Saludos, Muy buen bloc te felicito.
    Tengo una duda en el video la dirección IP del servidor DNS es 192.168.83.1, la cuestión es que no entiendo cual es la dirección IP que se asigna a la pagina WEB que estamos creando, osea si desde algún host desea ingresar a la pagina web que creaste el servidor DNS debe devolver la dirección IP de la misma pero no se en que parte asigno esa IP a la pagina web?? gracias

    • Hola Ivan, muchas gracias por tu comentario. Me alegra que te guste el blog

      Por lo que me dices, parece que lo que pretendes es acceder con el dominio que has creado al configurar el servidor DNS a una página web que tienes alojada en el mismo servidor. Supongo que para crear el sitio web, habrás tenido que instalar el servidor Apache y tendrás la web que has desarrollado en el directorio /var/www/. Ahí has tienes un directorio donde se encuentran todos los archivos de tu web. La ruta donde se encuentra la web en tu servidor Apache seria algo parecido a esto: /var/www/miweb/.

      Para poder acceder a esa web desde cualquier PC de tu red de área local, si no has hecho ningún ajuste en la configuración del servidor Apache, solo puedes hacerlo de dos maneras:

      1) escribiendo en el navegador la @ip seguido del directorio donde se encuentra.
      Por ejemplo algo así http:// 192.168.83.1/miweb/

      2) escribiendo en el navegador el dominio seguido del directorio donde se encuentra.
      Por ejemplo algo así http:// midominio.com/miweb/

      Para poder acceder directamente a la web simplemente poniendo el dominio, por ejemplo escribiendo en la barra del navegador http:// midominio.com, deberás crear un host virtual en tu servidor Apache.

      Si no sabes como crear un host virtual en Apache, haz clic aquí para leer un post que explica paso a paso como hacerlo.

      Espero haberte ayudado.

  5. Hola, espero hayas tenido una buena navidad, muy bueno tu artículo sobre configuración del dns,lo que observo es que hay que colocar, a mano, por así decir, todos los pc o host de mi red local. Mi pregunta es ¿No es posible configurar el dns para que registre los equipos de la red según la dirección ip asignada por el dhcp del servidor local, o sea, digamos que automáticamente?

    Espero logres entender la idea que planteo y agradeceré mucho las luces que puedas dar al respecto de lo planteado. Gracias.

    • Hola Fabián, Ya también espero que todos hayáis pasado unas buenas Navidades

      Tienes mucha razón en lo que dices. Lo ideal es que las @IP’s de los clientes las asigne automáticamente el servidor DHCP y este, a su vez, se sincronice con el servidor DNS. El problema es que para hacer eso, primero tendríamos que tener instalado y configurado un servidor DHCP. Tengo pendiente hacer un tutorial, tipo este, de como instalar y configurar un servidor DHCP. Una vez tenemos DNS, más DHCP instalados y configurados, el siguiente paso seria sincronizar ambos servidores, pero esto, daría para hacer un tercer tutorial jejeje…

      Lo cierto es que por falta de tiempo, aún no he podido hacer los tutoriales de servidor DHCP y el tutorial de como sincronizar DNS y DHCP. Espero poder disponer del tiempo necesario para hacerlo próximamente. Ve pasándote por el blog vez en cuando.

      Espero haber comprendido correctamente tu pregunta Fabián. Agradezco mucho tu comentario.

      Un saludo,
      Roberto

  6. Hola Roberto.
    Felicidades por este buen tutorial y felices fiestas.
    Hay algo que no logro comprender. Se supone aquí se realiza un servidor DNS para una red local, ¿pero como le hago para que sea un servidor DNS de internet?.
    LO que quiero es hacer lo siguiente:
    1.- Tener mi propio servidor de mail
    2.- En ese mismo servidor montar mi página web.

    Todo esto para que desde cualquier otro servidor de correos en algún lado del internet, pueda enviarme correos y yo pueda enviarle correos, y que cualquier usuario conectado al internet pueda ver mi página web.

    Mira tengo lo siguiente:
    – Tengo un nombre de dominio contratado sobre NIC México (solo eso, el puro nombre sin servicios extras)
    – Tengo un servidor viejito que preparé con Debian Jessie 8.2
    – Tengo configurado Postfix, Dovecot y Roundcube con usuarios y buzones virtuales, el cual eh estado probando y funciona bien de manera local. Eh mandado correos a cuentas externas pero solo Yahoo me la recibe, y los otros me lo colocan como spam. Cuando intento responder el correo por Yahoo, me lo regresa y me dice que no existe un registro Mx ni un registro A.
    POr lo tanto he llegado a la conclusión que el problema radica en mi servidor DNS.

    ¿Como puedo hacerle para que realmente me lleguen mis correos y responda como un servidor MX con un registro A?

    Antes que nada, te comento que en el panel de control de mi proveedor del dominio, eh dado de alta el DNS de mi servidor, que no es más colocar el nombre+mi dominio y apunto a mi dirección IP pública de mi proveedor de ISP. Cuando realizo el test de verificación de DNS con la herramienta del provvedor de dominio, me dice que: Se recibió respuesta autoritativa.
    Eso quiere decir que si está consultando mi servidor.

    Espero me puedas orientar y desde luego, muchas gracias y un saludo.

    • Hola Isra,

      Al enviar correos des de tu propio servido, al tratase de un servidor “desconocido” para la mayoría de plataformas de email, es muy habitual que lo redireccione a la bandeja de spam. Esto también puede depender de la configuración de los filtros anti-spam de cada servidor o del propio usuario. Par tratar el problema de que si puedes enviar, pero no puedes recibir correos, puede estar en algún pequeño error en el registro MX, POP3 o cualquier cosa, pero por lo que me comentas, por el servidor DNS no parece que sea.

      También me comentas que te gustaría desarrollar una web en tu servidor para que sea accesible para todo el mundo. Para eso deberías instalar y configurar Apache.

      En cualquiera de los caso, si lo que quieres es tener tu web y aprovechar tu dominio pare tener tu propia cuanta de correo, yo te aconsejaría contratar un hosting. Los hay muy económicos, como por ejemplo ipage. que por apenas un par de dolares al mes, tienes tu servidor de correo y tu página web funcionando las 24h del día, los 365 días al año y todos estos temas resueltos.

      Aquí te dejo el enlace por si te interesa echarle un vistazo Hosting iPage!

      Solamente por el simple echo de tener en marcha tu servidor en tu casa las 24hrs del día te va a salir más caro que contratar un hosting y además seguro que no tendrás en tu hogar el mismo ancho de banda, con lo que en caso de tener varias visitas recurrentes podría saturarse.

  7. Hola compañero, me gustaría crear un túnel DNS.
    Agrego los registros NS y A necesarios, al archivo “db.barqueseriarossini.es.zone” que es como le he llamado, pero me dice:

    “the tunnel name tuns.barqueseriarossini.es is not delegated to any host ”

    Lo unico que añade a este archivo fue:

    tunel.barqueseriarossini.es IN A XX.XX.XX.XX (IP publica del servidor iodine)
    tuns.barqueseriarossini.es IN NS túnel.barqueseriarossini.es

    Donde se te ocurre que puede estar el error? o Que estoy haciendo mal?

    Muchas gracias y enhorabuena por el blog

    • Hola Alejandro,

      Repasa el fichero db.barqueseriarossini.es.zone. Ten en cuenta que cualquier pequeño detalle puede hacer que provoque un error. Una coma, un punto, una tabulación. Sobre todo debes tener muy en cuenta que no existan espacios entre las columnas. el carácter que delimita los distintos campos de las tablas es el tabulador. Suele ser un error muy común.

      Un saludo y gracias por tu comentario.

  8. una pregunta urgentisima, mira te comento en el cliente de windows no me lo detecta ,el unico cambio que hay en tu configuracion es que cuando lo compruebo en el server me dice la ip 127.0.0,.1 como cambio esto o alguna manera de que el windows lo vea

    • Hola Rubén,

      ¿Has editado correctamente el fichero /etc/network/inerfaces? También ten en cuanta que si lo acabas de editar, deberías reiniciar tu red con el comando /etc/init.d/networking restart para que los cambios tengan efecto.

    • Hola Sara,

      Gracias por dejar tu comentario. Para que nuestro servidor DNS también resuelva subdominios, tan solo deberemos añadir en las tablas de la zona directa e inversa un nuevo registro indicando el subdominio y su respectiva @IP. En el ejemplo del tutorial serian los ficheros /etc/bind/db.webebre.net.host y /etc/bind/db.192.168.83.rev. En el archivo /etc/bind/named.conf.local, no es necesario añadirlo, ya que un subdominio no deja de ser una extensión del dominio principal.

      Si te fijas, en el ejemplo practico que hice, ya utilizo varios subdominios como por ejemplo pc1.webebre.net o pc2.webebre.net…

      Otra cosa seria que tuvieras un servidor web Apache y quisieras configurar un subdominio para una sitio web. Como por ejemplo http://www.webebre.net. las www no dejan de ser un subdominio del dominio principal, pero eso ya formaría parte de la configuración de Apache y daría para otro tutorial, que por cierto tengo pendiente para hacer. Si te interesa, estate pendiente de mi blog.

      Un saludo 😉

Deja un comentario

*

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Google+ 0 0 Flares ×