Qu'est-ce qui rend une adresse IP privée non routable?

21

Je comprends que les adresses privées telles que 10.0.0.0/8, 172.16.0.0/12et 192.168.0.0/16ne sont pas routable. Cependant, qu'est-ce qui empêche exactement ces adresses d'être routables? Les FAI mettent-ils en œuvre des listes de contrôle d'accès qui empêchent ces réseaux de router ou est-ce quelque chose de plus haut?

Est-ce aussi l'IANA qui a créé ce design?

QuantumRads
la source
Y a-t-il une question implicite de "EST-CE GARANTI qu'ils ne seront pas acheminés publiquement, et est-ce que quelqu'un achemine encore l'action publique par erreur?"?
rackandboneman
3
Quant à votre dernière question: l' IETF les a définis pour que l'IANA soit exclue de l'espace d'adressage public. RFC1918 pour IPv4 et RFC4193 pour IPv6
Lenniey
3
Bien sûr, ils sont routables. Les routeurs prennent un message de votre adresse externe publique et le "routent" vers une adresse privée interne. Vous recommandons de rechercher les bases de la traduction d'adresses réseau.
Lakey
2
Lakey, ils ne sont pas routables sur le web public. Par conséquent, pourquoi Nat est requis et utilisé pour conserver les adresses IP. Je suis dans une classe Cisco et mon professeur n'a pas pu répondre à cette question, c'est pourquoi je le poste ici.
QuantumRads
1
De plus, j'aurais dû préciser que les adresses privées sont routables dans un réseau privé mais pas dans un réseau public.
QuantumRads

Réponses:

39

Les adresses IP privées sont routables, bien qu'elles ne soient pas routées publiquement . Fondamentalement, un routeur achemine une adresse privée vers un réseau local privé / interne, plutôt que vers Internet.

Pour développer ma réponse: un routeur peut acheminer une adresse privée vers le côté public, via sa passerelle par défaut. Cependant, le paquet sera "perdu" en transit en raison de la chute d'autres routeurs, ou en raison du TTL du paquet atteignant 0.

Par exemple, jetez un œil à cela (partiellement obscurci) 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  * * *

Comme vous pouvez le voir, le paquet est acheminé vers Internet public via la passerelle par défaut de la machine. Cependant, il est abandonné pendant le transit et n'atteint jamais une destination appropriée.

Après tout, les IP / classes privées se chevauchent (par définition) entre les clients, alors sur lequel des milliers de réseaux 192.168.200.x / 24 doit être acheminé ce paquet?

Remarque intéressante: les fournisseurs d'accès Internet utilisent souvent des adresses privées pour leur routage interne. Si, par exemple, un 192.168.200.x / 24 cours privés est utilisé pour le routage interne, le premier routeur / machine avec IP 192.168.200.1 va recevoir , mais laisse tomber le paquet, parce qu'il était non sollicité. Les ICMP sont une exception intéressante, car les routeurs / machines répondent généralement aux PING non sollicités. Cela signifie que vous pouvez parfois utiliser des analyses d'adresses privées pour mapper votre réseau privé FAI.

shodanshok
la source
2
Donc, fondamentalement, si l'adresse IP commence par 10, 172.16-31 ou 192.168, le routeur doit être configuré pour ne les envoyer que via le réseau LAN interne, plutôt que vers Internet externe (dans une entreprise, généralement via le réseau externe). passerelle). Vous pouvez lire sur ces «réseaux privés» ici: en.wikipedia.org/wiki/Private_network
Bruno
3
Il n'est en fait pas rare de router des adresses RFC1918 privées (192.168, 172.16, 10) chaque fois que vous créez un réseau privé routé.
user253751
3
@Bruno pas nécessairement. Un itinéraire peut acheminer une adresse privée du côté public vers sa passerelle par défaut, mais d'autres routeurs vont finalement supprimer les paquets ou les acheminer en boucle (et le paquet sera rejeté lorsque son TTL atteint 0).
shodanshok
Est - ce que les routeurs principaux du FAI même ont une passerelle par défaut? Qu'est ce que ça serait?
kubanczyk
En général, oui. Après tout, un FAI doit acheminer des paquets destinés à d'autres FAI ...
shodanshok
9

Habituellement, les adresses IP privées sont filtrées par le FAI. Votre routeur d'accès doit également être configuré pour ne pas les faire fuir.

Les adresses IP privées ne peuvent pas être utilisées sur Internet car n'importe qui pourrait les utiliser . Il y a probablement plusieurs millions d'appareils utilisant 192.168.1.1 en privé - lequel est un routeur Internet censé envoyer le paquet?

Les adresses Zeroconf (169.254.0.0/16) ne sont en fait pas routables. Ceux-ci peuvent être utilisés n'importe où de manière ad hoc, mais ils ne peuvent pas accéder à Internet ou à un sous-réseau autre que local. Ils ne peuvent pas être routés car ils ne peuvent être valides qu'à l'intérieur du domaine de diffusion où chaque appareil peut sélectionner une adresse inutilisée par lui-même. Par définition, zeroconf n'a pas d'instance de gestion comme un serveur DHCP.

Zac67
la source
6

Cependant, qu'est-ce qui empêche exactement ces adresses d'être routables?

