LINUX.ORG.RU

Из ядра Linux удалена поддержка UDP Fragmentation Offload

 , , ,


4

3

Андрей Коновалов (Andrey Konovalov) нашел с помощью фаззера syzkaller последовательность системных вызовов, которая портит память ядра, если в системе есть хотя бы один сетевой интерфейс с MTU < 65535 и включенной опцией UDP Fragmentation Offload. На самом деле требуется еще право менять опции интерфейса, но его легко получить через непривилегированные пользовательские пространства имен. Они же позволяют создать такой интерфейс, если его не было в системе изначально. Итог: на некоторых ядрах, поставляемых Ubuntu, продемонстрировано повышение привилегий от обычного пользователя до root (CVE-2017-1000112). Проблема существует также в ядрах не от Ubuntu.

David S. Miller в качестве решения проблемы предложил удалить поддержку UDP Fragmentation Offload и выслал соответствующий набор патчей в рассылку netdev. Мотивация: «эту операцию поддерживает очень небольшое число устройств, польза от нее в лучшем случае сомнительна, и эта операция добавляет немало сложности в пути обработки данных». На данный момент патчи приняты в ветку net-next.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

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

dodgers
()
Ответ на: комментарий от ZANSWER

Это про другое. Когда UFO включено, то сетевуха собирает несколько UDP пакетов максимального размера в один еще больший пакет и в таком виде передает его ядру. В обратную сторону это тоже работает: ядро отдает сетевухе огромный пакет, который в несколько раз больше MTU, сетевуха дробит его на части и отсылает покусочно.

Делается все это для облегчения нагрузки на ядро.

Deleted
()
Ответ на: комментарий от anonymous

Обновись, win98 немножко устарела

Здравствуйте!

В качестве возможных вариантов предлагаю: Debian, Kali Linux, Knoppix, OpenSUSE. Ну или хотя бы SLAX... :-)

Спасибо за внимание!

anonymous
()

У...клятые неосиляторы ! ))) Нет бы ошибку пофиксить, так нет. Нет кода, нет бага )))

anonymous
()
Ответ на: комментарий от Deleted

Не совсем понял, что именно про другое? Поясните более подробнее, как выглядит процесс с вашей точки зрения.

Выше, с другими участниками мы пришли к общему знаменателю, что речь идёт о фрагментации IP пакетов силами сетевой карты, а не ядра. Вы не согласны с этим?

ZANSWER
()
Ответ на: комментарий от ZANSWER

Не совсем понял, что именно про другое? Поясните более подробнее, как выглядит процесс с вашей точки зрения.

Так-то в комменте достаточно подробно описано.

Выше, с другими участниками мы пришли к общему знаменателю, что речь идёт о фрагментации IP пакетов силами сетевой карты, а не ядра. Вы не согласны с этим?

Эта фича используется не только для фрагментациии, но также и для «дефрагментации». По крайней мере, в аналоге для TCP это есть, так что, по идее, должно быть и здесь. Без этого инфа в ваших комментах показалась мне неполной.

Deleted
()

РЕШЕТО

anonymous
()
Ответ на: комментарий от Deleted

Теперь понял, что вы имели ввиду, никто из нас, написавших ранее, просто не акцентировал на этом внимание, но в целом предполагалось, что речь идёт о фрагментации/дефрагментации, а не только фрагментации. :)

ZANSWER
()
Ответ на: комментарий от sergej

Для десктопа нахрен надо, а вот на роутерах/эмбеддеде для всяких шлюзов и прч. это дает некислые профиты.

ncrmnt ★★★★★
()

А как насчет остальных offload'ов?

На nforce'ах их вроде бы рекомендовали выключать. Да и вообще на многих сетевых картах драйвера с багами с этими функциями.

tcp-segmentation-offload: on udp-fragmentation-offload: off [fixed] generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off [fixed] rx-vlan-offload: on tx-vlan-offload: on l2-fwd-offload: off [fixed] hw-tc-offload: off [fixed] esp-hw-offload: off [fixed] esp-tx-csum-hw-offload: off [fixed]

Это мой старенький nforce, под windows на форумах многие писали, что эти оффлоады проблемы вызывают. Честно говоря я включал и выключал их, пробовал тестить, разницы не заметил. Под линухом дефолты.

zor1984qq
()
Ответ на: комментарий от anonymous

вот именно ,что любой студент осиливший привет мир на си может коментить в ядро и эту лубуду принимают даже не глядя

dodgers
()

это удаление тут же дропнет производительность VXLAN или например обработки мультикаста в несколько раз.

странное решение, почему всякие VMWare не вмешались - это же вроде в их поле деятельности.

gr_buza ★★★★
()
Ответ на: комментарий от atsym

Потому что иначе придётся держать стабильный API для драйверов, а это лишит работы кучу народу.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от dodgers

вот именно ,что любой студент осиливший привет мир на си может коментить в ядро и эту лубуду принимают даже не глядя

Твое не пустили, вот и бесишься

Deleted
()
Ответ на: комментарий от gr_buza

Могу предположить, что производительность VXLAN не пострадает, по той причине, что они не используют UDP Fragmentaion Offload для её увеличения изначально, а используют TCP Segmentation Offload for tunneling protocols:

# ethtool -K <interface> tx-udp_tnl-segmentation <off|on>

https://engineering.telefonica.com/maximizing-performance-in-vxlan-overlay-ne... https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/whitepaper/... https://people.netfilter.org/pablo/netdev0.1/papers/UDP-Encapsulation-in-Linu...

Поэтому очевидно VMWare и не вмешалась, поскольку ей нет не какого дела до удаления UDP Fragmentation Offload.

P/S/ Если я прав, буду рад об этом услышать с объяснением где и почему.

ZANSWER
()

из ядра Linux удален systemd

no1_tx
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.