Saltar al contenido

¿Cómo funciona la interfaz de bucle invertido?

Siéntete libre de divulgar nuestra página y códigos con tus amigos, ayúdanos a hacer crecer nuestra comunidad.

Solución:

La interfaz loopback es una interfaz virtual. El único propósito de la interfaz de bucle invertido es devolver los paquetes que se le envían, es decir, todo lo que le envía se recibe en la interfaz. No tiene mucho sentido poner una ruta predeterminada en la interfaz loopback, porque el único lugar al que puede enviar paquetes es al trozo de cable imaginario que se enlaza desde la salida de la interfaz hasta la entrada. No hay nada que pueda cambiar este comportamiento de la interfaz loopback, para eso está codificado.

Cuando hace ping a 10.0.3.2, la respuesta no proviene de algún dispositivo externo, sino de la propia interfaz de loopback. Cuando agrega una dirección en la interfaz de bucle invertido con, por ejemplo

sudo ip addr add 10.0.3.1/24 dev lo

una ruta a 10.0.3.0/24 está agregado. Puedes ver esto con

ip route show table local

Algo como

local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1

debería aparecer Esta entrada de la tabla de enrutamiento indica que un paquete enviado a cualquier dirección entre 10.0.3.1 y 10.0.3.254 se envía a través de la lo interfaz, desde la que se devuelve inmediatamente.

EDITAR: aclaración como respuesta al comentario a continuación.

Esto es lo que sucede cuando hace ping a 10.0.3.2: el kernel obtiene un paquete IP para entregar con una dirección de destino 10.0.3.2. Al igual que con cualquier paquete a entregar, el núcleo consulta la tabla de enrutamiento. En este caso, la entrada coincidente es esta: local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1, que dice que el paquete debe entregarse a través del lo interfaz con la dirección de origen 10.0.3.1.

Ahora, debido a que el paquete fue entregado al lo interfaz, la interfaz loopback hace lo que normalmente hace: saca el paquete de la cola de envío y lo pone en la cola de recepción. Desde el punto de vista del kernel, ahora hemos recibido un paquete entrante listo para ser consumido por un proceso de servidor que escucha en un socket. (En el caso del ping, el núcleo lo procesa internamente). Ahora hemos recibido un paquete ICMP “remoto” con una dirección de destino de 10.0.3.2, que podría decirse que no es una de nuestras direcciones locales, pero se entregó al loopback interfaz sin embargo.

A continuación, el núcleo envía una respuesta al ping: un paquete de respuesta ICMP con las direcciones invertidas: 10.0.3.2 como dirección de origen y 10.0.3.1 como destino. Esto se entrega a través de la interfaz de bucle invertido al programa ping, lo que muestra que recibimos una respuesta de 10.0.3.2.

Si te ha resultado de utilidad este artículo, sería de mucha ayuda si lo compartieras con más programadores de esta manera contrubuyes a extender esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *