03 - Loopback (127.0.0.0)
video: https://youtu.be/... no frontmatter da nota.Loopback (127.0.0.0/8)
1. Definição Fundamental
O Loopback é um endereço IP reservado que aponta diretamente para o próprio dispositivo onde o comando é gerado. Imagine-o como um espelho: quando você envia dados para este endereço, a pilha de protocolos TCP/IP do sistema operacional intercepta os pacotes e os devolve imediatamente para si mesma.
Os dados não saem para o cabo de rede nem para o sinal de Wi-Fi. Tudo acontece internamente na memória e no processador do computador, o que torna a comunicação praticamente instantânea (latência na casa dos microssegundos).
Características Formais
- Faixa reservada:
127.0.0.0/8(16.777.214 endereços) - IP padrão:
127.0.0.1(conhecido comolocalhost) - Hostname canônico:
localhost - RFC de referência: RFC 5735 (Special Use IPv4 Addresses, 2010), que consolidou a RFC 3330 e a RFC 1700
- Não roteável: roteadores descartam pacotes com origem ou destino 127.x.x.x
2. A Faixa Reservada: 127.0.0.0/8
Embora o endereço mais famoso seja o 127.0.0.1, o protocolo IPv4 reservou uma Classe A inteira apenas para testes de loopback. Isso significa que qualquer endereço que comece com 127 é um endereço de loopback.
- O IP Padrão:
127.0.0.1(conhecido pelo nome de host localhost). - O Intervalo: Vai de
127.0.0.0até127.255.255.255(16 milhões de endereços). - Teste Rápido: Se você abrir o terminal e digitar
ping 127.8.9.10, sua própria máquina responderá, provando que toda a faixa pertence ao loopback.
$ ping -c 2 127.45.67.89
PING 127.45.67.89 (127.45.67.89) 56(84) bytes of data.
64 bytes from 127.45.67.89: icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from 127.45.67.89: icmp_seq=2 ttl=64 time=0.018 ms
Por que reservar uma Classe A inteira?
A decisão histórica (RFC 990, 1986) de reservar toda a faixa 127/8 foi pragmática: como os roteadores da época usavam o primeiro octeto para identificar a classe, reservar 127 como Classe A garantia que o bit de prefixo fosse 0 (compatível com a faixa) e que o endereço nunca fosse atribuído a uma rede real. Mesmo sendo um desperdício de 16 milhões de endereços teóricos, na prática apenas 127.0.0.1 é amplamente utilizado; o restante da faixa é raramente explorado.
3. Implementação no Kernel
No Linux, o loopback é implementado como uma interface virtual chamada lo. Ela é criada automaticamente no boot e não depende de hardware físico:
$ ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
Características únicas da interface lo:
- MTU elevado: 65536 bytes (em vez de 1500 do Ethernet), pois não há fragmentação L2.
- Sem endereço MAC real: usa
00:00:00:00:00:00(Linux) ou um valor localmente administrado. - State UNKNOWN: não há portadora física a detectar.
- Sem latência: pacotes nunca entram na fila de transmissão da NIC.
Em Windows, a interface é chamada de "Loopback Pseudo-Interface 1" e pode ser visualizada com ipconfig /all ou Get-NetAdapter.
4. Para que Serve o Loopback? (Casos de Uso)
A. Teste da Pilha TCP/IP
Se o seu computador não consegue navegar na internet, o primeiro teste técnico é o ping 127.0.0.1:
- Se responder: o software de rede do sistema operacional está instalado e funcionando corretamente.
- Se falhar: o problema é grave e interno ao SO (drivers corrompidos, pilha TCP/IP quebrada, firewall bloqueando ICMP local).
$ ping -c 4 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.031 ms
--- estatísticas ---
4 packets transmitted, 4 received, 0% packet loss
B. Desenvolvimento de Software
Programadores usam o loopback para testar sites e aplicativos antes de colocá-los na internet. Você pode rodar um banco de dados ou um servidor web na sua máquina e acessá-lo via http://127.0.0.1 ou http://localhost sem precisar de conexão externa.
# Rodando um servidor web local
$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
# Em outro terminal
$ curl http://127.0.0.1:8000/
$ curl http://localhost:8000/
Serviços comuns que rodam em loopback por padrão: MySQL (127.0.0.1:3306), PostgreSQL (127.0.0.1:5432), Redis (127.0.0.1:6379), Nginx, Apache, Node.js.
C. Segurança e Arquivo Hosts
O endereço de loopback é frequentemente usado no arquivo hosts do sistema para bloquear sites maliciosos ou anúncios. Ao redirecionar o endereço de um site de spam para 127.0.0.1, o computador tenta procurar o site dentro de si mesmo, não encontra nada e a conexão é abortada instantaneamente.
# Arquivo /etc/hosts (Linux/macOS) ou C:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost
127.0.0.1 ads.tracker.com
127.0.0.1 malware-site.example
::1 localhost
D. Loopbacks de Roteador
Em roteadores Cisco, Juniper e em servidores Linux, é comum criar interfaces loopback virtuais com IPs públicos para identificação do roteador (Router ID em OSPF, BGP update-source, etc.). Essas interfaces nunca caem (não dependem de link físico), garantindo que o IP do roteador permaneça alcançável mesmo se uma interface física cair.
Cisco IOS:
interface Loopback0
ip address 203.0.113.1 255.255.255.255
5. Por que é "Proibido" na Rede Real?
Roteadores são configurados (por padrão e por especificação) para nunca encaminhar pacotes que tenham o endereço de destino começando com 127. Se um pacote desses aparecesse em um cabo de rede, seria considerado um erro ou uma tentativa de ataque (spoofing). O loopback deve ser estritamente local.
A RFC 1812 (Requirements for IP Version 4 Routers) determina explicitamente na seção 4.2.2.11 que um roteador deve descartar qualquer pacote recebido em uma interface física com endereço de origem ou destino em 127.0.0.0/8.
6. Equivalente em IPv6
No IPv6, o equivalente ao 127.0.0.1 é o endereço ::1 (em notação completa 0:0:0:0:0:0:0:1). Ele pertence ao bloco ::1/128 e tem exatamente as mesmas características: não roteável, interno ao host, usado para testes locais.
$ ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.022 ms
7. Comparações Rápidas
| Característica | IPv4 | IPv6 |
|---|---|---|
| Endereço padrão | 127.0.0.1 |
::1 |
| Bloco reservado | 127.0.0.0/8 |
::1/128 |
| Hostname | localhost |
localhost |
| Interface Linux | lo |
lo |
| Atravessa roteador | Não | Não |
8. Resumo Técnico
| Atributo | Valor |
|---|---|
| Faixa reservada | 127.0.0.0/8 (RFC 5735) |
| IP padrão | 127.0.0.1 |
| Hostname | localhost |
| Implementação | Interface virtual lo no kernel |
| Latência típica | < 0,1 ms (sem fila de hardware) |
| Roteável | Não — descartado por roteadores (RFC 1812) |
| Equivalente IPv6 | ::1/128 |
9. Conclusão
O loopback é o endereço mais utilizado na rotina de qualquer desenvolvedor e administrador de redes, mesmo que poucos saibam a história por trás dele. Sua existência como /8 inteiro é uma herança dos anos 1980, mas cumpre com perfeição seu papel: oferecer um canal instantâneo de comunicação interna ao próprio host, isolado do mundo exterior, ideal para testes de pilha TCP/IP, desenvolvimento de serviços locais e identificação de roteadores. Conhecer o loopback é entender um dos mecanismos de segurança implícitos mais elegantes do TCP/IP.