mysteriöse rx_crc_errors auf der Uplink-Schnittstelle des Linux-Routers

mysteriöse rx_crc_errors auf der Uplink-Schnittstelle des Linux-Routers

Ich habe eine Linux-Maschine mit Debian 11, die als Router zwischen einem Gerät am Rand und einem Host-Rechner fungiert. Während ich einen curlBefehl zum Herunterladen einer Datei ausführe, wird die Schnittstelle, die zum Rand zeigt,rx_crc_errorsbeginnt sich sporadisch, aber konstant anzusammeln- die Anzahl steigt in Schüben, im Durchschnitt vielleicht um ein oder zwei pro Sekunde. Das Ergebnis ist, dass dieser curlBefehl sowohl vom Router als auch vom Host-Rechner dahinter sehr langsam ausgeführt wird und mit einem Bruchteil der auf der Leitung verfügbaren Geschwindigkeit heruntergeladen wird (und ich habe andere Router und Server überprüft, die über dasselbe Edge-Gerät laufen, und sie laufen mit der höheren Geschwindigkeit und akkumulieren keine rx_crc_errors).

Der Edge-Router (das Gateway für die Maschine/Schnittstelle, die diese rx_crc_errors ansammelt) ist ein NetGate 1537 mit pfSense 22.01 (neueste Version).

Dinge, die wir bisher ausprobiert haben:

  • Das Kabel wurde ersetzt
  • Ersetzt den SFP-Adapter
  • Einen anderen Switch-Port verwendet
  • Ersetzte den gesamten Hostcomputer durch einen mit der gleichen Konfiguration

Keine dieser Maßnahmen hat das Verhalten geändert, sodass meines Erachtens die Hardware als Problemquelle ausgeschlossen ist.

Von der Edge-Maschine aus dauert die Ausführung curl https://dl.google.com/go/go1.18.1.linux-amd64.tar.gz --output t.datetwa 1 Sekunde. Vom Router mit rx_crc_errors dauert es 17 Sekunden und vom dahinterliegenden Host 21 Sekunden.

Die Fehler werden auf der Uplink-Schnittstelle wie folgt angezeigt:

...
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
...

Und dann kann ich mit ethtool die zusätzlichen Details abrufen, die den CRC-Fehler anzeigen ( 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

Beachten Sie, dass die Fehler für alle anderen Schnittstellen auf allen anderen von mir geprüften Computern alle Null sind.

Ich bin an diesem Punkt ratlos, was ich als nächstes überprüfen soll. Ich vermute, dass das Problem irgendwie mit dem Edge-Router zusammenhängt, aber es gibt andere Router, die mit diesem Edge-Router verbunden sind und bei denen das Problem nicht auftritt. Irgendwann habe ich VLAN-Trunking (802.1q-Tagging) vom Edge-Router zum Switch verwendet, aber ich habe dies deaktiviert und auch versucht, die MTU um 4 Bytes auf 1504 zu erhöhen, aber nichts davon hat einen sichtbaren Unterschied gemacht - die rx_crc_errors häufen sich immer noch und die Leistung ist wie oben schlecht.

Irgendwelche anderen Ideen zur Diagnose der Ursache dieser rx_crc_errors?

verwandte Informationen