ฉันมีเครื่อง Linux ที่ใช้ Debian 11 ซึ่งทำหน้าที่เป็นเราเตอร์ระหว่างอุปกรณ์ที่อยู่ขอบและเครื่องโฮสต์ ในขณะที่ทำก ขด
คำสั่งเพื่อดาวน์โหลดไฟล์อินเทอร์เฟซที่หันไปทางขอบ จะเริ่มสะสม rx_crc_errors
เป็นพัก ๆ แต่สม่ำเสมอ - จำนวนจะเพิ่มขึ้นอย่างรวดเร็วโดยเฉลี่ยหนึ่งหรือสองครั้งต่อวินาที ผลลัพธ์ก็คือจากทั้งเราเตอร์และเครื่องโฮสต์ที่อยู่ข้างหลังนั่นเอง ขด
คำสั่งทำงานช้ามากและดาวน์โหลดด้วยความเร็วเพียงเศษเสี้ยวของความเร็วที่มีในบรรทัด (และฉันได้ตรวจสอบเราเตอร์และเซิร์ฟเวอร์อื่น ๆ ที่ใช้อุปกรณ์ Edge เดียวกันแล้ว พวกมันทำงานด้วยความเร็วที่เร็วกว่าและไม่สะสม rx_crc_errors)
เราเตอร์ขอบ (เกตเวย์สำหรับเครื่อง/อินเทอร์เฟซซึ่งสะสม rx_crc_errors เหล่านี้) เป็น NetGate 1537 ที่ใช้ pfSense 22.01 (ล่าสุด)
สิ่งที่เราได้ลองไปแล้ว:
- เปลี่ยนสายเคเบิล
- เปลี่ยนอะแดปเตอร์ SFP
- ใช้พอร์ตสวิตช์อื่น
- แทนที่เครื่องโฮสต์ทั้งหมดด้วยหนึ่งในการกำหนดค่าเดียวกัน
สิ่งเหล่านี้ไม่ได้เปลี่ยนพฤติกรรม ซึ่งเท่าที่ฉันสามารถบอกได้คือกำจัดฮาร์ดแวร์ที่เป็นต้นเหตุของปัญหา
ทำ ขด https://dl.google.com/go/go1.18.1.linux-amd64.tar.gz --output t.dat
จากเครื่องขอบเสร็จสิ้นในประมาณ 1 วินาที จากเราเตอร์ที่มี rx_crc_errors ใช้เวลา 17 วินาที และ 21 วินาทีจากโฮสต์ที่อยู่เบื้องหลัง
ข้อผิดพลาดปรากฏขึ้นบนอินเทอร์เฟซอัปลิงค์ดังนี้:
...
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ 10:1f:74:35:fc:94 brd ff:ff:ff:ff:ff:ff
RX: ข้อผิดพลาดของแพ็กเก็ตไบต์ลดลง mcast ที่ไม่ได้รับ
1609100899 1250023 508 0 0 2534
TX: ข้อผิดพลาดของแพ็กเก็ต bytes ทำให้ผู้ให้บริการ collsns ลดลง
20574398 206727 0 0 0 0
...
จากนั้นด้วย ethtool ฉันสามารถดูรายละเอียดเพิ่มเติมที่แสดงข้อผิดพลาด CRC (rx_crc_errors: 508
)
ethtool -S enp3s0f0
สถิติ NIC:
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
โปรดทราบว่าข้อผิดพลาดสำหรับอินเทอร์เฟซอื่นๆ ทั้งหมดในเครื่องอื่นๆ ที่ฉันตรวจสอบจะเป็นศูนย์ทั้งหมด
ฉันนิ่งงัน ณ จุดนี้ว่าจะตรวจสอบอะไรต่อไป ฉันสงสัยว่าปัญหาเกี่ยวข้องกับเราเตอร์ขอบไม่ทางใดก็ทางหนึ่ง แต่มีเราเตอร์อื่นที่เชื่อมต่อกับเราเตอร์ขอบนี้ซึ่งไม่แสดงปัญหาเดียวกัน มีอยู่ช่วงหนึ่งที่ฉันใช้ VLAN trunking (การติดแท็ก 802.1q) จากเราเตอร์ขอบไปยังสวิตช์ แต่ฉันปิดใช้งานสิ่งนี้และลองเพิ่ม MTU ขึ้น 4 ไบต์เป็น 1504 ซึ่งไม่ได้สร้างความแตกต่างที่มองเห็นได้ - rx_crc_errors ยังคงสะสมและ ประสิทธิภาพไม่ดีเหมือนข้างต้น
มีแนวคิดอื่นใดเกี่ยวกับการวินิจฉัยสาเหตุของ rx_crc_errors เหล่านี้หรือไม่