BIND: Servidor de Nombres de Dominio

Domain Name System, es el servicio gracias al cual podemos utilizar bonitos nombres de dominio en lugar de inmemorizables direcciones IP.
Bind es la aplicación más ampliamente utilizada para implementar estre servidor, y la vamos a instalar sobre un Debian Etch.
Mis condiciones de partida son:

  • Dirección IP fija proporcionada por el ISP (ej. 85.48.162.99). En españa en la fecha del artículo recomiendo Orange, ya que es el que menos cobra por este servicio (2 €/mes).
  • Nombre de dominio (ej. lebrijo.com) comprado a una Empresa Registradora. Recomiendo http://www.domiteca.com, a fecha del artículo me han dado un servicio muy eficaz, aunque ya sé que no es el más barato.

Para profundizar:

Origen http://www.isc.org/index.pl?/sw/bind/
Repositorio http://www.isc.org/index.pl?/sw/bind/
Paquete apt 9.3.4
Documentación (Castellano) http://bulma.net/body.phtml?nIdNoticia=1334
Documentación (Inglés) admin. Guide: http://www.isc.org/index.pl?/sw/bind/
http://www.isc.org/index.pl?/sw/bind/
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ network-dns.html
Ficheros Configuración: /etc/bind/named.conf.options
Conf zonas: /etc/bind/named.conf
Conf local: /etc/bind/named.conf.local
Control demonio: /etc/init.d/bind9
Puertos 53 TCP/UDP

Acciones previas

Si vamos a montar el servidor en la dirección anterior, tenemos que solicitar al registrador que nos delege la zona (lebrijo.com) a la IP fija que tenemos (85.48.162.99). Para que a todo el mundo que pregunte por algo.lebrijo.com venga a nuestro servidor a preguntar; ó por lo menos todos los servidores superiores cojan el fichero de zona alojado ahí, y respondan bien ante la pregunta ¿donde está algo.lebrijo.com?.
El registrador debe saber donde se controla la zona lebrijo.com. Ponemos nuestros DNS.

Veremos que aunque sean cuatro están referenciados al mismo servidor, lo ideal es que tengamos primario y secundarios por si se caen y todo eso….., pero somos humildes y solo tenemos un servidor.
En segundo lugar tendremos que abrir nuestro firewall, y/o hacer NAT en nuestro router de cabecera para que cualquier petición al puerto 85.48.162.99:53 sean respondidas por nuestro servidor.

Instalación

Instalamos, fácil en debian:

elite:~# apt-get install bind9
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
dnsutils ya está en su versión más reciente.
Paquetes sugeridos:
  bind9-doc
Se instalarán los siguientes paquetes NUEVOS:
  bind9
0 actualizados, 1 se instalarán, 0 para eliminar y 6 no actualizados.
Necesito descargar 441kB de archivos.
Se utilizarán 901kB de espacio de disco adicional después de desempaquetar.

Añadimos nuestras zonas al /etc/bind/named.conf

zone "lebrijo.com" {
      type master;
      file "/etc/bind/db.lebrijo.com";
};
zone "0.168.192.in-addr.arpa" {
	type master;
	file "/etc/bind/db.192.168.0";
};

Creamos un fichero de zona directa db.lebrijo.com:

;
; BIND data file for zone lebrijo.com
;
$TTL 3600        ; 1 hour
@    IN      SOA      ns1.lebrijo.com. root.lebrijo.com. (
                                2007083001      ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                604800          ; Expire
                                86400           ; Minimum TTL
                        )

; Servidores DNS
                IN      NS      ns1.lebrijo.com.
                IN      NS      ns2.lebrijo.com.
                IN      NS      ns3.lebrijo.com.
                IN      NS      ns4.lebrijo.com.

; Servidores de correo
                IN      MX      0	correo.lebrijo.com.

                IN      A       85.48.162.99

; Nombres de Máquina
localhost       IN      A       127.0.0.1
ns1             IN      A       85.48.162.99
ns2             IN      A       85.48.162.99
ns3             IN      A       85.48.162.99
ns4             IN      A       85.48.162.99
correo          IN      A       85.48.162.99
ntp             IN      A       85.48.162.99

; Webs servidas
www             IN      A       85.48.162.99
blog            IN      A       85.48.162.99

curriculum      IN      CNAME   www

Observemos varias cosas del fichero:

  • Marcamos los cuatro servidores dns a la misma máquina.
  • MX es la etiqueta de los servidores de correo. Abría que poner algún relay, pero como comentaba antes somos humildes.
  • Luego todo eso hay que direccionarlo a la IP propia. Cualquier nombre de máquina y de servicio.
  • Por último las webs que servimos.

Operación

Para que el servidor (ó cualquiera actuen como cliente) debemos añadir en primera línea de /etc/resolv.conf:

nameserver 85.48.162.99

Para reiniciar los servicios:

/etc/init.d/bind9 restart
/etc/init.d/networking restart

Cuando quieras propagar las zonas a los raices por que hayas añadido un registro, ó cambiado la configuración:

  • Cambias el campo Serial del fichero de zona (db.lebrijo.com), ya que en este campo se basan los servidores superiores para saber cual es el último. El número se suele componer de fecha y versión, pero podría ser un número incremental.
  •                  2007083001      ; Serial
  • Y haces un reload para que cargen las nuevas zonas y se propaguen.
  • /etc/init.d/bind9 reload

3 thoughts on “BIND: Servidor de Nombres de Dominio

  1. hola que tal, me gusto mucho la informacion y la entendo por completo, pero lo que deceo es saber lo principal como registro un dominio propio desde mi servidor, o si puedo una ves que tenga mi servidor dns puedo registrarlo atraves de algun panel de control de servidores..

    ya que dns significa “sistema de nombre de dominios” pero no encuentro documentacion sobre este tema, lo que quiero decir mas detalladamente es que me gustaria poder registrar dominios en mi servidor sin tener que ir a otra compañia que ofresca esos servicios. asi yo podria registrar el dominio que dece..

    me gustaria que me espliquen un poco mas sobre el tema ya que tengo un buen rato buscado informacion en google.

  2. Disculpe, yo quiero hacer un subdomio que sea misitio.midominio.com.mx mi archivo de configuracion de dns en named, donde tengo mi dominio midominio.com.mx.zone, ahy agregue mi subdominio y la direccion de DNS, reinicie el demonio, aun me faltaria algo u omiti algo?, lo unico que no eh podido hacer es el serial por que no entiendo bien si como es que tengo que modificarlo.

    cabe resaltar que ya hize mi virtualhost en el apache para este subdominio.

    podrian ayudarme?

    Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *