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 mostradoSpeed: 1000Mb/s
eDuplex: Full
. Descobriria mais tarde, em 30 de abril de 2015, que a porta defeituosa teria feito com queethtool
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