Normes acceptées appliquées par les entités qui communiquent. Ils sont appliqués dans les logiciels, le matériel et les configurations.

Les FAI mettent-ils en œuvre des listes de contrôle d'accès qui empêchent ces réseaux de router ou est-ce quelque chose de plus haut?

Ils peuvent mais ce qui est vraiment arrêté n'est qu'une traduction invalide qui ne respecte pas les normes.

Si vous êtes comme la plupart des utilisateurs à domicile, une seule adresse IP vous est attribuée en tant qu'adresse IP publique. Pour que le trafic de tous vos appareils connectés communique, le routeur effectue la traduction de ces adresses IP internes à l'aide de NAT (traduction d'adresse réseau) ou PAT (traduction d'adresse de port).

Fondamentalement, votre routeur se souvient des adresses IP internes de votre réseau local (réseau local) qui ont démarré une session atteignant l'extérieur de votre réseau local, via le routeur, et via l'interface WAN (réseau étendu). Lorsque les données quittent le routeur, elles contiennent cette adresse IP unique qui vous est attribuée en tant qu'IP source. Lorsqu'il entre, le paquet contient la même adresse que l'adresse IP de destination. Le routeur décide alors où il sera dirigé à partir de là.

À l'extérieur, vous n'avez qu'une seule adresse IP qui est en fait l'IP du routeur. Le routeur est capable de suivre ces sessions et de déterminer quel trafic appartient à chaque adresse IP interne sur son LAN et dirige ce trafic en conséquence. C'est un processus de gestion complexe, mais l'idée est en fait assez simple une fois que vous comprenez que tout est traduit sur chaque routeur.

De plus, la plupart des routeurs domestiques ont des ports de commutation, grâce auxquels le trafic est acheminé via l'adresse MAC et non l'adresse IP. L'adresse MAC source dans le paquet reste la même jusqu'à ce qu'elle atteigne un routeur. Le routeur supprime cette adresse MAC source et insère l'adresse MAC de sa propre interface WAN.

Est-ce aussi l'IANA qui a créé ce design?

Ces normes n'ont pas été conçues à l'origine par l'IANA. Aujourd'hui, bien qu'ils prennent l'initiative de fixer des normes, ils ne les appliquent certainement pas par quelque moyen que ce soit. Ce sont des normes qui sont appliquées par consensus. Rechercher RFC 791.

Ils ont une "autorité" dans la mesure où tout le monde est disposé à y adhérer. Il est tout à fait possible de défier ces normes, mais vous finirez par rencontrer un fournisseur de services Internet quelque part le long du chemin qui exigera que vous adhériez ou ils réduiront votre trafic.

J'espère que ça aide ..

CipherBytes
la source
2
Je pense que chaque mot de cela frappe le clou sur la tête, en ce qui concerne la question spécifique du PO. Les autres réponses sont factuellement correctes, mais je ne suis pas sûr qu'elles traitent la confusion spécifique du PO aussi directement qu'elles le pourraient. Le point clé est: la convention et le fait que la plupart des gens veulent la respecter .
Courses de légèreté avec Monica le
1
@LightnessRacesinOrbit: C'est essentiellement couvert par le tout premier mot non cité dans cette réponse, ce qui ne serait pas strictement nécessaire ... Le mot souligne le point que vous faites. Cependant, je suis d'accord que votre texte en italique rend le point meilleur.
TOOGAM
2
@TOOGAM: Oui, je ne fais que le renforcer. Comme je l'ai dit, je pense que cette réponse est parfaite.
Courses de légèreté avec Monica le
1

Pour clarifier les autres réponses, les plages d'adresses IP privées que vous utilisez localement ne sont pas acheminées vers Internet car elles ont leurs propres entrées explicites dans la table de routage. Voici ma table de routage depuis mon bureau à la maison, par exemple:

$ 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

Notez le 172.17.0.0/16et 172.18.0.0/16. Les paquets vers ces réseaux iront directement à mes ponts Docker, sans jamais quitter mon ordinateur, car ils ont une entrée spécifique dans ma table de routage. L' 192.168.1.0/24entrée indique explicitement que le trafic vers ce réseau sortira de l' enp5s0interface. La table de routage de mon routeur aura une entrée similaire qui enverra tout le trafic pour ce réseau privé via l'interface à laquelle mon bureau est connecté.

Ce ne sont que les paquets pour les réseaux qui ne sont pas explicitement dans le tableau qui iront à la route par défaut. Vous pouvez explicitement marquer un réseau comme inaccessible en:

$ ip route add unreachable 10.0.0.0/8

Cela change ma table de routage en:

$ 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

Maintenant, mon bureau n'essaiera même pas de demander à la passerelle par défaut des adresses dans cette plage. Les recherches pour cette adresse renvoient immédiatement «Aucun itinéraire vers l'hôte».

$ 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

Les paquets pour les réseaux inaccessibles qui ne sont pas explicitement marqués comme inaccessibles dans la table de routage continueront simplement d'être transmis via les routes par défaut, jusqu'à ce que le paquet atteigne un routeur qui sait explicitement que le réseau est inaccessible ou que le TTL expire.

Karl Bielefeldt
la source