40.3. Iniciar el servidor de nombres BIND

El servidor de nombres BIND (Berkeley Internet Name Domain) ya está preconfigurado en SUSE Linux y puede iniciarse directamente después de la instalación. Una vez que la conexión a Internet funciona, basta con introducir 127.0.0.1 como servidor de nombres para localhost en /etc/resolv.conf, para que la resolución de nombres funcione sin necesidad de conocer el DNS del proveedor. De este modo BIND utiliza los servidores de nombres raíz (root name servers) para la resolución de los nombres, lo que por otra parte es mucho más lento. Por lo general, siempre se debería indicar la dirección IP del DNS del proveedor en el apartado forwarders del archivo de configuración /etc/named.conf bajo forwarders para conseguir una resolución de nombres eficaz y segura. Cuando funciona de esta forma, el servidor de nombres actúa en modo “caching-only”. No se convierte en un DNS real hasta que no se configura con zonas. El directorio de documentación /usr/share/doc/packages/bind/sample-config incluye un ejemplo sencillo.

[Tip]Adaptación automática de la configuración del servidor de nombres

Dependiendo del tipo de conexión a Internet o del entorno de red actual, la configuración del servidor de nombres puede adaptarse automáticamente a las circunstancias de cada momento. Para ello asigne el valor yes a la variable MODIFY_NAMED_CONF_DYNAMICALLY del archivo /etc/sysconfig/network/config.

No se debería configurar ningún dominio oficial mientras este no haya sido asignado por la institución en cuestión – para “.es” ES-NIC es la organización que se encarga de ello. Aunque se disponga de un dominio propio, tampoco se debería utilizar mientras el proveedor se encargue de administrarlo. En caso contrario BIND deja de reenviar (forward) consultas para ese dominio y, por ejemplo, el servidor Web que se encuentra en el centro de datos del proveedor deja de ser accesible.

El servidor de nombres puede iniciarse desde la línea de comandos como superusuario root mediante el comando rcnamed start. Si a la derecha de la pantalla se muestra “done” en color verde, significa que el daemon del servidor de nombres (llamado named) se ha iniciado correctamente. Los programas host o dig permiten comprobar inmediatamente el funcionamiento en la máquina local. Como servidor predeterminado ha de constar localhost con la dirección 127.0.0.1. De no ser así, es posible que /etc/resolv.conf contenga un servidor de nombres equivocado o que este archivo sencillamente no exista. Con el comando host 127.0.0.1 se puede comprobar si todo va bien. Si aparece un mensaje de error lo mejor es comprobar si el daemon named está realmente en funcionamiento mediante el comando rcnamed status En caso de error, es posible averiguar el origen del mismo mediante los mensajes en el archivo /var/log/messages.

Para utilizar el servidor de nombres del proveedor o cualquier otro que ya exista en la red local como “forwarder”, se introduce este u otro en la entrada forwarders del apartado options. Las direcciones IP utilizadas en el Ejemplo 40.1, “Opciones de reenvío o forwarding en named.conf” han sido escogidas al azar y deben modificarse en función de su sistema.

Ejemplo 40.1. Opciones de reenvío o forwarding en named.conf

options { 
        directory "/var/lib/named";
        forwarders { 10.11.12.13; 10.11.12.14; };
        listen-on { 127.0.0.1; 192.168.0.99; };
        allow-query { 127/8; 192.168.0/24; };
        notify no;
        };

Detrás de options se encuentran las entradas para las zonas localhost y 0.0.127.in-addr.arpa. La entrada type hint ha de estar siempre presente. No es necesario modificar los archivos correspondientes, ya que funcionan tal y como están. Además es importante que exista un ; al final de todas las entradas y que los corchetes estén correctamente colocados. Al haber modificado el archivo de configuración /etc/named.conf o los archivos de zona, es preciso que BIND vuelva a leer estos archivos. Esto se realiza con el comando rcnamed reload. Otra posibilidad es la de reiniciar el servidor mediante rcnamed restart. El comando para detenerlo es rcnamed stop.