¿Qué es el dispositivo de bucle invertido y cómo lo uso?

138

¿Qué son loopback y localhost ?

¿Por qué existen, para qué se usan y cómo los usaría?

Eliah Kagan
fuente
¿No son dos preguntas separadas en 1?
Anwar

Respuestas:

180

El dispositivo de bucle invertido es una interfaz de red virtual especial que su computadora utiliza para comunicarse consigo mismo. Se utiliza principalmente para diagnósticos y resolución de problemas, y para conectarse a servidores que se ejecutan en la máquina local.

El Propósito del Loopback

Cuando se desconecta una interfaz de red, por ejemplo, cuando un puerto Ethernet está desconectado o el Wi-Fi está apagado o no está asociado con un punto de acceso , no es posible la comunicación en esa interfaz, ni siquiera la comunicación entre su computadora y él mismo. La interfaz de bucle invertido no representa ningún hardware real, pero existe para que las aplicaciones que se ejecutan en su computadora siempre puedan conectarse a servidores en la misma máquina.

Esto es importante para la resolución de problemas (se puede comparar con mirar en un espejo). El dispositivo de bucle invertido a veces se explica simplemente como una herramienta de diagnóstico. Pero también es útil cuando un servidor que ofrece un recurso que necesita se ejecuta en su propia máquina .

Por ejemplo, si ejecuta un servidor web, tiene todos sus documentos web y podría examinarlos archivo por archivo. Es posible que también pueda cargar los archivos en su navegador, aunque con el contenido activo del lado del servidor, no funcionará de la manera en que lo hace cuando alguien accede a él normalmente.

Entonces, si desea experimentar el mismo sitio que otros, el mejor curso generalmente es conectarse a su propio servidor. La interfaz de bucle invertido facilita eso.

Direcciones en Loopback

Para IPv4 , a la interfaz de bucle invertido se le asignan todas las IP en el 127.0.0.0/8 bloque de direcciones . Es decir, a 127.0.0.1través de 127.255.255.254 todo representa tu computadora. Sin embargo, para la mayoría de los propósitos, solo es necesario usar una dirección IP, y eso es todo 127.0.0.1. Esta IP tiene el nombre de hostlocalhost asignado a ella.

Por lo tanto, para iniciar sesión como a bobtravés de SSH en el servidor SSH que se ejecuta en su propia máquina, usaría:

ssh bob@localhost

Al igual que otros adaptadores de red, el dispositivo de bucle invertido aparece en la salida de ifconfig. Su nombre es lo.

ek@Del:~$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:50121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4381349 (4.3 MB)  TX bytes:4381349 (4.3 MB)

Un ejemplo: TAZAS

Un uso común de producción (es decir, no solo diagnóstico) localhosten Ubuntu es realizar una configuración avanzada de la impresora. En un navegador web, vaya a:

http://localhost:631

CUPS ejecuta un servidor web en el puerto 631, y esto puede usarse para configurar la impresión, independientemente de la GUI que esté ejecutando (o incluso si no está ejecutando una GUI).

Captura de pantalla que muestra CUPS en un navegador web

Si intenta conectarse http://127.0.0.1:631, esto también funcionará. Sin embargo, si intenta conectarse http://127.0.0.2, no lo hará. Todas las 127.*.*.*direcciones identifican su computadora en la interfaz de bucle invertido, pero un programa de servidor puede decidir vincularse solo a una dirección IP específica.

Una diferencia notable de Windows

Si proviene de un entorno de Windows, puede esperar loopbackser sinónimo de sí mismo localhost(y, por lo tanto, poder hacer ping loopback, conectarse a los servidores loopback, etc.). Ese comportamiento es peculiar de Windows.

Otros significados de "bucle invertido"

El concepto general de loopback es un mecanismo a través del cual un mensaje o señal termina (o bucles) de regreso a donde comenzó.

Entonces, hay algunas otras formas en que se usa el bucle invertido en Ubuntu que no debe confundirse con el dispositivo de bucle invertido en la red.

Monturas de bucle

Para montar una imagen de disco en Ubuntu, puede ejecutar:

sudo mount -o loop image.iso /media/label

Esto generalmente se llama un dispositivo de bucle (y no un dispositivo de bucle invertido ), pero el término interfaz de archivo de bucle invertido se usa ocasionalmente.

Esto no tiene nada que ver con el dispositivo de bucle invertido en la red.

Sonido

Pulseaudio y otros sistemas de sonido proporcionan un mecanismo para "conectar" la entrada de línea a la salida de línea, de modo que la entrada de audio se repita en sus altavoces / auriculares. El módulo de bucle invertido de Pulseaudio facilita esto.

Aquí, es correcto usar el término loopback , pero al igual que los montajes de loop, esto tampoco tiene nada que ver con el dispositivo loopback en la red. (Y tampoco tiene nada que ver con los montajes de bucle).

Otras lecturas

Eliah Kagan
fuente
66
¿Por qué 127.0.0.0/8 se asigna a 127.0.0.1 a 127.255.255.254 en lugar de 127.0.0.0 a 127.255.255.255? (Lo siento si esto se percibe como un highjack.)
JellicleCat
55
Mencionó solo las direcciones de host utilizables y excluyó las direcciones de red y difusión. Tiene razón al decir que debería ser 127.0.0.0-127.255.255.255, pero el primero y el último tienen otros propósitos.
Gabriel Samfira
1
@Eliah, ¿debes localhostestar apuntando 127.0.0.1? ¿O también podría apuntar a otra dirección de bucle invertido, por ejemplo 127.0.0.2?
Pacerier
@GabrielSamfira, entonces, ¿por qué cuando intento conectarme a esas dos direcciones IP usando SSH (por ejemplo, ejecutando ssh 127.0.0.0), dirá "La red es inalcanzable" en lugar de "Conexión rechazada"?
MAChitgarha
3
@MAChitgarha La primera dirección IP en una subred es la dirección de identificación de red, y la última dirección IP es la dirección de difusión. Ninguno de estos puede asignarse a un host de forma predeterminada. La dirección de difusión se usa para direccionar cada host en una red, y la dirección de red se usa para identificar la propia red. Ver: en.wikipedia.org/wiki/IP_address
Gabriel Samfira