Conexão de um adaptador de 10 / 100Mb a uma LAN de 1000Mb

2

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.

    
por Stavros Vagionitis 06.03.2012 / 13:46

3 respostas

3

Meu pensamento inicial é que seu script 'up' na interface não está chamando o cliente dhcp, mas o cliente dhcp é chamado em algum lugar em um dos runlevels no processo de inicialização.

Depois de fazer o ifconfig eth0 up, você tentou executar o dhclient? Eu não estou familiarizado com o Linux-MIPSEL, mas esta seria minha linha de investigação. Se isso funcionar, encontre o seu arquivo eth0-up ou similar e verifique isso.

Eu duvido que tenha alguma coisa a ver com um NIC de 100Mb em um switch de 1Gb. O switch e o NIC vão negociar por 100Mb e será isso, o seu problema está em uma camada diferente.

    
por 06.03.2012 / 13:50
2

ifconfig eth0 up não faz nada além de colocar o dispositivo ethernet, ou seja, torná-lo ativo. Você precisa atribuir um endereço IP estático (com ifconfig eth0 192.168.0.2 , por exemplo) ou executar um cliente dhcp para obter um endereço IP (no seu caso, udhcpc ).

    
por 06.03.2012 / 14:15
0

Você verificou o cabo? Certa vez, usei um cabo cruzado em vez de um reto e tive problemas semelhantes.

    
por 06.03.2012 / 16:13