web-dev-qa-db-fra.com

A quoi sert l'adresse IP 127.0.0.2?

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"?

36
ciphor

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 être renvoyé dans l'hôte. Ceci est généralement mis en œuvre en utilisant uniquement 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
36
icyrock.com
  • “Toutes les adresses 127.x.x.x sont-elles limitées à la machine locale?” Oui
  • “Toutes les adresses 127.x.x.x sont-elles liées à l'interface lo” Oui
  • “Les adresses 127.x.x.x 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 à un
L'adresse située n'importe où dans ce bloc est renvoyée dans l'hôte. Ce
est généralement mis en œuvre en utilisant uniquement 127.0.0.1/32 pour le bouclage. Comme
décrite 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. - RFC5735

  • 127.0.0.2 est-il identique à 127.0.0.1?” NO

Alors que 127.0.0.1 à 127.255.255.254 sont 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. 16 millions de serveurs Web sur le port 80, accessible uniquement à partir de la machine locale (si vous ne manquez pas de mémoire ou d’autres ressources en premier)

Je viens de configurer un service de menu fixe pour se lier à 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.1 ou http://localhost. Cependant, il n'est disponible que sur cette machine. En l'état, seulement, sur l'interface lo.

J'ai ensuite configuré un autre service de menu fixe pour se lier à 127.0.0.3:80, ainsi qu’un service python sur localhost:80 et un autre sur 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.1127.255.255.254 de la même manière. Certains peuvent uniquement fonctionner avec 127.0.0.1.

voir également

5
ctrl-alt-delor

Pas une réponse générale complète (il y en a déjà une). Cette réponse de ma part montre un exemple où 127.0.0.2 a été utilisé pour résoudre le 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 règle iptables 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 à partir de 127.0.0.1, mais les informations relatives à une connexion rejetée étaient soumises à la même règle et ne parvenaient jamais au logiciel client accroché (probablement jusqu'à l'expiration du délai).

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

1