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 curl
Befehl zum Herunterladen einer Datei ausführe, wird die Schnittstelle, die zum Rand zeigt,rx_crc_errors
beginnt 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 curl
Befehl 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.dat
etwa 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?