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? O post de perguntas e respostas do SuperUser de hoje ajuda a esclarecer as coisas para um leitor confuso.
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
Foto cedida por Kate Gardiner (Flickr).
A questão
O super usuá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 o mesmo (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
DavidPostill, colaborador do SuperUser, 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 destino inválido, desconhecido ou não aplicável (um espaço reservado 'sem endereço particular').
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 atender em 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 de Internet de loopback (IP) também chamado de 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, usar qualquer endereço IP no intervalo de 127… * funcionará da mesma maneira ou de maneira semelhante. A construção de loopback fornece a um computador ou dispositivo capaz de trabalhar em 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 da classe A 127 é atribuído a loopback função, isto é, 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. Nenhum datagrama enviei para uma rede 127 endereço deve aparecer em qualquer rede em qualquer lugar.
Fonte: Números de rede
Se é 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 efetivamente testadas sem a possibilidade de problemas nas camadas inferiores se manifestarem. 127.0.0.1 é o endereço mais comumente usado para fins de teste.
Fonte: IP Reservado, Loopback e Endereços Privados
Para mais informações, veja o Pergunte ao Ubuntu pergunta: o que é o dispositivo de auto-retorno e como usá-lo?
Qual é o endereço IP 0.0.0.0?
0.0.0.0 é uma sintaxe de endereço válida. Portanto, ele deve ser considerado válido sempre que um endereço IP na notação decimal com ponto tradicional for esperado. Depois de analisado e convertido para um formato numérico viável, seu valor determina o que acontece a seguir.
O valor all-zero tem um significado especial. Então é válido, mas tem um significado que pode não ser apropriado (e, portanto, tratado como não válido) para circunstâncias particulares. É basicamente o marcador de posição 'sem endereço particular'. 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ê estiver usando-o para configurar uma interface, ele poderá remover um endereço da interface. Depende do contexto de uso para determinar o que 'nenhum endereço particular' realmente faz.
No contexto de uma entrada de rota, geralmente significa a rota padrão. Isso acontece como resultado mais da máscara de endereço, que seleciona os bits para comparar. Uma máscara de 0.0.0.0 não seleciona nenhum bit, portanto a comparação sempre será bem-sucedida. Então, quando tal rota é configurada, sempre existe um lugar para os pacotes serem enviados (se configurado 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 particular' (no IPv6 que é :: 0 ou apenas ::).
Fonte: Qual é o significado do endereço IP 0.0.0.0?
No Internet Protocol versão 4, o endereço 0.0.0.0 é um meta-endereço não roteável usado para designar um destino inválido, desconhecido ou não aplicável. Para dar um significado especial a um dado inválido é uma aplicação da sinalização em banda..
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 atender em 0.0.0.0, ele poderá ser acessado em ambos os IPs (Nota: Este texto específico é repetido de cima como parte da resposta geral).
No contexto do roteamento, 0.0.0.0 geralmente significa a rota padrão, ou seja, a rota que leva ao 'resto da' Internet em vez de em algum lugar na rede local.
Usos incluem:
- O endereço que um host reivindica como seu quando ainda não foi atribuído 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 falhou, desde que a pilha IP do host suporte isso. Esse uso foi substituído pelo mecanismo APIPA em sistemas operacionais modernos.
- Uma maneira de especificar qualquer host IPv4 em tudo. É usado desta maneira 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 em tudo. É usado dessa maneira ao configurar servidores (ou seja, ao ligar sockets de escuta). Isso é conhecido pelos programadores TCP como INADDR_ANY. [bind (2) liga-se a endereços, não a interfaces.]
No IPv6, o endereço de todos os zeros é escrito como ::
Fonte: 0.0.0.0 [Wikipedia]
Descoberta / solicitação de DHCP
Quando um cliente inicia pela primeira vez, diz-se que está no estado de inicialização, e transmite uma mensagem DHCPDISCOVER em sua sub-rede física local pela porta 67 do User Datagram Protocol (UDP) (servidor BootP). Como o cliente não tem como saber a sub-rede à qual pertence, o DHCPDISCOVER é uma transmissão de todas as sub-redes (endereço IP de destino 255.255.255.255), com um endereço IP de origem de 0.0.0.0. O endereço IP de origem é 0.0.0.0, pois o cliente não possui um endereço IP configurado.
Se existir um servidor DHCP nesta sub-rede local e estiver configurado e funcionando 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.
Esse 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 no nível da 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 move-se para o estado solicitante. 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 do servidor campo de opção com o endereço IP do servidor DHCP.
O DHCPREQUEST também é uma transmissão, portanto, todos os servidores DHCP que enviaram um DHCPOFFER verão o DHCPREQUEST e cada um saberá se seu DHCPOFFER foi aceito ou recusado. Qualquer opção de configuração adicional que o cliente requeira será incluída no campo de opções da mensagem DHCPREQUEST. Mesmo que o cliente tenha recebido um endereço IP, ele enviará a mensagem DHCPREQUEST com um endereço IP de origem de 0.0.0.0. No momento, o cliente ainda não recebeu a confirmação de que é claro usar o endereço IP.
…
Conversa entre cliente e servidor para um cliente que obtém um endereço DHCP em que o cliente e o servidor DHCP residem na mesma sub-rede:
Fonte: Entendendo e solucionando problemas de DHCP no Catalyst Switch ou Enterprise Networks
Rota Padrão
Este documento explica como configurar uma rota padrão ou um gateway de último recurso. Estes comandos IP são usados:
- ip default-gateway
- ip default-network
- ip route 0.0.0.0 0.0.0.0
Rota IP 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. Como com o ip default-network 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 estar habilitado no roteador.
Nota: O IGRP não entende uma rota para 0.0.0.0. Portanto, ele não pode propagar rotas padrão criadas usando o ip route 0.0.0.0 0.0.0.0 comando. Use o ip default-network comando para que o IGRP propague uma rota padrão.
Fonte: Configurando um gateway do último recurso usando comandos de 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.