Рейтинг:1

таинственные rx_crc_errors на восходящем интерфейсе маршрутизатора Linux

флаг id
bgp

У меня есть Linux-машина под управлением Debian 11, которая действует как маршрутизатор между устройством, находящимся на краю, и хост-машиной. Делая завиток команда для загрузки файла интерфейс, обращенный к краю начнет накапливаться rx_crc_errors эпизодически, но постоянно - счетчик увеличивается рывками, в среднем один или два раза в секунду. В результате, как с маршрутизатора, так и с хост-машины, находящейся за ним, завиток команда работает очень медленно и загружается на части скорости, доступной на линии (и я проверял на других маршрутизаторах и серверах, которые проходят через одно и то же пограничное устройство, и они работают на более высокой скорости и не накапливают rx_crc_errors).

Пограничный маршрутизатор (шлюз для машины/интерфейса, который накапливает эти rx_crc_errors) — это NetGate 1537, на котором работает pfSense 22.01 (последняя).

Вещи, которые мы пробовали до сих пор:

  • Заменил кабель
  • Заменил SFP-адаптер.
  • Используется другой порт коммутатора
  • Заменена вся хост-машина на одну из той же конфигурации

Ни один из них не изменил поведение, которое, насколько я могу судить, исключает аппаратное обеспечение как источник проблемы.

Делает curl 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 group 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: байты, пакеты, ошибки, отброшенные операторы связи
    20574398 206727 0 0 0 0
...

И затем с помощью ethtool я могу получить дополнительную информацию, показывающую ошибку CRC (rx_crc_errors: 508)

ethtool -S enp3s0f0
Статистика НИК:
     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_фрагменты: 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 (тегирование 802.1q) от пограничного маршрутизатора к коммутатору, но я отключил это, а также попытался увеличить MTU на 4 байта до 1504, ни одно из этих значений не имело видимой разницы — ошибки rx_crc_errors все еще накапливаются и производительность плохая, как указано выше.

Любые другие идеи о диагностике причины этих rx_crc_errors?

Peter Zhabin avatar
флаг cn
Вы уверены, что ваши настройки дуплекса совпадают на портах коммутатора и устройствах, подключенных к этим портам?
bgp avatar
флаг id
bgp
@PeterZhabin да, я проверил это, и все соответствующие интерфейсы настроены на полнодуплексный режим.
Peter Zhabin avatar
флаг cn
Помимо ошибок CRC, вы также получаете фрагменты, это кадры без трейлера. Можете ли вы показать статистику порта коммутатора, обращенного к enp3sf0?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.