IPv4 aloca um bloco inteiro de endereços de loopback IPv4, 127.0.0.0/8
. O IPv6, por outro lado, aloca apenas um único endereço de loopback, ::1
.
Parece surpreendente que o IPv6 seja tão mesquinho em sua alocação de endereço(s) de loopback, uma vez que, em geral, ele fornece um grande aumento no espaço de endereço.
No IPv4, achei útil poder usar vários endereços de loopback. Por exemplo, para certas configurações complexas de DNS, posso instalar dois servidores DNS locais, um em 127.0.0.1:53
e outro em 127.0.1.1:53
. (É um pouco mais fácil referir-se a diferentes servidores usando diferentes endereços IP, em vez de usar números de porta não padrão em um único endereço IP.) Não posso usar essa estratégia em IPv6 com apenas um endereço de loopback.
Que boas justificativas poderiam ter para alocar apenas um único endereço de loopback para IPv6, ao contrário do IPv4?
Eles não são necessários. Simples assim.
Você sempre pode atribuir endereços locais ou privados de link, conforme necessário, a um adaptador de loopback - no caso raro, você realmente faz isso.
Eu diria que a maioria das pessoas nem sabe que você pode usar qualquer coisa além de 127.0.0.1 e você é a primeira pessoa que encontrei em cerca de 20 anos afirmando usar mais do que isso. Sem brincadeira.
A maioria das configurações de vários servidores não precisa disso (o cabeçalho do host HTTP é usado em vez disso - e sim, eu sei que isso é limitado a http, mas eu diria que a maioria dos servidores que precisam disso são de desenvolvedores da web).
Se você quiser mais endereços disponíveis localmente, basta atribuir endereços de um intervalo ULA de sua escolha e atribuí-los à máquina local (na interface de loopback, se desejar). Isso lhe dará todos os endereços que você deseja. Você não precisa receber um bloco especial para atribuir endereços aos quais sua máquina responderá localmente.
A arquitetura de endereçamento IPv6 tem muito espaço. O espaço /16 para multicast de interface local seria adequado para serviços locais.
AFAIK, a API do soquete, é o limite aqui, porque os endereços multicast e unicast não podem ser usados de forma intercambiável.