
Eu tenho um dispositivo baseado em microcontrolador com um bootloader e um aplicativo. O dispositivo possui um adaptador Ethernet. O bootloader usa IP/UDP para atualizar a imagem do aplicativo. O aplicativo possui uma pilha TCP/IP completa.
Ambos os componentes usam DHCP para obter um endereço IP. O estranho é que ambos obtêm resultados diferentes no processo DHCP. Ambos os clientes DHCP estão configurados para usar uma mensagem DHCPDISCOVER com o mesmo endereço MAC.
O que um servidor DHCP deve enviar no DHCPOFFER? Deveria oferecer o mesmo endereço IP para o mesmo endereço MAC quando o endereço IP não estiver atribuído em outro lugar?Editar: A última atribuição de endereço foi há 10 segundos.
O servidor DHCP está sendo executado em um host Linux. Como posso configurar tal veículo para poder monitorar e entender esse comportamento?
Editar: não tenho controle sobre a configuração do servidor DHCP. O administrador deseja manter o controle total.
Existem outras configurações de DHCP que podem estar no gerenciador de inicialização ou no aplicativo que podem afetar o resultado do DHCP?
Responder1
Depende da configuração do tempo de locação. Se for longo o suficiente, seu aplicativo receberá o mesmo endereço.
Mas se você quiser garantia, declare um endereço fixo para o seu Mac no servidor.
Se você estiver usando dhcpd, algo assim:
host foo {
hardware ethernet 00:11:22:33:44:55;
fixed-address 1.2.3.4;
}
Na verdade sim, existe uma maneira de sugerir IP em DHCPDISCOVERY configurando a opção (50) requested IP address
. Mas não sei se os servidores reconhecem isso.
Há também a opção (51) IP address lease time
, que pode ser usada no carregador de boot para sugerir um período mais longo, mas também não tenho certeza sobre a resposta do servidor.
Mais informaçõesrfc2131
Responder2
Quando um cliente DHCP envia um DHCPDISCOVER, o servidor deve descartar o registro DHCP. Existem servidores que obterão o mesmo endereço IP. Isso não está errado, mas nem é necessário.
Para manter o endereço DHCP o cliente deve enviar um DHCPACQUIRE com a configuração IP armazenada em cache. O servidor DHCP irá confirmar ou negar. Enviar DHCPDISCOVER é apenas uma má ideia nesta situação.