Почему джамбо-кадры передаются, несмотря на стандартное MTU на коммутаторе и хосте?

Вопрос или проблема

У меня есть сеть с сервером на Linux (Ubuntu 22.04), коммутатором (MikroTik CRS328-24P-4S+RM) и несколькими камерами, подключенными по Ethernet. Я хотел увеличить MTU на всех системах, чтобы можно было передавать джамбо-фреймы и уменьшить нагрузку на процессор сервера при получении HD потоков от многих камер.

Но теперь я заметил, что даже с настройками MTU по умолчанию (т.е. 1500 байт) камеры, похоже, уже отправляют джамбо-фреймы!

Подробнее:

  • на сервере ip l показывает для сетевого интерфейса: 2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000; т.е. MTU 1500.
  • в коммутаторе в веб-интерфейсе управления я проверил MTU для интерфейса к серверу и для интерфейсов к камерам; они установлены на MTU = 1500 и L2 MTU = 1592.
  • что касается камер, я не совсем знаю, как проверить MTU (они как черный ящик для меня).

Затем я проверил размер передаваемых пакетов:

  • на сервере я смотрел на пакеты с помощью tcpdump. tcpdump -i eno2 -s 100 -e | less показывает пакеты следующего вида:
    16:25:06.315612 <MAC скрыт> (oui Неизвестно) > <MAC скрыт> (oui Неизвестно), ethertype IPv4 (0x0800), длина 9014: camera1.3957 > server.46179: UDP, длина 8972.
    Таким образом, похоже, что Ethernet-пакеты имеют размер 9014 байт.

  • Я также отключил “разгрузку” на сервере с помощью ethtool --offload eno2 rx off tx off (как описано на https://wiki.wireshark.org/CaptureSetup/Offloading).

  • на коммутаторе я вижу, что интерфейс к камере имеет скорость RX ~500 Мбит/с и скорость пакетов RX ~7000 п/с. Это составляет ((500/8)*1024*1024)/7000 = ~9362 байт/пакет.

Вопрос:

  • сделал ли я какую-либо ошибку в своем анализе выше?
  • возможно ли, что сетевые устройства отправляют UDP-пакеты, значительно превышающие настроенный MTU промежуточных устройств?

Приложение:

Результаты ethtool --show-offload eno2:

Features for eno2:
rx-checksumming: off
tx-checksumming: off
        tx-checksum-ipv4: off [fixed]
        tx-checksum-ip-generic: off
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
        tx-tcp-segmentation: off [requested on]
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: off [requested on]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: on
receive-hashing: on
highdma: off [fixed]
rx-vlan-filter: on
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: on
tx-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: on
tx-gso-list: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: on
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
rx-udp-gro-forwarding: off
hsr-tag-ins-offload: off [fixed]
hsr-tag-rm-offload: off [fixed]
hsr-fwd-offload: off [fixed]
hsr-dup-offload: off [fixed]

.

Ответ или решение

Возможные причины передачи Jumbo Frames, несмотря на стандартный MTU

Ваша ситуация с передачей Jumbo Frames в сетевом окружении, где MTU установлен на 1500 байт, интересна и заслуживает детального рассмотрения. Давайте проанализируем, почему это может происходить и что учитывается в данной ситуации.

1. Понимание MTU и Jumbo Frames

MTU (Maximum Transmission Unit) — это максимальный размер пакета данных, который может быть передан по сети без необходимости фрагментации. Стандартный MTU для Ethernet составляет 1500 байт. Jumbo Frames, с другой стороны, позволяют передавать пакеты, превышающие этот лимит, чаще всего в диапазоне от 9000 до 9216 байт.

2. Причины передачи Jumbo Frames

Несмотря на то что на сервере и коммутаторе MTU установлен на 1500 байт, возможно продолжение передачи Jumbo Frames по нескольким причинам:

  • Фрагментация на низком уровне: Когда пакеты Jumbo Frame превышают максимальный размер MTU, сетевые устройства могут разбивать их на более мелкие фрагменты для передачи, сохраняя при этом их целостность. Получив пакеты на другом конце, принимающее устройство может собрать их обратно. Это может происходить без участия операционной системы, если фрагментация осуществляется на уровне драйвера или аппаратного обеспечения.

  • Компоненты сети: Если в сети есть устройства, поддерживающие Jumbo Frames (например, некоторые модели IP-камер), они могут отправлять пакеты больше, чем установленный MTU. Эти пакеты затем могут быть сегментированы сетевыми устройствами, допустим, коммутаторами, имеющими возможность обработки Jumbo Frames.

  • Автоконфигурация MTU: Сетевые устройства иногда могут поддерживать функции автоконфигурации MTU, которые могут настраиваться на уровень Jumbo Frames при обнаружении таких возможностей у других устройств в сети.

3. Анализ ваших наблюдений

Ваши наблюдения подтверждают наличие Jumbo Frames, так как вы видите пакеты размером 9014 байт, и это возбуждает ряд вопросов:

  • Проверка MTU на камерах: Поскольку вы не можете проверить MTU на IP-камерах, их настройки могут быть исключительными. Если камеры по умолчанию отправляют Jumbo Frames, то это может объяснить, почему на сервер приходят такие пакеты.

  • На коммутаторе MikroTik: Установленные вами значения MTU на устройствах выглядят корректно, однако важно убедиться, что они также поддерживают передачу Jumbo Frames не только на уровне управления, но и фактически.

4. Отсутствие ошибок в анализе

Ваш анализ не содержит ошибок, однако стоит более глубоко исследовать конфигурации устройств и их возможности по обработке Jumbo Frames. Вы должны обратить внимание на следующие моменты:

  • Проверить документацию на устройствах, чтобы удостовериться в их поддержке Jumbo Frames.
  • Изучить, имеются ли фрагменты или настройки, мешающие нормальной передаче пакетов.

5. Выводы

Таким образом, да, сетевые устройства могут отправлять пакеты, превышающие установленный MTU, если они поддерживают Jumbo Frames или используют механизмы фрагментации. Возможность передачи Jumbo Frames может зависеть от характеристик сетевых устройств, их конфигураций и протоколов. Рекомендуется тщательно просмотреть настройки всех сетевых компонентов для полного понимания процесса передачи данных и устранения потенциальных проблем.

Оцените материал
Добавить комментарий

Капча загружается...