¿Por qué mi Pi siempre tiene la misma dirección IP?

22

Mi enrutador usa DHCP, y cada vez que reformateo mi raspberry pi, incluso cuando uso una tarjeta microSD diferente, siempre tiene la misma IP de LAN. No estoy muy seguro de cómo se asignan las IP, pero supongo que el dispositivo tiene una identificación única en la red que reconoce mi enrutador.


fuente
¿Cómo pasó esto? ¡Hago una pregunta sobre SE y tiene un número positivo de votos! Y eso es un montón de votos a favor.

Respuestas:

36

Su Raspberry Pi tiene una identificación única, llamada dirección MAC, en realidad dos para ser precisos. Cada adaptador de red tiene uno de esos. Entonces, el adaptador de Wi-Fi tiene una identificación única y el adaptador de Ethernet tiene.

Y es por eso que su Raspberry Pi obtiene la misma IP. Para su enrutador no es importante lo que está haciendo exactamente con el dispositivo. Simplemente reconoce el MAC y proporciona la misma IP que antes.

Editar: como señaló Beege, la IP aún puede cambiar ya que la 'D' en DHCP significa dinámico. Pero si su dispositivo obtiene la misma IP que antes a través de DHCP, se debe al MAC que se reconoce.

ItsKiddow
fuente
99
Buena explicación. Creo que vale la pena mencionar que la misma dirección MAC no siempre obtendrá la misma IP del servidor DHCP: sigue siendo un servicio "dinámico", por lo que es posible que la IP sea tomada por otro dispositivo y su Pi termine con una dirección diferente. Asignación de IP.
Beege
3
@Beege oh sí, absolutamente, ¡gracias! Uno puede optar por reservar una IP específica para el Pi cuando se desea una IP permanente, por ejemplo, cuando se ejecuta un servidor en él. Pero esto se habilitará específicamente con el enrutador (o cualquier otro dispositivo que brinde servicio DHCP en la red)
ItsKiddow
2
actually two to be precise- asumiendo pi3b o 3b +
Jaromanda X
77
El hecho de que la IP sea la misma NO se debe al MAC. El MAC es un identificador al que tiene acceso el enrutador. El enrutador se puede configurar para intentar darle la misma IP cuando se renueve el contrato de arrendamiento, o puede asignarle uno diferente al azar. Su enrutador está configurado (por el fabricante) para hacer lo primero. En realidad, esto evita muchos problemas de red causados ​​por problemas relacionados con la IP dinámica (los puertos de impresión IP vienen a la mente). La capacidad de obtener la misma IP se debe al MAC, pero puedo configurar fácilmente el DHCP en el enrutador para dar a un montón de dispositivos diferentes la misma IP.
Nelson
1
Una implementación DHCP de calidad almacenará en caché las direcciones MAC y las asignaciones de IP anteriores. Cuando ve una dirección MAC en caché, tenderá a ofrecer la misma IP (si está disponible) nuevamente. También resistirá dar la IP a una dirección MAC diferente a menos que no le queden direcciones libres. Dado que esto se basa en la implementación específica ... y la calidad de los enrutadores domésticos está por todas partes ... el comportamiento no necesariamente será consistente dependiendo del modelo de su enrutador.
Tim Campbell
16

Además de las respuestas ya dadas, daré información de fondo adicional.

En general, el protocolo DHCP está hecho para reducir los cambios dinámicos tanto como sea posible. Es un aspecto de la estabilidad. No importa mucho en redes domésticas pequeñas, pero las redes grandes con conmutadores y enrutadores necesitan algo de tiempo para obtener un estado optimizado. Los conmutadores deben conocer a sus vecinos y el enrutador debe conocer las rutas. Grandes cambios de direcciones IP no son buenos para este estado.

La mayoría de la gente puede pensar que el servidor DHCP simplemente le da una dirección IP a un cliente y eso es todo. Pero es solo la mitad de la verdad. Aquí hay un apretón de manos típico de DHCP:

(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

Como puede ver, el cliente identificado con su dirección mac b8: 27: eb: 0e: 3c: 6f solicita una dirección IP específica que prefiere. Sabe qué dirección IP tiene antes, también después de un nuevo inicio. El servidor DHCP solo lo confirma. Que lo que le da al cliente se llama arrendamiento . Contiene un tiempo de espera (junto con muchas otras opciones importantes) durante cuánto tiempo el cliente puede usar la dirección IP sin solicitarlo nuevamente. El tiempo de espera depende de la configuración y se establece principalmente en algunas horas. El servidor DHCP almacena el arrendamiento en su caché y lo reservará el mayor tiempo posible para el mismo cliente, también si está apagado. Por lo tanto, solo confirmará al cliente para su arrendamiento cuando vuelva a arrancar. Solo cuando el servidor no tenga otros arrendamientos no utilizados para dar a los clientes, tomará el arriendo usado. El apretón de manos se verá así:

(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

Como puede ver, el servidor DHCP rechaza (DHCPNAK) la solicitud y ofrece una nueva dirección IP que luego, en el siguiente paso, solicita el cliente. Este paso adicional se hace para dar al cliente la posibilidad de no aceptar la dirección IP ofrecida ...

Ingo
fuente
44
+1 en mi humilde opinión, esta es la respuesta correcta. Es simplemente la forma en que funciona el protocolo DHCP.
Jos