O que torna um endereço IP privado não roteável?

21

Entendo que endereços privados como 10.0.0.0/8, 172.16.0.0/12e 192.168.0.0/16não são roteáveis. No entanto, o que exatamente está impedindo que esses endereços sejam roteáveis? Os ISPs implementam ACLs que impedem o roteamento dessas redes ou é algo mais alto?

Além disso, foi a IANA que criou esse design?

QuantumRads
fonte
Existe uma pergunta implícita de "É GARANTIDO que eles não sejam roteados publicamente e alguém ainda está roteando o público agindo com erro?"?
rackandboneman
3
Quanto à sua última pergunta: a IETF os definiu para que a IANA fosse excluída do espaço de endereço público. RFC1918 para IPv4 e RFC4193 para IPv6
Lenniey
3
Claro que eles são roteáveis. Os roteadores recebem uma mensagem do seu endereço público externo e a "encaminham" para um endereço privado interno. Recomendamos que você procure os princípios básicos da tradução de endereços de rede.
Lakey
2
Lakey, eles não são roteáveis ​​na web pública. Daí por que Nat é necessário e usado para conservar endereços IP. Estou em uma classe da Cisco e meu professor não pôde responder a essa pergunta, por isso estou postando aqui.
QuantumRads
1
Além disso, eu deveria ter esclarecido que endereços privados são roteáveis ​​em uma rede privada, mas não em uma rede pública.
QuantumRads

Respostas:

39

Os endereços IP privados são roteáveis, embora não sejam roteados publicamente . Basicamente, um roteador encaminhará um endereço privado para a LAN privada / interna, e não para a Internet.

Para expandir minha resposta: um roteador pode rotear um endereço privado para o lado público, através de seu gateway padrão. No entanto, o pacote será "perdido" em trânsito devido à queda de outros roteadores ou ao TTL do pacote atingir 0.

Por exemplo, dê uma olhada nisso (parcialmente ofuscado) traceroute -I -n 192.168.200.1:

[root@myhost ~]# traceroute -I -n 192.168.200.1
traceroute to 192.168.200.1 (192.168.200.1), 30 hops max, 60 byte packets
 1  x.x.x.x  0.851 ms  0.841 ms  0.818 ms
 2  6x.xx.xx.xx  0.791 ms  0.791 ms  0.849 ms
 3  15x.xx.xx.xx  1.350 ms  1.347 ms  1.373 ms
 4  15x.x.xx.xx  1.446 ms  1.435 ms  1.428 ms
 5  151.6.68.20  2.272 ms  2.266 ms  2.251 ms
 6  151.6.0.91  8.818 ms  8.256 ms  8.326 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
...
...
29  * * *
30  * * *

Como você pode ver, o pacote é roteado para a Internet pública através do gateway padrão da máquina. No entanto, ele é descartado durante o trânsito e nunca atinge um destino adequado.

Afinal, IPs / classes privadas são (por definição) sobrepostas entre os clientes; portanto, qual das milhares de redes 192.168.200.x / 24 deve ser roteada para este pacote?

Uma observação interessante: os provedores de Internet geralmente usam endereços privados para o roteamento interno. Se, por exemplo, uma empresa privada 192.168.200.x / 24 aulas é usado para roteamento interno, o primeiro router / máquina com IP 192.168.200.1 vai receber, mas largar o pacote, porque era não solicitado. O ICMP é uma exceção interessante, pois o roteador / máquinas geralmente responde a PINGs não solicitados. Isso significa que, em algum momento, você pode usar varreduras de endereços privados para mapear sua rede privada de ISP.

shodanshok
fonte
2
Portanto, basicamente, se o endereço IP começar com 10, 172.16-31 ou 192.168, o roteador deverá ser configurado para enviá-los apenas pela rede interna da LAN, e não pela Internet externa (em uma empresa, geralmente através da rede externa). gateway). Você pode ler sobre essas 'redes privadas' aqui: en.wikipedia.org/wiki/Private_network
Bruno
3
Na verdade, não é incomum rotear endereços RFC1918 privados (192.168, 172.16, 10) sempre que você cria uma rede privada roteada.
user253751
3
@ Bruno não necessariamente. Uma rota pode rotear um endereço privado do lado público para seu gateway padrão, mas outros roteadores finalmente descartam os pacotes ou os rotearão em um loop (e o pacote será descartado quando o TTL atingir 0).
Shodanshok
Os roteadores principais do ISP têm um gateway padrão? O que seria?
kubanczyk
Geralmente sim. Afinal, um ISP precisa rotear pacotes destinados a outros ISPs ...
shodanshok
9

Normalmente, os endereços IP privados são filtrados pelo ISP. Seu roteador de acesso também deve ser configurado para não vazar.

Os endereços IP privados não podem ser usados ​​na Internet porque qualquer pessoa pode estar usando-os . Provavelmente, existem muitos milhões de dispositivos usando 192.168.1.1 em particular - qual deles um roteador da Internet deve enviar o pacote?

Os endereços Zeroconf (169.254.0.0/16) não são realmente roteáveis. Eles podem ser usados ​​em qualquer lugar de maneira ad-hoc, mas eles não podem acessar a Internet ou qualquer sub-rede, exceto a local. Eles não podem ser roteados porque só podem ser válidos dentro do domínio de transmissão, onde cada dispositivo pode selecionar um endereço não utilizado sozinho. Por definição, o zeroconf não possui instância de gerenciamento como um servidor DHCP.

