Qual é a diferença entre 127.0.0.1 e 0.0.0.0?
A maioria de nós já ouviu falar de ‘127.0.0.1 e 0.0.0.0’, mas provavelmente não deu muita atenção a eles, mas se ambos realmente parecem apontar para o mesmo local, então qual é a diferença real entre os dois? A postagem de perguntas e respostas do superusuário ajuda a esclarecer as coisas para um leitor confuso.
A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas voltado para a comunidade.
Foto cedida por Kate Gardiner (Flickr).
A questão
O leitor de superusuário Sagnik Sarkar quer saber qual é a diferença entre 127.0.0.1 e 0.0.0.0:
Eu entendo que 127.0.0.1 aponta para localhost e que 0.0.0.0 também faz bem (me corrija se eu estiver errado). Então, qual é a diferença entre 127.0.0.1 e 0.0.0.0?
Qual é a diferença entre 127.0.0.1 e 0.0.0.0?
A resposta
O contribuidor do SuperUser DavidPostill tem a resposta para nós:
Qual é a diferença entre 127.0.0.1 e 0.0.0.0?
- 127.0.0.1 é o endereço de loopback (também conhecido como localhost).
- 0.0.0.0 é um meta-endereço não roteável usado para designar um alvo inválido, desconhecido ou não aplicável (um marcador de posição "sem endereço específico").
No contexto de uma entrada de rota, geralmente significa a rota padrão.
No contexto de servidores, 0.0.0.0 significa todos os endereços IPv4 na máquina local. Se um host tiver dois endereços IP, 192.168.1.1 e 10.1.2.1, e um servidor em execução no host ouvir 0.0.0.0, ele poderá ser acessado em ambos os IPs.
Qual é o endereço IP 127.0.0.1?
127.0.0.1 é o endereço de protocolo da Internet (IP) de loopback, também conhecido como localhost. O endereço é usado para estabelecer uma conexão IP com a mesma máquina ou computador que está sendo usado pelo usuário final.
A mesma convenção é definida para computadores que suportam endereçamento IPv6 usando a conotação de :: 1. Estabelecer uma conexão usando o endereço 127.0.0.1 é a prática mais comum; no entanto, o uso de qualquer endereço IP na faixa de 127… * funcionará da mesma maneira ou de maneira semelhante. A construção de loopback fornece a um computador ou dispositivo capaz de rede a capacidade de validar ou estabelecer a pilha IP na máquina.
Fonte: 127.0.0.1 - Quais são seus usos e por que é importante?
Endereços Especiais
O número de rede de classe A 127 é atribuído ao loopback ou seja, um datagrama enviado por um protocolo de nível superior para um endereço de rede 127 deve fazer um loop de volta dentro do host. Sem datagrama enviei para um endereço de rede 127 deve sempre aparecer em qualquer rede em qualquer lugar.
Fonte: Números de Rede
Se for toda a classe A, qual é o ponto de outros valores arbitrários para os últimos três octetos?
O objetivo do intervalo de loopback é testar a implementação do protocolo TCP / IP em um host. Como as camadas inferiores estão em curto-circuito, o envio para um endereço de loopback permite que as camadas superiores (IP e acima) sejam testadas com eficácia, sem a chance de problemas nas camadas inferiores se manifestando. 127.0.0.1 é o endereço mais comumente usado para fins de teste.
Fonte: Endereços IP reservados, loopback e privados
Para obter mais informações, consulte o Pergunte ao Ubuntu pergunta: O que é o dispositivo de loopback e como faço para usá-lo?
Qual é o endereço IP 0.0.0.0?
0.0.0.0 é uma sintaxe de endereço válida. Portanto, deve ser analisado como válido sempre que um endereço IP na notação decimal com pontos tradicional for esperado. Depois de analisado e convertido em um formato numérico viável, seu valor determina o que acontece a seguir.
O valor zero tem um significado especial. Então é válido, mas tem um significado que pode não ser apropriado (e, portanto, tratado como inválido) para circunstâncias específicas. É basicamente o marcador de posição "sem endereço específico". Para coisas como ligação de endereço de conexões de rede, o resultado pode ser atribuir um endereço de interface apropriado à conexão. Se você o estiver usando para configurar uma interface, ele pode remover um endereço da interface. Depende do contexto de uso para determinar o que "nenhum endereço específico" realmente faz.
No contexto de uma entrada de rota, geralmente significa a rota padrão. Isso acontece mais como resultado da máscara de endereço, que seleciona os bits a serem comparados. Uma máscara de 0.0.0.0 não seleciona bits, portanto, a comparação sempre será bem-sucedida. Portanto, quando essa rota é configurada, sempre há algum lugar para os pacotes irem (se configurados com um destino válido).
Em alguns casos, apenas '0' também funcionará e terá o mesmo efeito. Mas isso não é garantido. O formulário 0.0.0.0 é a maneira padrão de dizer "nenhum endereço específico" (no IPv6, isso é ::0 ou apenas ::).
Fonte: Qual é o significado do endereço IP 0.0.0.0?
No protocolo da Internet versão 4, o endereço 0.0.0.0 é um meta-endereço não roteável usado para designar um alvo inválido, desconhecido ou não aplicável. Dar um significado especial a um dado que de outra forma seria inválido é uma aplicação de sinalização dentro da banda.
No contexto de servidores, 0.0.0.0 significa todos os endereços IPv4 na máquina local. Se um host tem dois endereços IP, 192.168.1.1 e 10.1.2.1, e um servidor em execução no host escuta em 0.0.0.0, ele será acessível em ambos os IPs (Observação:Este texto específico é repetido de cima como parte da resposta geral).
No contexto de roteamento, 0.0.0.0 geralmente significa a rota padrão, ou seja, a rota que leva a "o resto" da Internet em vez de a algum lugar na rede local.
Os usos incluem:
- O endereço que um host reivindica como seu quando ainda não recebeu um endereço. Por exemplo, ao enviar o pacote DHCPDISCOVER inicial ao usar o DHCP.
- O endereço que um host atribui a si mesmo quando uma solicitação de endereço via DHCP falha, desde que a pilha de IP do host suporte isso. Esse uso foi substituído pelo mecanismo APIPA em sistemas operacionais modernos.
- Uma maneira de especificar qualquer host IPv4. É usado desta forma ao especificar uma rota padrão.
- Uma maneira de especificar explicitamente que o destino não está disponível. Fonte: 127.0.0.1 - Quais são seus usos e por que é importante?
- Uma maneira de especificar qualquer endereço IPv4. É usado desta forma ao configurar servidores (ou seja, ao vincular soquetes de escuta). Isso é conhecido pelos programadores TCP como INADDR_ANY. [bind (2) vincula-se a endereços, não interfaces.]
No IPv6, o endereço com todos os zeros é escrito como ::
Fonte: 0.0.0.0 [Wikipedia]
Descoberta / Solicitação de DHCP
Quando um cliente é inicializado pela primeira vez, diz-se que está no inicializando estadoe transmite uma mensagem DHCPDISCOVER em sua sub-rede física local pela porta 67 do protocolo UDP (User Datagram Protocol) (servidor BootP). Como o cliente não tem como saber a sub-rede a que pertence, o DHCPDISCOVER é um broadcast de todas as sub-redes (endereço IP de destino 255.255.255.255), com endereço IP de origem 0.0.0.0. O endereço IP de origem é 0.0.0.0, pois o cliente não tem um endereço IP configurado.
Se existir um servidor DHCP nesta sub-rede local e estiver configurado e operando corretamente, o servidor DHCP ouvirá a transmissão e responderá com uma mensagem DHCPOFFER. Se um servidor DHCP não existir na sub-rede local, deve haver um Agente de Retransmissão DHCP / BootP nessa sub-rede local para encaminhar a mensagem DHCPDISCOVER para uma sub-rede que contenha um servidor DHCP.
Este agente de retransmissão pode ser um host dedicado (Microsoft Windows Server, por exemplo) ou um roteador (um roteador Cisco configurado com instruções auxiliares de IP de nível de interface, por exemplo).
…
Depois que o cliente recebe um DHCPOFFER, ele responde com uma mensagem DHCPREQUEST, indicando sua intenção de aceitar os parâmetros no DHCPOFFER, e passa para o solicitando estado. O cliente pode receber várias mensagens DHCPOFFER, uma de cada servidor DHCP que recebeu a mensagem DHCPDISCOVER original. O cliente escolhe um DHCPOFFER e responde apenas a esse servidor DHCP, recusando implicitamente todas as outras mensagens DHCPOFFER. O cliente identifica o servidor selecionado preenchendo o Identificador de Servidor campo de opção com o endereço IP do servidor DHCP.
O DHCPREQUEST também é um broadcast, então todos os servidores DHCP que enviaram um DHCPOFFER verão o DHCPREQUEST e cada um saberá se seu DHCPOFFER foi aceito ou recusado. Quaisquer opções de configuração adicionais que o cliente requer serão incluídas no campo de opções da mensagem DHCPREQUEST. Mesmo que o cliente tenha recebido um endereço IP, ele enviará a mensagem DHCPREQUEST com o endereço IP de origem 0.0.0.0. Neste momento, o cliente ainda não recebeu a verificação de que está claro para usar o endereço IP.
…
Conversa cliente-servidor para um cliente obtendo um endereço DHCP em que o cliente e o servidor DHCP residem na mesma sub-rede:
Fonte: Compreendendo e solucionando problemas de DHCP em Catalyst Switch ou Enterprise Networks
Rota Padrão
Este documento explica como configurar uma rota padrão ou gateway de último recurso. Esses comandos IP são usados:
- ip default-gateway
- rede padrão ip
- ip route 0.0.0.0 0.0.0.0
IP Route 0.0.0.0 0.0.0.0
Criar uma rota estática para a rede 0.0.0.0 0.0.0.0 é outra maneira de definir o gateway de último recurso em um roteador. Tal como acontece com o rede padrão ip comando, usando a rota estática para 0.0.0.0 não depende de nenhum protocolo de roteamento. No entanto, o roteamento IP deve ser habilitado no roteador.
Observação: O IGRP não entende uma rota para 0.0.0.0. Portanto, ele não pode propagar as rotas padrão criadas usando o ip route 0.0.0.0 0.0.0.0 comando. Use o rede padrão ip comando para que o IGRP propague uma rota padrão.
Fonte: Configurando um gateway de último recurso usando comandos IP
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.