Configurar la resolución de nombres de dominio (DNS) en Linux

Configurar el nombre de la máquina

El nombre de la máquina lo establece durante el inicio el script /etc/init.d/hostname.sh ejecutando el comando:

hostname --file /etc/hostname

De modo que asigna a la máquina como nombre el contenido de /etc/hostname, que es (por ejemplo):

pc450

Mapeo de nombres a direcciones

El sistema de resolución de nombres de dominio (name resolver) se encarga de averiguar (resolver) la dirección IP asociada a un nombre de dominio: a esto se le llama mapeo (mapping).

El orden de las búsquedas DNS vendrá determinado bien por el archivo /etc/host.conf o bien por el archivo /etc/nsswitch.conf (Name Service Switch), según la versión de la librería libc que tenga nuestra máquina. Para asegurarnos, configuraremos ambos archivos para que las búsquedas DNS se hagan primero en el archivo /etc/hosts y después, si no encuentran allí el nombre, pregunten a los servidores que se indiquen en /etc/resolv.conf. El contenido de estos archivos será el siguiente:

  • /etc/host.conf: determina el orden de las búsquedas DNS. Incluirá la línea:
    order hosts,bind
  • /etc/nsswitch.conf: determina el orden de las búsquedas DNS. Incluirá la línea:
    hosts: files dns
  • /etc/hosts: contiene una lista de direcciones IP y los nombres de las máquinas correspondientes. Este será el primer archivo al que accederá el sistema cuando intente resolver un nombre de dominio. El contenido de /etc/hosts es:
    127.0.0.1      localhost.localdomain    localhost
    192.168.0.2    pc450.fransberns.com     pc450

    En este caso, accediendo a /etc/hosts el sistema puede resolver localhost y pc450. Para resolver cualquier otro nombre de host tendrá que seguir las instrucciones de /etc/resolv.conf

    Para decidir qué poner en /etc/hosts, tenemos dos opciones:

    1. si tenemos instalado un servidor DNS local en una de las máquinas de la red, pondremos su IP en /etc/resolv.conf, añadiendo la línea:
      nameserver <ip_del_servidor_dns_local>

      y en /etc/hosts sólo pondremos la dirección de loopback y la de la propia máquina. De esta manera, el sistema resolverá los nombres de las máquinas de la LAN accediendo al servidor DNS local.

    2. si no tenemos servidor DNS local, para que el sistema pueda resolver los nombres de las máquinas de la LAN tendremos que ponerlas en /etc/hosts, añadiendo líneas como:
      192.168.0.5    pc350.fransberns.com        pc350
      192.168.0.6    pc266.fransberns.com        pc266

      Este sistema es más incómodo porque tendremos que mantener actualizado el archivo manualmente.

    Descargar

  • /etc/resolv.conf: especifica el dominio al que pertenece nuestra máquina y la dirección de los servidores DNS. El contenido de /etc/resolv.conf es:
    domain fransberns.com
    nameserver 80.58.61.250
    nameserver 80.58.61.254
    • domain: dominio al que pertenece nuestra máquina. Cuando le pasemos al sistema el nombre de un host, como pc350, buscará pc350.fransberns.com.
    • nameserver: si el sistema ha buscado el host siguiendo las indicaciones de la línea domain y no lo ha encontrado, hará una consulta a los servidores DNS 80.58.61.250 y 80.58.61.254, en ese orden. Si tampoco lo encuentra, devolverá un error similar a Host "pc350" not found.

Para probar el mapeo de nombres a IPs usaremos el comando ping, que sirve tanto para la red local como para Internet, ya que usa /etc/hosts y /etc/resolv.conf (también sirve el comando traceroute). En cambio los comandos dig, nslookup y host sólo sirven para Internet, ya que no miran en /etc/hosts (sólo usan /etc/resolv.conf).

Mapeo inverso

Si lo que queremos es averiguar lo contrario del mapeo, es decir, qué nombre de dominio está asociado a una IP, recurriremos al mapeo inverso (reverse mapping). Existe un dominio llamado dominio inverso que se utiliza para resolver direcciones IPs a nombres de dominio: este dominio es in-addr.arpa

Mapeo inverso

El nombre de dominio inverso se crea poniendo las cifras de la IP en orden inverso y añadiendo .in-addr.arpa al final. Por ejemplo:

  • Dominio: www.telefonica.net
  • IP: 213.4.130.95
  • Dominio inverso: 95.130.4.213.in-addr.arpa

Para probar el mapeo inverso de IPs a nombres usaremos el comando dig, pero sólo lo realiza para IPs de Internet, ya que no mira en /etc/hosts, sólo usa /etc/resolv.conf (también sirven los comandos nslookup y host). Para poder hacer el mapeo inverso con las IPs de las máquinas de la red local tendremos que instalar un servidor DNS local.

Artículos en la categoría "Configurar la red en Linux"

  1. Configurar la resolución de nombres de dominio (DNS) en Linux
  2. Configurar una interfaz PPP en Linux
  3. Bluetooth en Linux
  4. Redes Wireless LAN (Wi-Fi) en Linux
  5. Unión de interfaces de red (channel bonding) en Linux
  6. Controlar la red en Linux

4 Comments:

  1. no puedo conectar el wirelles lan de mi laptop por favor ayudame,un saludo

  2. NECESITO CONFIGURAR LA RED PERO EN MINIX, AYUDENME

  3. Hola he configurado xampp y todo va bien pero sale mi IP no el dominio he reivisado la config y he cambiado todo pero por mas vueltas que le doy a todos los fichero sale la IP

    Gracias

  4. Hola.
    yo quisiera definir un nombre de un equipo pero que si este esta caido otro equipo con otra ip responda.

    se puede con los archivos de host?

    Gracias.