5.6. Preparación de los ficheros hosts y networks

Una vez ha dividido su red en subredes, debe habilitar un mecanismo simple de resolución de nombres usando el fichero /etc/hosts. Si no va a usar los sistemas DNS o NIS para la resolución de nombres, debe poner todos los nombres de las diferentes máquinas en el fichero hosts.

Incluso si planea utilizar los servicios DNS y NIS en condiciones normales de operación, es conveniente tener un reducido número de máquinas en /etc/hosts. Debe tener algún tipo de resolución de nombres, incluso cuando no hay servicios de red ejecutándose. Este es el caso del arranque. Se trata, no sólo de una cuestión de conveniencia, sino que permite el uso de nombres simbólicos para las máquinas citadas en los scripts de red rc. De esta forma, para cambiar las direcciones IP, sólo tiene que copiar el fichero hosts actualizado a todas las máquinas y rearrancar, en vez de tener que modificar un gran número de ficheros rc por separado. Generalmente, también debe incluir los nombres y direcciones locales en hosts, añadiendo todas las pasarelas y servidores NIS usados. [1]

Debería asegurarse de que el subsistema de resolución utiliza la información del fichero hosts únicamente. Los ficheros de ejemplo que vienen con su software DNS o NIS pueden producir resultados extraños. Para forzar a que todas las aplicaciones utilicen /etc/hosts de forma exclusiva cuando buscan una dirección IP, debe editar el fichero /etc/host.conf. Desactive con comentarios cualquier línea que comience por order añadiendo una almohadilla (#) e incluya la siguiente línea
    order hosts

La configuración de la biblioteca de resolución se describe en detalle en Capítulo 6.

El fichero hosts contiene un registro por línea, consistente en una dirección IP, un nombre de máquina y de forma opcional, una lista de alias para esa máquina. Los campos se separan por tabuladores o espacios y el campo con la dirección debe empezar en la primera columna. Cualquier cosa a continuación de una almohadilla (#) es interpretada como un comentario y es consecuentemente ignorado.

Los nombres de las máquinas pueden ser con cualificación completa, o relativos al dominio local. Para la máquina vale, el registro generalmente incluiría el nombre con cualificación completa, vale.vbrew.com, y vale en el fichero hosts, de forma que pueda ser referido usando el nombre oficial y el nombre local que es más corto.

Este es un ejemplo del aspecto que el fichero hosts vlager-if1 y vlager-if2, correspondientes a las direcciones de ambas interfaces de la máquina existentes en vlager:

    #
    # Fichero Hosts de la Cervecera Virtual/Vinatera Virtual
    #
    # IP            FQDN                 aliases
    #
    127.0.0.1       localhost
    #
    172.16.1.1      vlager.vbrew.com      vlager vlager-if1
    172.16.1.2      vstout.vbrew.com      vstout
    172.16.1.3      vale.vbrew.com        vale
    #
    172.16.2.1      vlager-if2
    172.16.2.2      vbeaujolais.vbrew.com vbeaujolais
    172.16.2.3      vbardolino.vbrew.com  vbardolino
    172.16.2.4      vchianti.vbrew.com    vchianti

Del mismo modo que con las direcciones IP, a veces también puede interesarle usar nombres simbólicos para los números de red. Con este objeto, el fichero hosts tiene un compañero llamado /etc/networks, que asocia nombres de red con los números correspondientes y viceversa. En la Cervecera Virtual, podríamos instalar un fichero networks como éste: [2]
    # /etc/networks para la cervecera virtual.
    brew-net      172.16.1.0
    wine-net      172.16.2.0

Notas

[1]

Sólo necesita la dirección del servidor NIS si usa el NYS de Peter Eriksson. Otras implementaciones de NIS sólo encuentran sus servidores en ejecución usando ypbind.

[2]

Dése cuenta de que los nombres en networks no pueden coincidir con nombres de máquinas del fichero hosts o algunos programas pueden producir extraños resultados.