Quelle est la différence entre 0.0.0.0 et une adresse IP de bouclage?

19

Extrait du livre Computer Network :

L'adresse IP 0.0.0.0 , l'adresse la plus basse, est utilisée par les hôtes lors de leur démarrage. Cela signifie «ce réseau» ou «cet hôte».

... Toutes les adresses du formulaire 127.xx.yy.zz sont réservées aux tests de bouclage. Les paquets envoyés à cette adresse ne sont pas envoyés sur le fil; ils sont traités localement et traités comme des paquets entrants. Cela permet d'envoyer des paquets à l'hôte sans que l'expéditeur connaisse son numéro, ce qui est utile pour les tests.

Si j'ai raison, une adresse IP de bouclage fait référence à l'hôte actuel.

Quelle est alors la différence entre 0.0.0.0 et une adresse IP de bouclage?

Tim
la source
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Ron Maupin

Réponses:

36

La déclaration:

L'adresse IP 0.0.0.0 [...] signifie '' ce réseau '' ou '' cet hôte ''.

est trompeur. Ce n'est pas un "ou" mais "cet hôte sur ce réseau".

De RFC1122 :

{0, 0}

             This host on this network.  MUST NOT be sent, except as
             a source address as part of an initialization procedure
             by which the host learns its own IP address.

L'adresse de bouclage (en fait n'importe quelle adresse dans le réseau 127.0.0.0/8) est expliquée dans le même RFC de cette façon:

{127, tout}

             Internal host loopback address.  Addresses of this form
             MUST NOT appear outside a host.

Donc, à la fois une adresse de bouclage et l'adresse tout zéro peuvent être appelées "cet hôte", mais elles ont en fait des usages très différents:

  • l'adresse 0.0.0.0 peut être observée sur un réseau, mais uniquement pendant le processus DHCP / BOOTP, et uniquement en tant qu'adresse source.

  • n'importe quelle adresse dans le 127.0.0.0/8 ne peut être consultée nulle part sur le réseau et ne peut être utilisée que pour:

    • tester la pile TCP / IP de l'hôte.

    • deux applications sur le même hôte pour communiquer ensemble.

Une adresse 127.XXX est attachée à une interface de bouclage. Une telle interface n'a pas de couche sous-jacente attachée (c'est-à-dire qu'elle n'est pas attachée à une couche de liaison). Le paquet est traité et répondu dans la couche Internet. Il n'y a donc vraiment aucun moyen pour ce paquet d'atteindre quoi que ce soit en dehors de l'hôte.

Mais un paquet envoyé depuis 0.0.0.0 est traité normalement par la pile réseau, sauf qu'il n'y a pas de décision de routage, il est lié à l'interface qui s'initialise, il est donc envoyé hors de cette interface et passe par la couche liaison (qui peut être autre chose qu'Ethernet), puis sur le réseau.

JFL
la source
En d'autres termes, 0.0.0.0du point de vue de l'hôte, c'est "soi". 127l'adresse n'est pas une référence à un hôte, mais plutôt une simulation d'un hôte externe (même si ce n'est pas en fait externe). Est-ce exact ? Le RFC indique également "un datagramme dont l'adresse source ne définit pas un seul hôte - par exemple, une adresse zéro, une adresse de bouclage" Donc, si je comprends bien, contrairement aux autres adresses, ils ne sont pas censés signifier un hôte externe sur le réseau, mais servent de référence pour différentes choses - auto et sorte d'hôte "test".
Sergiy Kolodyazhnyy
Votre devis provient de la partie ICMP. Il indique qu'un ICMP inaccessible ne peut pas être envoyé à une adresse 0. Une telle réponse ICMP devrait être envoyée à l'adresse 0, ce qui violerait la règle "NE DOIT PAS être envoyé, sauf en tant qu'adresse source". De plus, l'adresse 0 ne peut pas être utilisée sauf dans le cadre d'un processus BOOTP / DHCP qui est de nature diffusée, il est donc inutile d'envoyer un message d'erreur ICMP pour une diffusion.
JFL
@SergiyKolodyazhnyy a modifié la réponse
JFL
12

Si j'ai raison, une adresse IP de bouclage fait référence à l'hôte actuel.

Non. Le trafic envoyé à une adresse de bouclage revient en boucle à l'intérieur de l'hôte. Vous pouvez envoyer du trafic vers une adresse de bouclage comme adresse de destination, puis le lire. Ceci est utile pour les tests.

Quelle est alors la différence entre 0.0.0.0 et une adresse IP de bouclage?

Les adresses du 0.0.0.0/8réseau ne peuvent pas être utilisées comme adresses de destination. La seule utilisation pratique est en tant qu'adresse source lorsqu'un hôte n'a pas d'adresse et demande quelque chose comme un serveur DHCP pour lui attribuer une adresse.


Il existe le registre d'adresses à usage spécial IANA IPv4 qui répertorie tous les blocs d'adresses spéciaux et il a des liens vers les RFC qui définissent chacun de ces blocs.

Ron Maupin
la source
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Ron Maupin