En las redes de computadoras , localhost es un nombre de host que se refiere a la computadora actual que se usa para acceder a él. Se utiliza para acceder a los servicios de red que se ejecutan en el host a través de la interfaz de red de bucle invertido . El uso de la interfaz de bucle invertido evita cualquier hardware de interfaz de red local .
Loopback
El mecanismo de bucle invertido local puede usarse para ejecutar un servicio de red en un host sin requerir una interfaz de red física, o sin hacer que el servicio sea accesible desde las redes a las que la computadora puede estar conectada. Por ejemplo, se puede acceder a un sitio web instalado localmente desde un navegador web mediante la URL http: // localhost para mostrar su página de inicio.
El nombre localhost normalmente se resuelve en la dirección de bucle invertido IPv4 127.0.0.1 y en la dirección de bucle invertido IPv6 :: 1 . [1]
Resolución de nombres
Los estándares de red IPv4 reservan todo el bloque de direcciones 127.0.0.0/8 (más de 16 millones de direcciones) para propósitos de loopback. [2] Eso significa que cualquier paquete enviado a cualquiera de esas direcciones se devuelve en bucle. La dirección 127.0.0.1 es la dirección estándar para el tráfico de bucle invertido IPv4; el resto no es compatible con todos los sistemas operativos. Sin embargo, se pueden usar para configurar múltiples aplicaciones de servidor en el host, todas escuchando en el mismo número de puerto. El estándar IPv6 asigna una única dirección para el loopback: :: 1 .
La resolución del nombre localhost a una o más direcciones IP normalmente se configura mediante las siguientes líneas en el archivo de hosts del sistema operativo :
127.0.0.1 localhost:: 1 localhost
El nombre también puede ser resuelto por servidores del Sistema de nombres de dominio (DNS), pero las consultas para este nombre deben resolverse localmente y no deben reenviarse a servidores de nombres remotos.
Además de la asignación de localhost a las direcciones de loopback ( 127.0.0.1 y :: 1 ), localhost también se puede asignar a otras direcciones IPv4 (loopback) y también es posible asignar otros nombres, o adicionales, a cualquier dirección de loopback. . No se garantiza que la asignación de localhost a direcciones distintas del rango de direcciones de bucle invertido designado en el archivo de hosts o en DNS tenga el efecto deseado, ya que las aplicaciones pueden asignar el nombre internamente.
En el sistema de nombres de dominio, el nombre localhost se reserva como un nombre de dominio de nivel superior , originalmente reservado para evitar confusiones con el nombre de host utilizado para fines de bucle invertido. [3] Los estándares IETF prohíben a los registradores de nombres de dominio asignar el nombre localhost .
Estándares IETF
El nombre localhost está reservado para propósitos de loopback por RFC 6761 ( Nombres de dominio de uso especial ), [4] que alcanzó el nivel de madurez estándar propuesto en febrero de 2013. El estándar establece una serie de consideraciones especiales que gobiernan el uso del nombre en el Sistema de nombres de dominio :
- Una consulta de dirección IPv4 o IPv6 para el nombre localhost siempre debe resolverse en la dirección de loopback respectiva, que se especifica en un estándar separado.
- Las aplicaciones pueden resolver el nombre en una dirección de bucle invertido por sí mismas o pasarlo a los mecanismos de resolución de nombres locales.
- Cuando un solucionador de nombres recibe una consulta de dirección (A o AAAA) para localhost , debe devolver las direcciones de loopback apropiadas y respuestas negativas para cualquier otro tipo de registro solicitado. Las consultas de localhost no deben enviarse a los servidores de nombres de almacenamiento en caché.
- Para evitar sobrecargar los servidores raíz del Sistema de nombres de dominio con tráfico, los servidores de nombres de almacenamiento en caché nunca deben solicitar registros de servidores de nombres para localhost , ni reenviar la resolución a servidores de nombres autorizados.
- Los registradores de DNS no pueden delegar nombres de dominio en el host local de dominio de nivel superior .
- Cuando los servidores de nombres autorizados reciban consultas de 'localhost' a pesar de las disposiciones mencionadas, resuélvalas de forma adecuada.
Las direcciones de loopback IPv4 están reservadas dentro del espacio de direcciones IPv4 por el estándar IETF "Direcciones IPv4 de uso especial" (RFC 5735). [5] La reserva se remonta al estándar de noviembre de 1986 "Números asignados" (RFC 990).
Por el contrario, el estándar IETF "Arquitectura de direccionamiento IP versión 6" (RFC 4291) reserva la única dirección de bucle de retorno IPv6 :: 1 dentro del espacio de direcciones IPv6. El estándar excluye la asignación de esa dirección a cualquier interfaz física, así como su uso como dirección de origen o destino en cualquier paquete enviado a hosts remotos. Cualquier paquete de este tipo que se transmita erróneamente no debe enrutarse, y todos los enrutadores o hosts que lo reciben deben descartarlo.
Procesamiento de paquetes
El procesamiento de cualquier paquete enviado a una dirección de bucle invertido se implementa en la capa de enlace de la pila TCP / IP . Dichos paquetes nunca se pasan a ningún controlador de interfaz de red (NIC) o controlador de dispositivo de hardware y no deben aparecer fuera de un sistema informático ni ser enrutados por ningún enrutador. Esto permite pruebas de software y servicios locales en ausencia de interfaces de red de hardware.
Los paquetes en bucle se distinguen de cualquier otro paquete que atraviesa la pila TCP / IP solo por la dirección IP especial a la que se dirigieron. Así, los servicios que finalmente los reciben responden según el destino especificado. Por ejemplo, un servicio HTTP podría enrutar paquetes dirigidos a 127.0.0.99:80 y 127.0.0.100:80 a diferentes servidores web, oa un solo servidor que devuelva diferentes páginas web. Para simplificar dicha prueba, el archivo de hosts puede configurarse para proporcionar nombres apropiados para cada dirección.
Los paquetes recibidos en una interfaz sin bucle invertido con una dirección de origen o destino de bucle invertido deben descartarse. A veces, estos paquetes se denominan paquetes marcianos . [6] Al igual que con otros paquetes falsos, pueden ser maliciosos y cualquier problema que puedan causar se puede evitar aplicando un filtrado falso .
Casos especiales
Las versiones de la base de datos MySQL diferencian entre el uso del nombre de host localhost y el uso de las direcciones 127.0.0.1 y :: 1 . [7] Cuando se usa localhost como destino en una interfaz de conector de cliente de una aplicación, la interfaz de programación de aplicaciones MySQL se conecta a la base de datos usando un socket de dominio Unix , mientras que una conexión TCP a través de la interfaz de loopback requiere el uso directo de la dirección explícita.
Una excepción notable al uso de las direcciones 127.0.0.0 / 8 es su uso en la detección de errores de ruta de seguimiento de conmutación de etiquetas multiprotocolo (MPLS), en la que su propiedad de no ser enrutable proporciona un medio conveniente para evitar la entrega de paquetes defectuosos a los usuarios finales.
Ver también
Referencias
- ^ "RFC4291: Arquitectura de direccionamiento IP versión 6" . IETF. Sección 2.5.3.
- ^ M. Cotton; L. Vegoda; R. Bonica; B. Haberman (abril de 2013). Registros de direcciones IP para fines especiales . Grupo de trabajo de ingeniería de Internet . doi : 10.17487 / RFC6890 . BCP 153. RFC 6890 . Actualizado por RFC 8190.
- ^ "RFC2606: Nombres DNS de nivel superior reservados" . IETF. Sección 2.
- ^ "RFC6761: Nombres de dominio de uso especial" . IETF. Sección 6.3.
- ^ "RFC5735: Direcciones IPv4 de uso especial" . IETF. Sección 4.
- ^ Raymond, Eric S. "El archivo de jerga" .
- ^ "MySQL :: MySQL 5.5 Reference Manual :: 4.1 Descripción general de los programas MySQL" .