Alguém pode esclarecer a atribuição do gateway para mim?
Qual é a diferença entre adicionar um gateway 0.0.0.0
e atribuir um endereço IP específico como gateway?
Responder1
0.0.0.0
tem o significado específico de "não especificado". Isso se traduz aproximadamente como "não há nenhum" no contexto de um gateway. Obviamente, isso pressupõe que a rede esteja conectada localmente, pois não há salto intermediário. A máquina enviará o pacote por essa interface como se fosse para uma máquina conectada a esse segmento, o que em Ethernet significa que o endereço MAC do host de destino será usado em vez do endereço MAC do gateway do próximo salto.
Como destino, 0.0.0.0/0
é especial: se não houver bits de rede, também não poderá haver nada no número da rede. Então, é naturalmente não especificado. Para correspondência de prefixo, ele mascara todos os bits, de modo que todos os endereços estejam dentro de 0.0.0.0/0
; por esse motivo, é usado para significar "gateway padrão" em tabelas de roteamento. É também a rota menos específica possível, portanto as seleções que priorizam a especificidade escolherão qualquer outra opção disponível e combinarão 0.0.0.0/0
como último recurso.
Porém, continuando com a sua pergunta, sim, ela tem um significado especial. Isso significa que a rede está conectada localmente nessa interface e não são necessários mais saltos para chegar até ela.
Responder2
Da página da Wikipédia de0.0.0.0:
excerto
No Protocolo de Internet versão 4, o endereço 0.0.0.0 é um metaendereço não roteável usado para designar um destino inválido, desconhecido ou não aplicável. Dar um significado especial a um dado inválido é uma aplicação de sinalização em banda.
Da página da Wikipédia deRota Padrão.
excerto
A rota padrão no Internet Protocol versão 4 (IPv4) é designada como endereço zero 0.0.0.0/0 na notação CIDR, geralmente chamada de rota quad-zero. A máscara de sub-rede é fornecida como /0, o que especifica efetivamente todas as redes e é a correspondência mais curta possível. Uma pesquisa de rota que não corresponde a nenhuma outra rota retorna a esta rota. Da mesma forma, no IPv6, a rota padrão é especificada por ::/0.
No segmento de nível mais alto de uma rede, os administradores geralmente apontam a rota padrão de um determinado host para o roteador que possui conexão com um provedor de serviços de rede. Portanto, pacotes com destinos fora da rede local da organização, normalmente destinos na Internet ou em uma rede de longa distância, são encaminhados para o roteador com a conexão com esse provedor.
O dispositivo para o qual a rota padrão aponta costuma ser chamado de gateway padrão e geralmente executa outras funções, como filtragem de pacotes, firewall ou operações de servidor proxy.
Exemplo
Pelo seu questionamento, presumo que você tenha algo assim:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
Isso significa que para cada um dos destinos de rede (192.168.1.0 ou 169.254.0.0) o gateway padrão é o destino 0.0.0.0, se um pacote forNÃOdestinado a qualquer endereço dentro dessa rede específica. Para o destino 0.0.0.0, use o endereço IP 192.168.1.254.
Essas regras atuam para canalizar todo o tráfego que não corresponde a nenhuma das rotas que conhecemos, para a rota padrão.
Alguns exemplos
Digamos que temos um pacote com IP 192.168.1.110. A primeira regra é verificada e esse IP corresponde àquela rede, então ele é entregue.
Se tivéssemos um pacote 150.12.13.1, a 3ª regra estaria em vigor e o pacote seria roteado para 192.168.1.254.
Responder3
Veja, 0.0.0.0 é usado apenas em tabelas de roteamento - NÃO para atribuir a um host.
Hosts (computadores com endereço IP) mantêm uma tabela de roteamento para resolver como enviar suas mensagens para o local correto.
Cenário 1: PC-A deseja enviar uma mensagem para PC-B na MESMA REDE:
1) O PC-A verifica sua tabela de roteamento para ver se há correspondência para o endereço IP de destino. 2) A tabela de roteamento mostra que o destino está dentro da mesma rede, encontra a interface que está conectada a essa rede e encaminha a mensagem dessa interface diretamente para o destino.
Cenário 2: PC-A deseja enviar uma mensagem ao Servidor-Z em uma REDE REMOTA (NÃO na mesma rede):
1) O PC-A verifica sua tabela de roteamento e não consegue encontrar uma correspondência (é claro, porque os hosts não rastreiam os hosts em redes remotas - esse é o trabalho dos roteadores).
2) No entanto, o PC está configurado com um endereço IP quad-zero e uma máscara de sub-rede mapeada para o seu roteador (gateway padrão para OUTRAS redes REMOTAS e DIFERENTES) assim:
(Interface 0.0.0.0 0.0.0.0 192.168.0.1)
O que significa zero? Isso significa nenhum. Portanto, se o seu computador não controla onde estão os hosts remotos e verifica sua tabela de roteamento toda vez que deseja enviar uma mensagem para ver se precisa enviá-la para a MESMA rede (local) ou se precisa para enviá-lo para uma rede REMOTA, como ele envia a mensagem para a rede remota?
Ele o envia para o roteador e permite que o roteador faça seu trabalho de rotear o pacote pelo melhor caminho. Portanto, o host/PC/computador precisa saber que, se não conseguir encontrar uma entrada em sua tabela de roteamento para onde enviar a mensagem (também conhecida como 0.0.0.0), ele saberá enviá-la ao roteador, que é o IP endereço associado à entrada (0.0.0.0 0.0.0.0 192.168.0.1 interface) e usa a interface/NIC/adaptador de rede associado que está conectado a ela.
Portanto, 0.0.0.0 é usado por tabelas de roteamento em hosts e roteadores para saber para onde enviar algo quando encontra zero correspondências sobre como chegar a um destino e deve ser mapeado para o endereço IP de um roteador e uma interface para chegar a esse roteador.
Responder4
Explicação básica
0.0.0.0 tem o significado especial deGateway padrãomas corresponde também ao 0.0.0.0Destinoentrada.
À primeira vista, você pode pensar que de qualquer maneira tudo está passando pelo Gateway Padrão. No entanto, para compreender totalmente o conceito é necessário vê-lo no contexto de um dispositivo com múltiplas interfaces de rede (Ethernet, Wi-Fi, Bluetooth, ...).
Como um portal
Quando 0.0.0.0 é especificado como Gateway, significa: ler a linha com 0.0.0.0 como destino e rotear o pacote através desta interface.
Mas quando você tem uma segunda interface de rede ou mais, você pode ter o IP de uma dessas interfaces de rede especificado como Gateway em vez de 0.0.0.0, e os pacotes serão roteados através deles.
Como destino
A tabela de roteamento é analisada para pesquisar o destino mais específico (correspondendo ao número de prefixo mais alto).
Pelo menos, se nenhum destino mais específico for encontrado, você sempre corresponderá a 0.0.0.0/0 (notação CIDR equivalente a 0.0.0.0 com máscara de 0.0.0.0), pois se você fizer uma comparação binária entre o IP de destino e o máscara 0.0.0.0, corresponde a qualquer endereço IP, incluindo o próprio IP 0.0.0.0.
É por isso que 0.0.0.0 é usado como entrada de gateway padrão e é especialmente útil quando você tem vários gateways possíveis (várias interfaces de rede em seu dispositivo).