O que é uma interface de Loopback
Interface de Loopback
Uma interface de loopback é uma interface de rede virtual que permite que um cliente e um servidor no mesmo host se comuniquem entre si usando a pilha de protocolos TCP/IP.
Para a interface de loopback é reservado todo o bloco de endereços IP classe A com identificação de rede 127.0.0.0/8, e por convenção, a maioria dos sistemas atribuem o endereço IP 127.0.0.1 a esta interface (::1 em redes IPv6), além de usar o nome localhost para identificá-la.
Um datagrama IP enviado à interface de loopback não deve aparecer em nenhuma rede, nem ser roteado para nenhum dispositivo de roteamento, devendo ser processado inteiramente dentro do próprio host que o originou. Se um pacote com destino a uma interface de loopback for recebido em uma interface, sem que tenha sido originado no mesmo host, deve ser descartado, pois pode se tratar de um pacote malicioso.
Além disso, qualquer pacote enviado para um endereço IP do próprio host é enviado automaticamente para a interface de loopback. Veja na figura a seguir que pacotes enviados com o programa ping para o próprio IP da interface são processados pela interface de loopback (captura com Wireshark):
Porém, ao tentarmos capturar os mesmos pacotes usando a interface ethernet da máquina, nada é exibido, provando o processamento de pacotes no próprio host:
O mecanismo da interface de loopback pode ser usado para propósitos de testes de software ou de conectividade, permitindo verificar a funcionalidade de parte da pilha TCP/IP em uma máquina. Os pacotes enviados a uma interface de loopback nunca chegam à interface de rede física da máquina, o que permite inclusive testar software mesmo na ausência de tal interface de hardware.
Abaixo temos a captura de tela de um pacote ICMP sendo enviado à interface de loopback de um computador usando o programa ping no prompt de comandos do Windows. Note o TTL de 128 e os tempos máximo, mínimo e médio de 0ms da transmissão:
A interface de loopback aparece como se fosse uma camada de enlace para a camada de internet da pilha TCP/IP, de modo que a camada de internet (rede no modelo OSI) envia um datagrama IP para a interface de loopback como se estivesse enviando à camada de enlace normal, e a interface de loopback retorna o datagrama à fila de entrada da camada de internet.
Veja na figura a seguir a saída do comando ifconfig lo no Linux, que mostra a configuração da interface de loopback do sistema:
Note na figura o endereço 127.0.0.1 com a máscara de sub-rede 255.0.0.0 e o escopo da interface: Máquina, o que significa que os datagramas enviados a essa interface permanecem no host. Note também o MTU de 65536, bem diferente do usual para quadros Ethernet (1500).
Algumas observações interessantes:
- Tudo o que é enviado a um endereço de loopback é tratado como um pacote IP de entrada.
- Tudo o que for enviado a um dos IPs do host a partir do próprio host é enviado à interface de loopback.
- Pacotes que são enviados a endereços de broadcast ou de multicast são copiados para a interface de loopback e então enviados para a interface Ethernet do host.
Aplicações da interface de loopback
As principais aplicações de uma interface de loopback são:
- Diagnóstico de problemas e troubleshooting
- Testes de software e conectividade
- Conexão a servidores que rodam na própria máquina.
- Configuração de serviços (por exemplo, CUPS no Linux).
Por exemplo, podemos testar o funcionamento de um servidor SSH mesmo sem termos acesso a um cliente ssh de outra máquina no momento. Basta se conectar ao ssh usando o endereço de loopback, como ilustra a figura a seguir:
É isso aí! Apresentamos neste tutorial a definição e funcionamento de uma interface de loopback. Vamos abordar na próxima lição a noção de MTU. Até mais!
Quer aprender tudo sobre Redes de Computadores? Minha dica é o livro Redes de Computadores – 2ª Edição, de Gabriel Torres, que você pode adquirir em formato digital com preço promocional clicando na capa do livro a seguir:
Muito bom, obrigado por compartilhar!
Valeu Adriano!
Muito bom! Parabéns pela didática e paciência!
Valeu Marcos!!!
Muito bom! Obrigado por compartilhar.
Abraços!
Valeu Renato!
Parabéns Fábio! Didática excelente!
Obrigado Emerson!
Boa tarde Fábio!
Tenho dúvidas sobre o uso de 0.0.0.0 e 127.0.0.1. Isso influencia em algo? Se sim, qual dos dois seria melhor? Ou, podemos utilizar os dois juntos nos hosts?
Excelente, didática muito boa e bem explicado.
Obrigado Jorge!