¿Alguna vez te has preguntado cómo tu computadora sabe que localhost es 127.0.0.1? ¿O por qué, en plena era de la nube, sigue existiendo un archivo llamado hosts en tu sistema operativo? La respuesta nos pide un viaje al pasado, a los días en que internet era una red pequeña llamada ARPANET y los administradores de sistemas cargaban manualmente un archivo de texto para que las computadoras pudieran comunicarse.
Hoy, nuestros dispositivos en Internet usan el DNS (Domain Name System), un sistema distribuido que traduce nombres de dominio como «wikipedia.org» en direcciones IP numéricas (por ejemplo, 185.15.58.224). Para poder comunicarnos con otros dispositivos en Internet, necesitamos conocer este número identificador que es la dirección IP.
Si consultamos manualmente a un servidor DNS, cosa que nuestras aplicaciones hacen constantemente de forma transparente para nosotros, obtendremos algo como esto.

Pero esto no siempre fue así. En los años 70 y principios de los 80, antes del DNS, las computadoras en ARPANET dependían de un archivo llamado HOSTS.TXT. Este archivo, mantenido manualmente por el Stanford Research Institute (SRI), funcionaba como una guía telefónica global. Contenía nombres de hosts (equivalentes a los dominios actuales, como «UCLA») y sus direcciones IP. Cada computadora debía descargar periódicamente este archivo desde un servidor central para conocer cómo contactar a otras en la red.
Obviamente, esto exigía una actualización constante. Cada vez que alguien nuevo se conectaba a la red, como cuando una universidad añadía una nuea computadora, tenía que comunicárselo a SRI, había que actualizar el HOSTS.TXT, y el resto tenía que volver a descargarlo.
El sistema funcionó… hasta que la red creció.

Mantener un archivo centralizado se volvió insostenible. Los conflictos de nombres eran frecuentes, las actualizaciones requerían esfuerzo manual y los retrasos eran inevitables
Así, en 1983, Paul Mockapetris propuso una solución revolucionaria: el DNS, un sistema distribuido que automatizaba la resolución de nombres mediante una jerarquía de servidores, eliminando la dependencia de un archivo único.
Pero aquí curiosamente, el DNS no eliminó por completo el fichero de hosts. Por razones de compatibilidad y flexibilidad, los sistemas operativos modernos aún incluyen un archivo hosts local, como el /etc/hosts en Linux o el hosts en Windows, habitualmente en el directorio C:\Windows\System32\drivers\etc\. Este fichero podemos editarlo a mano contando con los permisos apropiados; esto es, por ejemplo en caso de Linux utilizando el comando sudo, o en Windows ejecutando un editor como el Notepad con permisos de administrador.

¿Para qué sirve hoy el fichero hosts? A veces, queremos anular parcial y temporalmente el DNS. Por ejemplo, nos sirve en desarrollo web, para probar aplicaciones con dominios personalizados sin modificar DNS públicos. Como herramienta de diagnóstico, eliminando el DNS como posibilidad si una aplicación falla configurando un dominio en el hosts. También para darle nombre a dispositivos en nuestra red local. O incluso para bloquear sitios redirigiendo dominios molestos (como publicidad) al 127.0.0.1, impidiendo su carga.
El fichero hosts es pues un fósil vivo, un vestigio de la era pre-DNS; pero le hemos encontrado nuevos usos, así que sigue ahí, y no parece que vaya a desaparecer pronto.

Pingback: El archivo hosts: origen, evolución y utilidad actual en redes modernas - Hemeroteca KillBait