Como testar uma placa ethernet?

2

Eu tenho uma placa Ethernet USB > que pode ou não estar de alguma forma quebrada. O problema é que eu realmente não sei como testá-lo. Eu tenho uma porta Ethernet normal também, então eu posso ligar um cabo (já testado) de um para o outro, mas então o que?

Eu poderia configurar o NAT em uma interface e tentar conectar com o outro, mas isso parece um pouco excessivo, assim como possibilidades para outros problemas. Eu quero um jeito de apenas enviar um quadro Ethernet bruto e ver se o outro lado o recebe.

Eu olhei para netcat um pouco, mas funciona no nível TCP / UDP, enquanto parece que eu preciso trabalhar no nível do frame Ethernet.

Qual seria a melhor maneira de testar esse adaptador Ethernet USB & gt?

    
por Shelvacu 24.09.2014 / 06:01

1 resposta

4

Para iniciantes, você pode usar a ferramenta ethtool para executar os autotestes da sua NIC.

trecho da página man
 ethtool -t|--test DEVNAME  Execute adapter self test

Exemplo

$ sudo ethtool -t eth0
The test result is PASS
The test extra info:
Register test  (offline)     0
Eeprom test    (offline)     0
Interrupt test (offline)     0
Loopback test  (offline)     0
Link test   (on/offline)     0

Observar as estatísticas da NIC também pode ser útil em termos de diagnosticar seu problema ainda mais.

$ sudo ethtool -S eth0
NIC statistics:
     rx_packets: 988097069
     tx_packets: 589028032
     rx_bytes: 1291674232357
     tx_bytes: 116257143322
     rx_broadcast: 210375
     tx_broadcast: 34690
     rx_multicast: 69184
     tx_multicast: 179
     rx_errors: 0
     tx_errors: 0
     tx_dropped: 0
     multicast: 69184
     collisions: 0
     rx_length_errors: 0
     rx_over_errors: 0
     rx_crc_errors: 0
     rx_frame_errors: 0
     rx_no_buffer_count: 0
     rx_missed_errors: 0
     tx_aborted_errors: 0
     tx_carrier_errors: 0
     tx_fifo_errors: 0
     tx_heartbeat_errors: 0
     tx_window_errors: 0
     tx_abort_late_coll: 0
     tx_deferred_ok: 0
     tx_single_coll_ok: 0
     tx_multi_coll_ok: 0
     tx_timeout_count: 0
     tx_restart_queue: 346104
     rx_long_length_errors: 0
     rx_short_length_errors: 0
     rx_align_errors: 0
     tx_tcp_seg_good: 0
     tx_tcp_seg_failed: 0
     rx_flow_control_xon: 56
     rx_flow_control_xoff: 56
     tx_flow_control_xon: 0
     tx_flow_control_xoff: 0
     rx_long_byte_count: 1291674232357
     rx_csum_offload_good: 987406053
     rx_csum_offload_errors: 3730
     rx_header_split: 0
     alloc_rx_buff_failed: 0
     tx_smbus: 0
     rx_smbus: 0
     dropped_smbus: 0
     rx_dma_failed: 0
     tx_dma_failed: 0

Qualquer uma das estatísticas que contiverem a string "error" deve ser zero. Se eles não são, então eu iria perseguir o que pode ter causado isso.

    
por 24.09.2014 / 06:27