Tempo limite do NetworkManager e “ip-config-unavailable” na Ethernet

5

Não consigo fazer com que este laptop, Craptop , conecte-se à Internet usando a interface eth0 , mas ele pode se conectar usando a interface wlan0 . O NetworkManager, gerenciando eth0 , expira ao tentar encontrar um servidor DHCP (presente como meu roteador doméstico, 192.168.0.1 ).

Um laptop diferente, Deltique , pode se conectar e negociar o DHCP muito bem usando o mesmo cabo Ethernet.

Depois de pedir ao Wireshark para monitorar eth0 em ambas as máquinas, descobri que Deltique negociou um endereço IP com 192.168.0.1 após enviar uma transmissão em 255.255.255.255 , mas Craptop enviou quatro transmissões DHCP sem receber resposta.

Parece que a porta Ethernet em Craptop é funcional, pois pode detectar quando eu conecto o fio, mas por que o Craptop não pode receber nenhum pacote?

O Craptop está sem um driver? Como posso resolver isso ainda mais?

Eu incluí detalhes da minha configuração abaixo:

Logs e saídas de comando

NetworkManager (de /var/log/syslog )

lshw

Wireshark: pacotes DHCP

Noteque esta questão de superusuário não está relacionada, pois fala sobre não conseguir se conectar para wlan0 .

    
por Deltik 29.12.2014 / 01:44

1 resposta

6

A causa provável era uma porta Ethernet com defeito no roteador. Eu não encontrei a evidência para suportar isso até 30 de abril de 2015, e não fiz a conexão até 10 de agosto de 2015.

O que eu deveria ter feito

Mais algumas etapas de solução de problemas:

  • Eu deveria ter executado sudo ethtool -S eth0 para ver se havia algum erro nas estatísticas do controlador de interface de rede (NIC).

    Como eu consegui enviar, mas não recebi por Ethernet, talvez eu tenha visto algo como o incremento de estatística rx_crc_errors em cada tentativa de recebimento.

  • Eu deveria ter tentado conectar a extremidade do roteador do cabo Ethernet a uma porta de roteador diferente.

    Claro, liguei a extremidade do computador do cabo Ethernet em dois computadores diferentes, mas isso me levou a acreditar que um computador ( Craptop ) estava com defeito porque o outro ( Deltique ) foi capaz de se conectar ao roteador.

  • No computador de trabalho, Deltique , eu deveria ter corrido sudo ethtool eth0 para ver se um bom link foi estabelecido.

    Deltique tem capacidade de 1Gbps, assim como o roteador, então ethtool deve ter mostrado Speed: 1000Mb/s e Duplex: Full . Descobriria mais tarde, em 30 de abril de 2015, que a porta defeituosa teria feito com que ethtool retornasse valores diferentes e mais preocupantes.

  • Eu deveria ter executado um teste de velocidade para testar o link Ethernet para garantir que eu estava obtendo o desempenho total esperado entre Deltique e o roteador.

    Se eu tivesse feito um teste de velocidade, provavelmente teria visto uma velocidade de transferência de 1 MiB / s, indicando um problema de link, mesmo em Deltique .

  • Para descartar um problema no cabo, eu deveria ter tentado usar um cabo Gigabit Ethernet diferente.

    Acontece que o cabo estava bem, mas esta é uma boa etapa de solução de problemas.

Evidências e Explicação

Em 30 de abril de 2015, percebi que o meu comando trusty rsync -avzHXShPs estava no limite de cerca de 1 MiB / s. Eu descartei outro tráfego monitorando iftop e tentando um download da Internet em um computador diferente, que transferiu dados dez vezes mais rápido.

Eu verifiquei o link da rede com ethtool :

root@node51 [~]# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: No
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

Aha! 10 Mbps em half duplex. Isso não é normal e é muito lento. Para referência, essa era a saída esperada (boa), capturada pela comutação de portas Ethernet no roteador:

root@node51 [~]# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

O computador e o roteador tentaram negociar > velocidades mais lentas e mais lentas até que uma confiável possa ser estabelecida. O mais lento, o half duplex 10BASE-T, foi escolhido.

Forçar o desempenho esperado full duplex 1000BASE-T ( ethtool -s eth0 speed 1000 duplex full ) fez com que o computador afetado fosse desconectado da rede, sugerindo strongmente que o roteador não queria falar em um link mais rápido.

Craptop , que é limitado a 100Mbps full duplex em primeiro lugar, provavelmente não teve a chance de negociar half duplex de 10Mbps.

Agora que identifiquei a porta Ethernet incorreta, tudo o que preciso fazer é não usar essa porta ou obter um novo roteador.

Em 27 de julho de 2015, devolvi o roteador com defeito depois de instalar um novo roteador.

Hoje, Craptop está sendo executado em uma ligação de rede tolerante a falhas com uma conexão Ethernet full duplex de 100Mbps:

root@node52 [~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: wlan0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 3
Permanent HW addr: 00:1f:3a:55:dc:0d
Slave queue ID: 0

Slave Interface: eth0
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:1e:68:32:4a:b5
Slave queue ID: 0
    
por 10.08.2015 / 09:45