misteriosos rx_crc_errors en la interfaz de enlace ascendente del enrutador Linux

misteriosos rx_crc_errors en la interfaz de enlace ascendente del enrutador Linux

Tengo una máquina Linux que ejecuta Debian 11 que actúa como enrutador entre un dispositivo ubicado en el borde y una máquina host. Mientras ejecuta un curlcomando para descargar un archivo, la interfaz que mira hacia el bordecomenzará a acumularse rx_crc_errorsesporádica pero consistentemente- el conteo aumenta a borbotones, con un promedio de quizás uno o dos por segundo. El resultado es que tanto desde el enrutador como desde la máquina host detrás de él, este curlcomando se ejecuta muy lento y se descarga a una fracción de la velocidad disponible en la línea (y he verificado otros enrutadores y servidores que pasan por el mismo dispositivo perimetral y corre a mayor velocidad y no acumula rx_crc_errors).

El enrutador de borde (la puerta de enlace para la máquina/interfaz que está acumulando estos rx_crc_errors) es un NetGate 1537 que ejecuta pfSense 22.01 (más reciente).

Cosas que hemos probado hasta ahora:

  • Reemplazó el cable
  • Reemplazó el adaptador SFP
  • Usé un puerto de switch diferente
  • Reemplazó toda la máquina host con una de la misma configuración.

Ninguno de estos cambió el comportamiento, lo que, hasta donde yo sé, elimina el hardware como fuente del problema.

Hacerlo curl https://dl.google.com/go/go1.18.1.linux-amd64.tar.gz --output t.datdesde la máquina de borde se completa en aproximadamente 1 segundo. Desde el enrutador con rx_crc_errors, se necesitan 17 segundos y 21 segundos desde el host detrás de él.

Los errores aparecen en la interfaz de enlace ascendente así:

...
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 10:1f:74:35:fc:94 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped missed  mcast
    1609100899 1250023  508     0       0       2534
    TX: bytes  packets  errors  dropped carrier collsns
    20574398   206727   0       0       0       0
...

Y luego con ethtool puedo obtener detalles adicionales que muestran el error CRC ( rx_crc_errors: 508)

ethtool -S enp3s0f0
NIC statistics:
     rx_bytes: 1609111223
     rx_error_bytes: 0
     tx_bytes: 20588905
     tx_error_bytes: 0
     rx_ucast_packets: 1245869
     rx_mcast_packets: 2554
     rx_bcast_packets: 1687
     tx_ucast_packets: 202770
     tx_mcast_packets: 4038
     tx_bcast_packets: 0
     tx_mac_errors: 0
     tx_carrier_errors: 0
     rx_crc_errors: 508
     rx_align_errors: 0
     tx_single_collisions: 0
     tx_multi_collisions: 0
     tx_deferred: 0
     tx_excess_collisions: 0
     tx_late_collisions: 0
     tx_total_collisions: 0
     rx_fragments: 22
     rx_jabbers: 0
     rx_undersize_packets: 0
     rx_oversize_packets: 0
     rx_64_byte_packets: 1823
     rx_65_to_127_byte_packets: 9084
     rx_128_to_255_byte_packets: 2371
     rx_256_to_511_byte_packets: 585
     rx_512_to_1023_byte_packets: 80
     rx_1024_to_1522_byte_packets: 1236167
     rx_1523_to_9022_byte_packets: 0
     tx_64_byte_packets: 0
     tx_65_to_127_byte_packets: 200168
     tx_128_to_255_byte_packets: 5659
     tx_256_to_511_byte_packets: 370
     tx_512_to_1023_byte_packets: 230
     tx_1024_to_1522_byte_packets: 381
     tx_1523_to_9022_byte_packets: 0
     rx_xon_frames: 0
     rx_xoff_frames: 0
     tx_xon_frames: 0
     tx_xoff_frames: 0
     rx_mac_ctrl_frames: 0
     rx_filtered_packets: 33361
     rx_ftq_discards: 0
     rx_discards: 0
     rx_fw_discards: 0

Tenga en cuenta que los errores para todas las demás interfaces en otras máquinas que he comprobado son todos cero.

En este punto no sé qué comprobar a continuación. Sospecho que el problema está relacionado de alguna manera con el enrutador perimetral, pero hay otros enrutadores conectados a este enrutador perimetral que no presentan el mismo problema. En un momento, estaba usando el enlace troncal VLAN (etiquetado 802.1q) desde el enrutador de borde hasta el conmutador, pero lo desactivé y también intenté aumentar la MTU en 4 bytes a 1504, ninguno de los cuales hizo ninguna diferencia visible: los rx_crc_errors aún se acumulan y El rendimiento es pobre como el anterior.

¿Alguna otra idea sobre cómo diagnosticar la causa de estos rx_crc_errors?

información relacionada