Zac67
fonte
6

No entanto, o que exatamente está impedindo que esses endereços sejam roteáveis?

Padrões aceitos que são aplicados por entidades que se comunicam. Eles são aplicados em software, hardware e configurações.

Os ISPs implementam ACLs que impedem o roteamento dessas redes ou é algo mais alto?

Eles podem, mas o que realmente está sendo interrompido é apenas uma tradução inválida que não segue os padrões.

Se você é como a maioria dos usuários domésticos, tem um endereço IP atribuído a você como um endereço IP público. Para que o tráfego de todos os seus dispositivos conectados se comunique, o roteador realiza a conversão desses endereços IP internos usando NAT (tradução de endereços de rede) ou PAT (tradução de endereços de portas).

Basicamente, o seu roteador lembra quais endereços IP internos na sua LAN (rede local) iniciaram uma sessão fora da sua LAN, através do roteador e saindo pela interface WAN (rede de área ampla). Quando os dados saem do roteador, eles contêm o único endereço IP atribuído a você como o IP de origem. Quando entra, o pacote contém o mesmo endereço que o IP de destino. O roteador decide então para onde é direcionado a partir daí.

Para o exterior, você tem apenas um único endereço IP, que é realmente o IP do roteador. O roteador é capaz de rastrear essas sessões e determinar qual tráfego pertence a cada endereço IP interno em sua LAN e direciona esse tráfego de acordo. É um processo de gerenciamento complexo, mas a ideia é bastante simples quando você entende que tudo está sendo traduzido em cada roteador.

Além disso, a maioria dos roteadores domésticos possui portas de comutação, nas quais o tráfego é entregue via endereço MAC, não endereço IP. O endereço MAC de origem no pacote permanece o mesmo até atingir um roteador. O roteador retira o endereço MAC de origem e insere o endereço MAC de sua própria interface WAN.

Além disso, foi a IANA que criou esse design?

Esses padrões não foram originalmente projetados pela IANA. Hoje, apesar de assumirem a liderança no estabelecimento de padrões, eles certamente não os impõem através de nenhum meio legal. Eles são padrões aplicados por consenso. Pesquise na RFC 791.

Eles têm "autoridade" na medida em que todos estão dispostos a aderir a eles. É completamente possível desafiar esses padrões, mas você eventualmente encontrará um ISP em algum lugar ao longo do caminho que exigirá que você adira ou eles reduzirão seu tráfego.

Espero que ajude ..

CipherBytes
fonte
2
Eu acho que cada palavra disso bate na cabeça, no que diz respeito à pergunta específica do OP. As outras respostas são factualmente corretas, mas não tenho certeza de que abordem a confusão específica do OP o mais diretamente possível. O ponto principal é: convenção e o fato de a maioria das pessoas querer cumpri-la .
Lightness Races com Monica
1
@LightnessRacesinOrbit: Isso é basicamente coberto pela primeira palavra não citada nesta resposta, que não seria estritamente necessária ... A palavra enfatiza o argumento que você faz. Embora, eu concorde que o seu texto em itálico torne o argumento melhor.
TOOGAM 10/02
2
@ TOOGAM: Sim, estou apenas reforçando. Como eu disse, acho que essa resposta é perfeita.
Lightness Races com Monica
1

Como esclarecimento das outras respostas, os intervalos de endereços IP privados que você está usando localmente não são roteados para a Internet porque eles têm suas próprias entradas explícitas na tabela de roteamento. Aqui está minha tabela de rotas da minha área de trabalho em casa, por exemplo:

$ ip route
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.104 metric 1024 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-90a372f4b373 proto kernel scope link src 172.18.0.1 linkdown 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.104 
192.168.1.1 dev enp5s0 proto dhcp scope link src 192.168.1.104 metric 1024

Observe o 172.17.0.0/16e 172.18.0.0/16. Pacotes para essas redes vão direto para minhas pontes de encaixe, sem sair do computador, porque eles têm uma entrada específica na minha tabela de rotas. A 192.168.1.0/24entrada diz explicitamente que o tráfego nessa rede sai da enp5s0interface. A tabela de rotas do meu roteador terá uma entrada semelhante que enviará todo o tráfego para essa rede privada pela interface à qual minha área de trabalho está conectada.

São apenas pacotes para redes que não estão explicitamente na tabela que irão para a rota padrão. Você pode marcar explicitamente uma rede como inacessível por:

$ ip route add unreachable 10.0.0.0/8

Isso altera minha tabela de rotas para:

$ ip route
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.104 metric 1024 
unreachable 10.0.0.0/8 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-90a372f4b373 proto kernel scope link src 172.18.0.1 linkdown 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.104 
192.168.1.1 dev enp5s0 proto dhcp scope link src 192.168.1.104 metric 1024

Agora, minha área de trabalho nem tentará perguntar ao gateway padrão sobre endereços nesse intervalo. As pesquisas para esse endereço retornam imediatamente "Nenhuma rota para o host".

$ traceroute 10.0.0.1
traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 60 byte packets
connect: No route to host

Pacotes para redes inacessíveis que não estão explicitamente marcados como inacessíveis na tabela de rotas continuarão sendo encaminhados pelas rotas padrão, até que o pacote chegue a um roteador que saiba explicitamente que a rede está inacessível ou que o TTL expire.

Karl Bielefeldt
fonte