Eu tenho o seguinte problema. Não consigo obter um endereço IP usando o DHCP. Eu tenho um adaptador de 10 / 100Mb em um set-top box conectado a uma LAN de 1000Mb.
Quando eu inicializo o set-top box, ele recebe um IP do servidor DHCP. Mas quando desativo a interface ethernet usando
ifconfig eth0 down
deixe por cerca de 10 minutos e reative-o com
ifconfig eth0 up
não recebe um IP. O sistema operacional do set-top box é um Linux-MIPSEL com kernel 2.6.22.19 e o aplicativo udhcpc é usado para obter IP do DHCP.
A aplicação
udhcpc está iniciando corretamente, como eu posso ver. Eu também usei o tcpdump para ver as transações do pacote. O comando que usei é o seguinte:
tcpdump -lenx -i eth0 -l -vvv port bootps or port bootpc
O log do tcpdump mostrou que foi enviado um pacote do Discover, mas eu não recebi nenhuma resposta do servidor DHCP. Os arquivos de log do servidor mostram que o servidor está enviando uma Oferta, mas eu não recebo este pacote.
Como não sou especialista em rede, você pode sugerir qual pode ser o problema? Será que eu tenho um adaptador de 10 / 100Mb para uma LAN de 1000Mb? Ou pode ser outra coisa?
PS: Eu também usei um switch de 10 / 100Mb para conectar à LAN, mas recebo o mesmo problema.
Atualização 1:
Depois de usar como cliente dhcp o udhcpc, pensei em tentar outra coisa. Então eu instalei o ConnMan que é um gerenciador de rede e tem seu próprio cliente dhcp. Infelizmente, eu tive um resultado semelhante, em vez de não obter IP, eu estava recebendo o endereço da APIPA , que é semelhante a não receber um IP. Eu começo a pensar que talvez o endianness tenha algo a ver ...
Atualização 2:
Desculpe pelo atraso, eu testei o set-top box para alguns roteadores domésticos como um Cisco-Linksys E1500 e funciona sem nenhum problema. Eu também tenho mais informações sobre a LAN. Há um interruptor entre o servidor DHCP e o set-box, um Netgear GS724TS com Hardware ver 00.00.01, Boot ver 1.0.0.07 e Software ver V3.1.0.1. Como eu posso ver na seção Monitor da interface web do switch, não há muita informação, mesmo se eu selecionar a depuração no filtro de log.