Errores en la interfaz de red (dropped rx packets)

Si el comando ifconfig muestra perdida de paquetes entrantes (dropped rx packets) en la interfaz de red y al colocar un sniffer el numero de paquetes perdidos se mantiene inmutable, las causas pueden ser las siguientes.

RX packets:23749 errors:0 dropped:8540 overruns:0 frame:0

Causas (Kernel >= 2.6.37): http://www.novell.com/support/kb/doc.php?id=7007165

Si por el contrario se siguen perdiendo paquetes estando tcpdump o cualquier otro sniffer en funcionamiento, debemos buscar el origen del problema. En la gran mayoría de casos vale con ampliar el buffer de la interfaz de red utilizada.

Listando los parametros de eth0.

ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096
Current hardware settings:
RX:             256
RX Mini:        0
RX Jumbo:       0
TX:             256

La primera sección “máximos preestablecidos” muestra los valores máximos que se podrían establecer para todos los parámetros disponibles. La segunda sección muestra el valor de cada parámetro actualmente.

Aumentar el ring buffer para RX.

ethtool -G eth0 rx 1020

Si queremos que ese cambio se realice siempre después de arrancar el sistema, podemos definir el comando en el fichero /etc/rc.local.

Filtros útiles para tcpdump / wireshark

tcp.analysis.retransmission 
tcp.analysis.ack_lost_segment
tcp.analysis.lost_segment
tcp.analysis.out_of_order
tcp.segment.error