Quelle est la différence entre 127.0.0.1 et 0.0.0.0?

Je comprends que 127.0.0.1 pointe vers localhost , ainsi que 0.0.0.0 (corrigez-moi si je me trompe). Alors, quelle est la différence entre 127.0.0.1 et 0.0.0.0?

Quelle est la différence entre 127.0.0.1 et 0.0.0.0?

  • 127.0.0.1 est l'adresse de bouclage (également appelée localhost).

  • 0.0.0.0 est une méta-adresse non routable utilisée pour désigner une cible non valide, inconnue ou non applicable (un espace réservé d'adresse de donnée non spécifique).

    Dans le contexte d'une entrée de route, cela signifie habituellement l'itinéraire par défaut.

    Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur la machine locale". Si un hôte possède deux adresses ip, 192.168.1.1 et 10.1.2.1, et qu'un serveur s'exécutant sur l'hôte écoute sur 0.0.0.0, il sera accessible à ces deux adresses IP.


Quelle est l'adresse IP 127.0.0.1?

127.0.0.1 est l'adresse de protocole Internet (IP) en boucle également appelée "localhost". L'adresse est utilisée pour établir une connexion IP à la même machine ou ordinateur utilisé par l'utilisateur final.

La même convention est définie pour les ordinateurs qui prennent en charge l'adressage IPv6 en utilisant la connotation de :: 1. L'établissement d'une connexion utilisant l'adresse 127.0.0.1 est la pratique la plus courante; Cependant, en utilisant n'importe quelle adresse IP dans la gamme de 127 . . * Fonctionnera de la même manière ou de la même manière. La construction de bouclage donne à un ordinateur ou à un périphérique capable de mettre en réseau la capacité de valider ou d'établir la pile IP sur la machine.

Source: 127.0.0.1 – Quelles sont ses utilisations et pourquoi est-ce important?


Adresses spéciales

Le numéro de réseau de classe A 127 est affecté à la fonction "bouclage", c'est-à-dire un datagramme envoyé par un protocole de niveau supérieur à une adresse de réseau 127 devrait se retourner dans l'hôte. Aucun datagramme "envoyé" à une adresse réseau 127 ne doit jamais apparaître sur n'importe quel réseau.

Source: Numéros de réseau


Si c'est une classe entière A, quel est le but d'autres valeurs arbitraires pour les trois derniers octets?

Le but de la plage de bouclage est de tester l'implémentation du protocole TCP / IP sur un hôte. Étant donné que les couches inférieures sont en court-circuit, l'envoi à une adresse de bouclage permet de tester les couches supérieures (IP et ci-dessus) afin d'être efficacement testées sans que des problèmes aux couches inférieures se manifestent. 127.0.0.1 est l'adresse la plus couramment utilisée à des fins de test.

Source: IP réservé, Loopback et adresses privées

Pour plus d'informations, consultez la question https://askubuntu.com. Qu'est-ce que le périphérique loopback et comment l'utiliser? Et pourquoi l'adresse IP de loopback est-elle de 127.0.0.1 à 127.255.255.254? .


Quelle est l'adresse IP 0.0.0.0?

"0.0.0.0" est une syntaxe d'adresse valide. Donc, il devrait analyser comme valide chaque fois qu'une adresse IP en notation décimale décimale traditionnelle est attendue. Une fois analysé et converti en une forme numérique utilisable, sa valeur détermine ce qui se passe ensuite.

La valeur totale de zéro a une signification particulière. Il est donc «valide», mais a une signification qui peut ne pas être appropriée (et donc traitée comme non valide) pour des circonstances particulières. Il s'agit essentiellement de l'espace réservé «pas d'adresse particulière». Pour les choses comme la liaison d'adresse des connexions réseau, le résultat peut être d'attribuer une adresse d'interface appropriée à la connexion. Si vous l'utilisez pour configurer une interface, il est possible de supprimer une adresse de l'interface. Cela dépend du contexte d'utilisation pour déterminer ce qu'aucune adresse particulière ne fait vraiment.

Dans le contexte d'une entrée de route, cela signifie habituellement l'itinéraire par défaut . Cela se produit en conséquence du masque d'adresse, qui sélectionne les bits à comparer. Un masque de "0.0.0.0" sélectionne pas de bits, donc la comparaison réussira toujours. Donc, lorsqu'une telle route est configurée, il y a toujours un endroit où les paquets doivent aller (si configuré avec une destination valide).

Dans certains cas, simplement "0" fonctionnera également et aura le même effet. Mais cela n'est pas garanti. Le formulaire "0.0.0.0" est la manière standard de dire "aucune adresse particulière" (dans IPv6 qui est ":: 0" ou simplement "::").

Source: quelle est la signification de l'adresse IP 0.0.0.0


Dans la version de protocole Internet 4, l'adresse 0.0.0.0 est une méta-adresse non routable utilisée pour désigner une cible non valide, inconnue ou non applicable. Donner une signification particulière à une donnée autrement invalide est une application de signalisation en bande.

Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur la machine locale". Si un hôte possède deux adresses ip, 192.168.1.1 et 10.1.2.1, et qu'un serveur s'exécutant sur l'hôte écoute sur 0.0.0.0, il sera accessible à ces deux adresses IP.

Dans le contexte du routage, 0.0.0.0 signifie habituellement l'itinéraire par défaut, c'est-à-dire l'itinéraire qui conduit au «reste» de l'Internet au lieu de quelque part sur le réseau local.

Les utilisations incluent:

  • L'adresse qu'un hôte réclame comme son propre quand il n'a pas encore reçu d'adresse. Comme lors de l'envoi du paquet DHCPDISCOVER initial lors de l'utilisation de DHCP.
  • L'adresse qu'un hôte se attribue à lui-même lorsque la demande d'adresse via DHCP a échoué, à condition que la pile IP de l'hôte prenne en charge cette opération. Cette utilisation a été remplacée par le mécanisme APIPA dans les systèmes d'exploitation modernes.
  • Une façon de spécifier "n'importe quel hôte IPv4". Il est utilisé de cette façon lors de la spécification d'un itinéraire par défaut.
  • Une façon de spécifier explicitement que la cible n'est pas disponible. 1
  • Une façon de spécifier "n'importe quelle adresse IPv4 du tout". Il est utilisé de cette façon lors de la configuration des serveurs (c.-à-d. Lors de la liaison des sockets d'écoute). Ceci est connu des programmeurs TCP comme INADDR_ANY. (Bind (2) se lie aux adresses, pas aux interfaces.)

Dans IPv6, l'adresse de tous les zéros est écrite comme "::".

Source: 0.0.0.0


Découverte / demande DHCP

Lorsqu'un client démarre pour la première fois, on dit qu'il se trouve dans l'état d'initialisation et transmet un message DHCPDISCOVER sur son sous-réseau physique local sur le port UDP (67) (Serveur BootP) du protocole Datagramme utilisateur (UDP). Étant donné que le client n'a aucun moyen de connaître le sous-réseau auquel il appartient, DHCPDISCOVER est une émission de tous les sous-réseaux (adresse IP de destination de 255.255.255.255), avec une adresse IP source de 0.0.0.0. L'adresse IP source est 0.0.0.0, car le client n'a pas d'adresse IP configurée. Si un serveur DHCP existe sur ce sous-réseau local et est configuré et fonctionne correctement, le serveur DHCP entend la diffusion et répond avec un message DHCPOFFER. Si un serveur DHCP n'existe pas sur le sous-réseau local, il doit y avoir un agent DHCP / BootP Relay sur ce sous-réseau local pour transmettre le message DHCPDISCOVER à un sous-réseau contenant un serveur DHCP.

Cet agent de relais peut soit être un hôte dédié (par exemple, Microsoft Windows Server), soit un routeur (par exemple, un routeur Cisco configuré avec des instructions IP helper d'interface).

Une fois que le client reçoit un DHCPOFFER, il répond avec un message DHCPREQUEST, indiquant son intention d'accepter les paramètres dans DHCPOFFER et se déplace dans l'état de demande. Le client peut recevoir plusieurs messages DHCPOFFER, un de chaque serveur DHCP qui a reçu le message DHCPDISCOVER original. Le client choisit un DHCPOFFER et répond à ce serveur DHCP uniquement, déclinant implicitement tous les autres messages DHCPOFFER. Le client identifie le serveur sélectionné en remplissant le champ d'option Identificateur de serveur avec l'adresse IP du serveur DHCP. Le DHCPREQUEST est également une diffusion, de sorte que tous les serveurs DHCP qui ont envoyé un DHCPOFFER verront le DHCPREQUEST, et chacun saura si son DHCPOFFER a été accepté ou refusé. Toutes les options de configuration supplémentaires requises par le client seront incluses dans le champ d'options du message DHCPREQUEST. Même si le client a reçu une adresse IP, il enverra le message DHCPREQUEST avec une adresse IP source de 0.0.0.0. À l'heure actuelle, le client n'a pas encore vérifié qu'il est clair d'utiliser l'adresse IP.

Conversation client-serveur pour client Obtenir une adresse DHCP où le serveur client et DHCP réside sur le même sous-réseau

Entrez la description de l'image ici

Source: Compréhension et dépannage DHCP dans Catalyst Switch ou Enterprise Networks


Route par défaut

Ce document explique comment configurer une route par défaut ou une passerelle de dernier recours. Ces commandes IP sont utilisées:

  • Ip default-gateway

  • Ip default-network

  • Et ip route 0.0.0.0 0.0.0.0

Route ip 0.0.0.0 0.0.0.0

Création d'une route statique vers le réseau 0.0.0.0 0.0.0.0 est une autre façon de définir la passerelle de dernier recours sur un routeur. Comme pour la commande ip default-network, l'utilisation de la route statique vers 0.0.0.0 ne dépend pas de tous les protocoles de routage. Cependant, le routage ip doit être activé sur le routeur.

Remarque: IGRP ne comprend pas un chemin vers 0.0.0.0. Par conséquent, il ne peut pas propager des itinéraires par défaut créés à l'aide de la commande ip 0.0.0.0 0.0.0.0. Utilisez la commande ip default-network pour que IGRP propage une route par défaut.

Source: Configuration d'une passerelle du dernier recours en utilisant les commandes IP

Ils ne sont pas les mêmes.

127.0.0.1 fait partie du réseau 127/8 qui est réservé et pointe sur le même ordinateur.

0.0.0.0 est une adresse IP spéciale qui signifie différentes choses en fonction du contexte.

Dans la version 4 du protocole Internet, l'adresse 0.0.0.0 est une méta-adresse non routable utilisée pour désigner une cible non valide, inconnue ou non applicable. Donner une signification particulière à une donnée autrement invalide est une application de signalisation en bande.

Vous avez peut-être faussé 0.0.0.0 pour 127.0.0.1 lorsque vous regardez netstat et que vous consultez l'adresse locale en écoutant en 0.0.0.0, mais c'est une manière différente. 0.0.0.0 est utilisé.

Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur la machine locale". Si un hôte possède deux adresses ip, 192.168.1.1 et 10.1.2.1, et qu'un serveur s'exécutant sur l'hôte écoute sur 0.0.0.0, il sera accessible à ces deux adresses IP.

Dans le contexte du routage, 0.0.0.0 signifie habituellement l'itinéraire par défaut, c'est-à-dire l'itinéraire qui conduit au «reste» de l'Internet au lieu de quelque part sur le réseau local.

https://en.wikipedia.org/wiki/0.0.0.0

127.0.0.1 une des adresses de l'ordinateur local, mais toute adresse 127.xyz est également une autre adresse de l'ordinateur (appelée "adresse de bouclage"), à l'exception de 127.0.0.0 (sous-réseau de bouclage) et 127.255.255.255 (adresse de diffusion pour la boucle de retour Sous-réseau).

127.xyz signifie "ici".

0.0.0.0 est totalement différent: 0.0.0.0 n'est pas l'adresse de rien , c'est le joker, comme * en shell.

Vous ne pouvez pas envoyer de données à 0.0.0.0 ou ouvrir activement une connexion TCP à 0.0.0.0 car il n'y a rien là-bas; 0.0.0.0 n'est même pas une adresse inaccessible ou non roulante, il n'a pas de sens dans un contexte où une adresse est attendue .

Vous pouvez utiliser le joker 0.0.0.0 dans des contextes où une adresse peut être fournie optionnellement , ce qui signifie que je m'en fous .

Par exemple, lorsque vous ouvrez activement une connexion TCP à un serveur TCP (un serveur TCP est créé par un TCP passif ouvert), vous devez spécifier l'adresse du serveur TCP (IP et numéro de port) et vous pouvez éventuellement choisir un adresse locale. (Parce que votre socket n'est pas un socket serveur, personne ne peut ouvrir une connexion et l'adresse de votre côté de la connexion n'est généralement pas très importante.)

L'appel du système bind est utilisé pour choisir l'adresse locale d'un socket TCP. Les données transmises à bind sont vraiment un ensemble de contraintes: contrainte sur l'adresse IP, contrainte sur le port TCP. La notation de texte habituelle est IP: port. 0.0.0.0:0 signifie que n'importe quel port IP est acceptable, c'est la contrainte nulle. 0.0.0.0:20 signifie que le port local doit être 20, toute IP est acceptable (0.0.0.0:20 est utilisé en conformant les serveurs FTP pour la connexion de données en mode actif).

Le sous-système TCP / IP choisira l'adresse de votre côté de la connexion TCP si vous ne choisissez pas une, à l'aide de la table de routage, en fonction de l'adresse de destination: l'adresse de socket TCP locale sera l'adresse locale associée à l'itinéraire correspondant À l'adresse de destination.

J'ai déjà mentionné la coquille "méta-caractère" * , mais le pouvoir de combiner des méta-caractères avec des caractères comme *foo* (tout nom de fichier contenant "foo") n'existe pas avec les contraintes d'adresse IP, c'est tout ou rien: non plus Une seule adresse IP est jugée acceptable ou toutes les adresses sont. La logique ne dicte pas qu'il doit être ainsi. Vous pouvez étendre l'interface avec une langue de contrainte plus riche.

Précision:

La phrase 127.xyz signifie "ici" n'implique pas que toutes ces adresses soient identiques. Ils représentent différents «emplacements» (adresses de socket), à l'intérieur du «ordinateur» local, à l'intérieur de la pile IP locale en fait.

Remarque: un ordinateur avec virtualisation (émulation, virtualisation matérielle, paravirtualisation, tout ce que vous pouvez penser …) possède plusieurs piles IP indépendantes.

Généralement, vous utilisez bind-address 0.0.0.0 pour autoriser les connexions à partir de réseaux externes et de sources. Beaucoup de serveurs comme MySQL se lient typiquement à 127.0.0.1 permettant uniquement des connexions de bouclage, ce qui nécessite que l'administrateur le modifie à 0.0.0.0 pour permettre une connectivité externe.