Por que meu Pi sempre tem o mesmo endereço IP?

22

Meu roteador usa DHCP e sempre que reformato meu raspberry pi, mesmo ao usar um cartão microSD diferente, ele sempre tem o mesmo IP da LAN. Não sei ao certo como os IPs são atribuídos, mas presumo que o dispositivo tenha um ID exclusivo na rede que meu roteador reconheça?


fonte
Como isso aconteceu? Eu faço uma pergunta no SE e tem um número positivo de votos! E isso é um monte de votos.

Respostas:

36

Seu Raspberry Pi possui um ID exclusivo, chamado endereço MAC, na verdade dois para ser mais preciso. Cada adaptador de rede possui um desses. Portanto, o adaptador Wi-Fi possui um ID exclusivo e o adaptador Ethernet possui.

E é por isso que o seu Raspberry Pi obtém o mesmo IP. Para o seu roteador, não é importante o que você está fazendo exatamente com o dispositivo. Apenas reconhece o MAC e fornece o mesmo IP de antes.

Edit: Como Beege apontou, o IP ainda pode mudar, pois o 'D' no DHCP significa dinâmico. Mas se o seu dispositivo obtém o mesmo IP de antes via DHCP, é por causa do MAC que é reconhecido.

ItsKiddow
fonte
9
Boa explicação. Acho que vale a pena mencionar que o mesmo endereço MAC nem sempre obtém o mesmo IP do servidor DHCP - ainda é um serviço "dinâmico", portanto é possível que o IP seja capturado por outro dispositivo e seu Pi termine com um endereço diferente. Atribuição de IP.
Beege
3
@ Beeg oh sim, absolutamente, obrigado! Pode-se optar por reservar um IP específico para o Pi quando um IP permanente for desejado, por exemplo, ao executar um servidor nele. Mas isso deve ser ativado especificamente com o roteador (ou qualquer outro dispositivo que forneça serviço DHCP na rede)
ItsKiddow
2
actually two to be precise- assumindo pi3b ou 3b +
Jaromanda X
7
O fato de o IP ser o mesmo NÃO é por causa do MAC. O MAC é um identificador ao qual o roteador tem acesso. O roteador pode ser configurado para tentar fornecer o mesmo IP quando a concessão for renovada ou pode atribuir aleatoriamente um diferente. Seu roteador está configurado (pelo fabricante) para executar o primeiro. Na verdade, isso evita muitos problemas de rede causados ​​por problemas dinâmicos relacionados ao IP (portas de impressão IP vêm à mente). A capacidade de obter o mesmo IP deve-se ao MAC, mas posso configurar facilmente o DHCP no roteador para fornecer ao mesmo IP uma pilha de dispositivos diferentes.
Nelson
1
Uma implementação DHCP de qualidade armazenará em cache endereços MAC e atribuições de IP anteriores. Quando vir um endereço MAC em cache, ele tenderá a oferecer o mesmo IP (se estiver disponível) novamente. Ele também resistirá em fornecer o IP para um endereço MAC diferente, a menos que não haja endereços livres restantes. Como isso depende da implementação específica ... e a qualidade dos roteadores domésticos está em toda parte ... o comportamento não será necessariamente consistente, dependendo do modelo do seu roteador.
Tim Campbell
16

Além das respostas já fornecidas, darei algumas informações adicionais.

Em geral, o protocolo DHCP é feito para reduzir ao máximo as alterações dinâmicas. É um aspecto da estabilidade. Não importa muito em pequenas redes domésticas, mas grandes redes com switches e roteadores precisam de algum tempo para entrar em um estado otimizado. Os switches precisam aprender seus vizinhos e o roteador precisa aprender as rotas. Mudanças pesadas de endereços IP não são boas para esse estado.

A maioria das pessoas pode pensar que o servidor DHCP apenas fornece um endereço IP para um cliente e é isso. Mas é apenas metade da verdade. Aqui está um handshake de DHCP típico:

(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 você pode ver, o cliente identificado com o endereço MAC b8: 27: eb: 0e: 3c: 6f solicita um endereço IP específico de sua preferência. Ele sabe qual endereço IP possui antes, também após uma nova inicialização. O servidor DHCP apenas o confirma. O que isso dá ao cliente é chamado de arrendamento . Ele contém um tempo limite (juntamente com muitas outras opções importantes) por quanto tempo o cliente pode usar o endereço IP sem solicitar novamente. O tempo limite depende da configuração e geralmente é definido como algumas horas. O servidor DHCP armazena a concessão em seu cache e a reserva o maior tempo possível para o mesmo cliente, também se estiver desligado. Portanto, apenas confirmará o cliente para sua concessão quando for inicializado novamente. Somente quando o servidor não tiver outras concessões não utilizadas para oferecer aos clientes, será utilizado o usado. O aperto de mão ficará assim:

(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 você pode ver, o servidor DHCP rejeita (DHCPNAK) a solicitação e oferece um novo endereço IP que, na próxima etapa, é solicitado pelo cliente. Esta etapa adicional é feita para dar ao cliente a possibilidade de não aceitar o endereço IP oferecido ...

Ingo
fonte
4
+1 IMHO esta é a resposta correta. É simplesmente a maneira como o protocolo DHCP funciona.
Jos