Pourquoi mon Pi a-t-il toujours la même adresse IP?


22

Mon routeur utilise DHCP, et chaque fois que je reformate mon Raspberry Pi, même lorsque j'utilise une carte microSD différente, il a toujours la même IP LAN. Je ne sais pas trop comment les IP sont attribuées, mais je suppose que l'appareil a un identifiant unique sur le réseau que mon routeur reconnaît?


Comment est-ce arrivé? Je pose une question sur SE et elle a un nombre de votes positif! Et ça fait beaucoup de votes positifs.

Réponses:


36

Votre Raspberry Pi possède un identifiant unique, appelé adresse MAC, en fait deux pour être précis. Chaque adaptateur réseau en possède un. Ainsi, l'adaptateur Wi-Fi a un ID unique et l'adaptateur Ethernet en a.

Et c'est pourquoi votre Raspberry Pi obtient la même IP. Pour votre routeur, ce que vous faites exactement avec l'appareil n'est pas important. Il reconnaît simplement le MAC et fournit la même IP qu'auparavant.

Edit: Comme l'a souligné Beege, l'IP peut toujours changer car le «D» dans DHCP signifie dynamique. Mais si votre appareil obtient la même IP qu'auparavant via DHCP, c'est à cause du MAC qui est reconnu.


9
Bonne explication. Je pense qu'il convient de mentionner que la même adresse MAC n'obtiendra pas toujours la même IP du serveur DHCP - c'est toujours un service "dynamique", il est donc possible que l'IP soit prise par un autre appareil et que votre Pi se retrouve avec un autre Attribution IP.
Beege

3
@Beege oh oui, absolument, merci! On peut choisir de réserver une IP spécifique pour le Pi lorsqu'une IP permanente est souhaitée, par exemple lors de l'exécution d'un serveur dessus. Mais cela doit être activé spécifiquement avec le routeur (ou tout autre appareil fournissant un service DHCP sur le réseau)
ItsKiddow

2
actually two to be precise- en supposant pi3b ou 3b +
Jaromanda X

7
Le fait que l'adresse IP soit la même n'est PAS à cause du MAC. Le MAC est un identifiant auquel le routeur a accès. Le routeur peut être configuré pour essayer de vous donner la même adresse IP lorsque le bail est renouvelé, ou il peut vous en attribuer une autre de manière aléatoire. Votre routeur est configuré (par le fabricant) pour faire le premier. Cela empêche en fait beaucoup de problèmes de réseau causés par des problèmes liés à l'IP dynamique (les ports d'impression IP viennent à l'esprit). La possibilité d'obtenir la même IP est due au MAC, mais je peux facilement configurer le DHCP sur le routeur pour donner à une pile de différents appareils la même IP.
Nelson

1
Une implémentation DHCP de qualité mettra en cache les adresses MAC et IP précédentes. Lorsqu'il voit une adresse MAC mise en cache, il a tendance à proposer à nouveau la même IP (si elle est disponible). Il résistera également à l'attribution de l'adresse IP à une adresse MAC différente, sauf s'il ne reste aucune adresse libre. Étant donné que cela dépend de l'implémentation spécifique ... et que la qualité des routeurs domestiques est partout ... le comportement ne sera pas nécessairement cohérent selon le modèle de votre routeur.
Tim Campbell

16

En plus des réponses déjà données, je donnerai quelques informations supplémentaires.

En général, le protocole DHCP est conçu pour réduire autant que possible les changements dynamiques. C'est un aspect de la stabilité. Cela n'a pas beaucoup d'importance sur les petits réseaux domestiques, mais les grands réseaux avec des commutateurs et des routeurs ont besoin de temps pour atteindre un état optimisé. Les commutateurs doivent apprendre ses voisins et le routeur doit apprendre les itinéraires. Les changements importants d'adresses IP ne sont pas bons pour cet état.

La plupart des gens peuvent penser que le serveur DHCP donne simplement une adresse IP à un client et c'est tout. Mais ce n'est que la moitié de la vérité. Voici une poignée de main DHCP typique:

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.75 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

Comme vous pouvez le voir, le client identifié avec son adresse mac b8: 27: eb: 0e: 3c: 6f demande une adresse IP spécifique qu'il préfère. Il sait quelle adresse IP il a avant, même après un nouveau démarrage. Le serveur DHCP ne fait que le confirmer. Ce que cela donne au client s'appelle un bail . Il contient un délai d'expiration (ainsi que de nombreuses autres options importantes) pendant combien de temps le client peut utiliser l'adresse IP sans demander à nouveau. Le délai d'attente dépend de la configuration et est généralement défini sur quelques heures. Le serveur DHCP stocke le bail dans son cache et le réserve le plus longtemps possible au même client, même s'il est à l'arrêt. Il confirmera donc simplement le client pour son bail lors de son redémarrage. Ce n'est que lorsque le serveur n'a pas d'autres baux inutilisés à donner aux clients qu'il prendra celui utilisé. La poignée de main ressemblera alors à ceci:

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPNAK on 192.168.10.75 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPDISCOVER from b8:27:eb:0e:3c:6f via wlan0
(server) DHCPOFFER on 192.168.10.99 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPREQUEST for 192.168.10.99 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.99 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

Comme vous pouvez le voir, le serveur DHCP rejette (DHCPNAK) la demande et propose une nouvelle adresse IP qui, à l'étape suivante, est demandée par le client. Cette étape supplémentaire est faite pour donner au client la possibilité de ne pas accepter l'adresse IP proposée ...


4
+1 À mon humble avis, c'est la bonne réponse. C'est simplement la façon dont le protocole DHCP fonctionne.
Jos
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.