{"id":543,"date":"2006-01-29T18:42:41","date_gmt":"2006-01-29T16:42:41","guid":{"rendered":"http:\/\/www.marblestation.com\/blog\/?p=543"},"modified":"2012-04-26T17:20:58","modified_gmt":"2012-04-26T15:20:58","slug":"configuracion-servidor-dns-bind9-en-ubuntu","status":"publish","type":"post","link":"https:\/\/www.marblestation.com\/?p=543","title":{"rendered":"Configuraci\u00f3n servidor DNS (bind9) en Ubuntu"},"content":{"rendered":"<p>* Fragmentos de texto extra\u00eddos del tutorial &#8220;<a href=\"http:\/\/www.mexicoextremo.com.mx\/content\/view\/423\/62\/\">C\u00f3mo configurar BIND<\/a>&#8221; de Hugo Madrid Luna (Crowley) bajo FDL.<\/p>\n<p>BIND es el servidor de nombres de dominio m\u00e1s popular en Internet, que trabaja en todas las plataformas inform\u00e1ticas principales y se caracteriza por su flexibilidad y seguridad.<\/p>\n<p>Domain Name Service (DNS) es el servicio que resuelve los nombres de dominio asociados a una direcci\u00f3n IP para direccionar las peticiones a un servidor en espec\u00edfico. Se utiliza cuando un nodo (o host) en Internet contacta a otro mediante el nombre de domino de la m\u00e1quina y no por su direcci\u00f3n IP.<\/p>\n<p>A trav\u00e9s de este documento se ver\u00e1n las generalidades del servicio de resoluci\u00f3n de nombres, la configuraci\u00f3n y mantenimiento de un servicio de nombres con BIND, bajo la plataforma Linux, aunque la mayor\u00eda de estos conceptos se pueden aplicar a la cualquier servicio de DNS sobre otras plataformas.<\/p>\n<p>Regularmente, todos los equipos que est\u00e1n en Internet o una Intranet tienen una direcci\u00f3n IP \u00fanica que las identifica, generalmente dividido en cuatro segmentos u &#8216;octetos&#8217;, cuya representaci\u00f3n es, por ejemplo, &#8216;172.29.183.217&#8217;, pero el recordar todas las direcciones en este formato ser\u00eda sumamente dif\u00edcil, por lo que utilizamos los nombres de dominio para referenciarlos.<\/p>\n<p>Existen varios productos que realizan esta funci\u00f3n y en todas las plataformas, pero el m\u00e1s usado es BIND (Berkeley Internet Name Domain), que es distribuido bajo la GNU GPL.<br \/>\n<!--more--><\/p>\n<p>La estructura b\u00e1sica del DNS es similar a un \u00e1rbol, donde se tiene una ra\u00edz o root, los Dominios de Nivel Principal (Top Level Domains) y los dominios de segundo nivel.<\/p>\n<p>Los nombres de dominio completamente calificados o FQDN (fully qualified domain name) se componen por lo general del nombre del host, un nombre de dominio secundario y un nombre de dominio primario o de nivel m\u00e1ximo (top-level domain), que son secciones organizadas jer\u00e1rquicamente.<\/p>\n<p>Por ejemplo: &#8216;www.ejemplo.com&#8217;. Ley\u00e9ndolo de derecha a izquierda tenemos un dominio primario (&#8216;COM&#8217;), un dominio secundario (&#8216;EJEMPLO&#8217;) y el nombre del host (&#8216;WWW&#8217;). Algunos dominios primarios son:<\/p>\n<p>org &#8211; Organizaciones no lucrativas.<br \/>\ncom &#8211; Organizaciones lucrativas.<br \/>\nnet &#8211; Organizaciones en Internet.<br \/>\ngob &#8211; Agencias gubernamentales en latinoam\u00e9rica.<br \/>\nmx &#8211; Sufijo de M\u00e9xico.<br \/>\nes &#8211; Sufijo de Espa\u00f1a. <\/p>\n<p>Existen cuatro tipos diferentes de servidores de resoluci\u00f3n de nombres:<\/p>\n<ul>\n<li>Master (maestro o primario). Aloja los registros autoritarios de una zona, responde las peticiones de resoluci\u00f3n de nombres como servidor de autoridad y delega copias a los servidores esclavo. <\/li>\n<li>Slave (esclavo o secundario). Responde a las peticiones de resoluci\u00f3n de nombres como servidor de autoridad, pero la informaci\u00f3n es distribuida por los servidores primarios. Se considera que como medida de seguridad, se requiere al menos uno de estos, preferentemente independiente de la infraestructura del primario (red, energia el\u00e9ctrica y ubicaci\u00f3n geogr\u00e1fica). <\/li>\n<li>Caching-only (s\u00f3lo de cache). Responde a las peticiones de resoluci\u00f3n de nombres pero no es servidor de autoridad, las respuestas las guarda en memoria por un per\u00edodo determinado. <\/li>\n<li>Forwarding (de reenv\u00edo). Reenvia las peticiones a una lista de servidores de nombres. <\/li>\n<\/ul>\n<p><b>Tipos de registros.<\/b><\/p>\n<p>Para ofrecer suficiente flexibilidad en la configuraci\u00f3n, se pueden declarar diversos tipos de registros, que hacen referencia a la funci\u00f3n del host. A continuaci\u00f3n veremos los m\u00e1s importantes.<\/p>\n<ul>\n<li>A (Address). Es el registro m\u00e1s usado, que define una direcci\u00f3n IP y el nombre asignado al host. Generalmente existen varios en un dominio.<\/li>\n<li>MX (Mail eXchanger). Se usa para identificar servidores de correo, se pueden definir dos o m\u00e1s servidores de correo para un dominio, siendo que el orden implica su prioridad. Debe haber al menos uno para un dominio.<\/li>\n<li>CNAME (Canonical Name). Es un alias que se asigna a un host que tiene una direcci\u00f3n IP valida y que responde a diversos nombres. Pueden declararse varios para un host.<\/li>\n<li>NS (Name Server). Define los servidores de nombre principales de un dominio. Debe haber al menos uno y pueden declararse varios para un dominio.<\/li>\n<li>SOA (Start Of Authority). Este es el primer registro de la zona y s\u00f3lo puede haber uno en cada archivo de la zona y s\u00f3lo est\u00e1 presente si el servidor es autoritario del dominio. Especifica el servidor DNS primario del dominio, la cuenta de correo del administrador y tiempo de refresco de los servidores secundarios.<\/li>\n<\/ul>\n<p><b>Configuraci\u00f3n<\/b><\/p>\n<p>Veamos como configurar BIND9 para disponer de un servidor DNS en una intranet, que resuelva dominios internos. Por ejemplo, en la intranet se utilizaran dominios que terminen en &#8220;marblestation.homeip.net&#8221; como &#8220;saturno.marblestation.homeip.net&#8221; o &#8220;luna.marblestation.homeip.net&#8221;. El servidor DNS se encargar\u00e1 de resolver esos dominios en sus respectivas IPs, adem\u00e1s de resolver otros dominios de Internet como &#8220;google.com&#8221;.<\/p>\n<p>Instalamos BIND9 y nos desplazamos a su directorio de configuraci\u00f3n:<\/p>\n<pre>\naptitude install bind9\ncd \/etc\/bind\/\n<\/pre>\n<p>Editamos named.conf.local y a\u00f1adimos la zona &#8220;marblestation.homeip.net&#8221;, haciendo referencia a su fichero de configuraci\u00f3n:<\/p>\n<pre>\nzone \"marblestation.homeip.net\" {\n    type master;\n    file \"\/etc\/bind\/db.marblestation\";\n};\n<\/pre>\n<p>Creamos el fichero de configuraci\u00f3n &#8220;db.marblestation&#8221; a partir de &#8220;db.local&#8221;:<\/p>\n<pre>\ncp db.local db.marblestation\n<\/pre>\n<p>Editamos &#8220;db.marblestation&#8221;, reemplazamos la palabra &#8220;localhost&#8221; por &#8220;marblestation.homeip.net&#8221;, cambiamos la IP &#8220;127.0.0.1&#8221; por la que queramos asignar al dominio y a\u00f1adimos al final del fichero todos los A, MX y CNAME que queramos, quedando:<\/p>\n<pre>\n;\n; BIND data file for local loopback interface\n;\n$TTL    604800\n@   IN  SOA marblestation.homeip.net. root.marblestation.homeip.net. (\n                  1     ; Serial\n             604800     ; Refresh\n              86400     ; Retry\n            2419200     ; Expire\n             604800 )   ; Negative Cache TTL\n;\n@           IN      NS          marblestation.homeip.net.\n@           IN      A           192.168.48.32\n@           IN      MX      0   marblestation.homeip.net.\nwww         IN      A           192.168.48.32\nsaturno     IN      CNAME       marblestation.homeip.net.\n<\/pre>\n<p>En este ejemplo vemos primeramente el dominio a resolver, &#8216;marblestation.homeip.net.&#8217; y el segundo es la cuenta de correo del administrador, &#8216;root.marblestation.homeip.net.&#8217; (sustituy\u00e9ndo el primer punto por arroba, lo que dejar\u00eda &#8216;root@marblestation.homeip.net&#8217;). Debemos notar que al final de cada dominio viene un punto, que identifica la ra\u00edz de este. El resto de los par\u00e1metros son:<\/p>\n<ul>\n<li>Serial: es un identificador del archivo, puede tener un valor arbitrario pero se recomienda que tenga la fecha con una estructura AAAA-MM-DD y un consecutivo. <\/li>\n<li>Refresco: n\u00famero de segundos que un servidor de nombres secundario debe esperar para comprobar de nuevo los valores de un registro. <\/li>\n<li>Reintentos: n\u00famero de segundos que un servidor de nombres secundario debe esperar despu\u00e9s de un intento fallido de recuperaci\u00f3n de datos del servidor primario. <\/li>\n<li>Expiraci\u00f3n: n\u00famero de segundos m\u00e1ximo que los servidores de nombre secundarios retendr\u00e1n los valores antes de expirarlos. <\/li>\n<li>TTL m\u00ednimo: Significa Time To Live y es el n\u00famero de segundos que los registros se mantienen activos en los servidores NS cach\u00e9 antes de volver a preguntar su valor real. <\/li>\n<\/ul>\n<p>A continuaci\u00f3n se definen los registros necesarios, cuyos tipos ya han sido explicados anteriormente en este documento.<\/p>\n<p>Cada vez que se cambia la configuraci\u00f3n de BIND9, debemos reiniciar el demonio:<\/p>\n<pre>\n\/etc\/init.d\/bind9 restart\n<\/pre>\n<p>Para que nuestra m\u00e1quina utilice el servidor de DNS que hemos configurado, debemos editar &#8220;\/etc\/resolv.conf&#8221; y dejamos \u00fanicamente la l\u00ednea:<\/p>\n<pre>\nnameserver 127.0.0.1\n<\/pre>\n<p>Se deber\u00eda hacer lo mismo con el resto de m\u00e1quinas de la intranet que vayan a utilizar el servidor, con la \u00fanica diferencia que habr\u00e1 que substituir la IP 127.0.0.1 por la IP que tenga el servidor en la red.<\/p>\n<p>Para comprobar el correcto funcionamiento, utilizamos el comando &#8220;host&#8221; el cual sirve para resolver dominios:<\/p>\n<pre>\n$ host marblestation.homeip.net\nmarblestation.homeip.net has address 192.168.48.32\nmarblestation.homeip.net mail is handled by 0 marblestation.homeip.net.\n<\/pre>\n<pre>\n$ host saturno.marblestation.homeip.net\nsaturno.marblestation.homeip.net is an alias for marblestation.homeip.net.\nmarblestation.homeip.net has address 192.168.48.32\nsaturno.marblestation.homeip.net is an alias for marblestation.homeip.net.\nsaturno.marblestation.homeip.net is an alias for marblestation.homeip.net.\nmarblestation.homeip.net mail is handled by 0 marblestation.homeip.net.\n<\/pre>\n<p>Si deseamos tambi\u00e9n disponer de resoluci\u00f3n de dominios inversa, es decir, que podamos preguntar por la IP &#8220;192.168.48.32&#8221; y el servidor DNS nos diga que pertenece a marblestation.homeip.net, debemos a\u00f1adir a &#8220;\/etc\/bind\/named.conf.local&#8221;:<\/p>\n<pre>\nzone \"192.in-addr.arpa\" {\n    type master;\n    file \"\/etc\/bind\/db.192\";\n};\n<\/pre>\n<p>Creamos el archivo de configuraci\u00f3n &#8220;\/etc\/bind\/db.192&#8221; a partir del &#8220;\/etc\/bind\/db.127&#8221;:<\/p>\n<pre>\ncd \/etc\/bind\/\ncp db.127 db.192\n<\/pre>\n<p>Editamos &#8220;\/etc\/bind\/db.192&#8221;, substituimos &#8220;localhost&#8221; por &#8220;marblestation.homeip.net&#8221; y cambiamos la \u00faltima l\u00ednea:<\/p>\n<pre>\n;\n; BIND reverse data file for local loopback interface\n;\n$TTL    604800\n@   IN  SOA marblestation.homeip.net. root.marblestation.homeip.net. (\n                  1     ; Serial\n             604800     ; Refresh\n              86400     ; Retry\n            2419200     ; Expire\n             604800 )   ; Negative Cache TTL\n;\n@   IN  NS  marblestation.homeip.net.\n32.48.168   IN  PTR marblestation.homeip.net.\n<\/pre>\n<p>De forma que, la \u00faltima linea indica que la IP [192.]168.48.32 (escrita a la inversa y omitiendo el 192 que ya se especifico en &#8220;named.conf.local&#8221;) corresponde al dominio marblestation.homeip.net.<\/p>\n<p>Podemos comprobar su funcionamiento reiniciando el demonio BIND9 y realizando una consulta:<\/p>\n<pre>\n$ \/etc\/init.d\/bind9 restart\n$ host 192.168.48.32\n32.48.168.192.in-addr.arpa domain name pointer marblestation.homeip.net.\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>* Fragmentos de texto extra\u00eddos del tutorial &#8220;C\u00f3mo configurar BIND&#8221; de Hugo Madrid Luna (Crowley) bajo FDL. BIND es el servidor de nombres de dominio m\u00e1s popular en Internet, que trabaja en todas las plataformas inform\u00e1ticas principales y se caracteriza por su flexibilidad y seguridad. Domain Name Service (DNS) es el servicio que resuelve los &hellip; <a href=\"https:\/\/www.marblestation.com\/?p=543\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Configuraci\u00f3n servidor DNS (bind9) en Ubuntu<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[],"class_list":["post-543","post","type-post","status-publish","format-standard","hentry","category-espanyol","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=543"}],"version-history":[{"count":1,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/543\/revisions"}],"predecessor-version":[{"id":1375,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/543\/revisions\/1375"}],"wp:attachment":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}