A quoi sert l'adresse IP 127.0.0.2?


39

J'exécute l'exemple dans hiredis, qui utilise "127.0.0.2" comme adresse IP du serveur Redis, et il fonctionne correctement. En fait, le serveur Redis s'exécute sur le même ordinateur. Je sais que "127.0.0.1" est l'adresse IP de "lo", mais qu'en est-il de "127.0.0.2"? Est-ce la même chose que "127.0.0.1"?

Réponses:


37

Oui:

Les normes de réseau IPv4 réservent l'intégralité du bloc d'adresses 127.0.0.0/8 à des fins de bouclage. Cela signifie que tout paquet envoyé à l'une de ces 16 777 214 adresses (127.0.0.1 à 127.255.255.254) est rebouclé. IPv6 n'a qu'une seule adresse, :: 1.

Diverses normes IETF (Internet Engineering Task Force) réservent le bloc d’adresses IPv4 127.0.0.0/8, en notation CIDR, et l’adresse IPv6 :: 1 à cette fin. L'adresse IPv4 la plus couramment utilisée est 127.0.0.1. Généralement, ces adresses de bouclage sont mappées sur les noms d’hôte, localhost ou loopback.

ou du RFC lui-même:

127.0.0.0/8 - Ce bloc est affecté à une utilisation en tant qu’adresse de bouclage d’hôte Internet. Un datagramme envoyé par un protocole de niveau supérieur à une adresse n'importe où dans ce bloc doit revenir en boucle à l'intérieur de l'hôte. Ceci est généralement implémenté en utilisant seulement 127.0.0.1/32 pour le bouclage, mais aucune adresse dans ce bloc ne devrait jamais apparaître sur un réseau où que ce soit [RFC1700, page 5].

Pour vous amuser, essayez en faisant un ping:

$ ping 127.127.127.127
PING 127.127.127.127 (127.127.127.127) 56(84) bytes of data.
64 bytes from 127.127.127.127: icmp_req=1 ttl=64 time=0.110 ms
64 bytes from 127.127.127.127: icmp_req=2 ttl=64 time=0.065 ms
^C
--- 127.127.127.127 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.065/0.087/0.110/0.024 ms

La page Wikipedia a depuis changé et indique désormais "bien que toutes les adresses comprises entre 127.0.0.1 à 127.255.255.254 y soient mappées", l’essentiel de cette réponse étant en conflit direct avec Wikipedia.
SilverSkin

6
@SilverSkin Cela vous dérangerait-il d'expliquer ce que vous voulez dire? La seule différence entre ce qui est en réponse et ce qui est maintenant dans Wikipedia, c'est qu'ils ont (correctement) exclu 127.0.0.0 et 127.255.255.255, qui sont des adresses réseau / de diffusion. L'essentiel est toujours le même - 127.xxx == 127.0.0.1 (sauf pour 127.0.0.0 et 127.255.255.255, ce qui est attendu sur un réseau / 8).
icyrock.com

1
Donc, il n'y a pas de différence entre liaison à 127.0.0.1 versus liaison à 127.0.0.124? Alors pourquoi l’embauche s’embête-t-elle avec 127.0.0.2, si c’est la même adresse? Que se passe-t-il également si vous avez envoyé un message à 127.0.0.0?
CMCDragonkai

7
Il faut mentionner que ce n’est pas la même chose sous OS X, qui n’a que 127.0.0.1 route pour effectuer un bouclage. Voir ici .
Wenbing Li

6
@CMCDragonkai 127.0.0.1 et 127.0.0.124 peuvent être sur la même interface mais ils ne sont pas la même adresse. On pourrait utiliser une adresse IP peu commune, comme 127.0.0.2, si on veut utiliser la configuration d'un service sur un port commun et ne pas interférer avec d'autres services susceptibles d'écouter ce même port sur 127.0.0.1
Keith Reynolds

6
  • “Toutes les 127.x.x.xadresses sont-elles limitées à la machine locale?” Oui
  • “Toutes les 127.x.x.xadresses sont-elles liées à l' lointerface” Oui
  • “Les 127.x.x.xadresses sont-elles acheminées sur le réseau?” Non

127.0.0.0/8 - Ce bloc est affecté à une utilisation en tant qu’adresse de bouclage d’hôte Internet. Un datagramme envoyé par un protocole de niveau supérieur à une
adresse n'importe où dans ce bloc revient en boucle à l'intérieur de l'hôte. Ceci
est généralement mis en œuvre en utilisant uniquement 127.0.0.1/32 pour le bouclage. Comme
décrit dans la [RFC1122], Section 3.2.1.3, les adresses de l'ensemble du bloc 127.0.0.0/8 n'apparaissent légitimement sur aucun réseau, où que ce soit. - RFC5735

  • “Est-ce 127.0.0.2la même chose que 127.0.0.1?” NON

Alors que 127.0.0.1pour 127.255.255.254sont toutes les adresses locales liées à l' interface lo. Ils ne sont pas les mêmes. Vous pouvez utiliser chaque adresse pour lier un service différent sur le même port. Par exemple, 16 millions de serveurs Web sur le port 80, accessibles uniquement à partir de la machine locale (si vous ne manquez pas de mémoire, ou d’autres ressources en premier)

Je viens de mettre en place un service de menu fixe à associer 127.0.0.2:80. J'ai ensuite ajouté un alias à /etc/hosts. Maintenant, je peux me connecter via http://myserver, mais pas via http://127.0.0.1ou http://localhost. Cependant, il n'est disponible que sur cette machine. En l'état, seulement, sur l' lointerface.

J'ai ensuite configuré un autre service de menu fixe auquel se lier 127.0.0.3:80, ainsi qu'un service python localhost:80et un autre 127.0.0.4:80.


Cela peut ne pas fonctionner sur tous les systèmes d'exploitation. J'utilise Debian (9) Gnu / Linux, noyau Linux 4.9.0-3-amd64. Certains systèmes d'exploitation peuvent traiter toutes les adresses 127.0.0.1→ de 127.255.255.254la même manière. Certains peuvent seulement travailler avec 127.0.0.1.

voir également



Cela m'a pris environ une heure de recherche, mais j'ai finalement pu comprendre ce que vous tentiez de transmettre. J'ai mis à jour la citation de l'article Wikipedia dans la réponse acceptée. Étant donné que la déclaration citée a changé au fil des ans, j'ai cité une déclaration différente afin de restaurer les informations d'origine contenues dans la réponse.
Ramhound

1

Pas une réponse générale complète (il y en a déjà une). Cette réponse montre un exemple d' 127.0.0.2utilisation du problème.

Extrait:

L'OP a tenté de tester certains logiciels dans un cas où sa connexion à un serveur avait été refusée. Cela a été fait sur le serveur par une iptablesrègle temporaire qui rejette tout le trafic de l'IP du client. Le client a immédiatement pu "voir" la connexion a été rejetée.

Le problème est apparu lorsque cette personne a déplacé le logiciel serveur sur le même ordinateur que le client et a essayé d'utiliser l'interface de bouclage. La règle était configurée pour bloquer la communication, 127.0.0.1mais les informations au sujet desquelles une connexion avait été refusée étaient soumises à la même règle et ne parvenaient jamais au logiciel client en attente (probablement jusqu'à l'expiration du délai).

La solution était d'utiliser 127.0.0.2l'adresse du serveur et définir une règle qui rejette les connexions à elle. Les informations sur un rejet sont 127.0.0.1parvenues et ont pu être transmises au logiciel client.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.