Доступно в редакциях:  Open/CE, BE, SE, SE+, Ultimate/EE, Core

Стадия жизненного цикла модуля: General Availability

В модуле реализовано 7 алертов.

Модуль не включен по умолчанию в каком-либо наборе модулей.

Как явно включить или отключить модуль...

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль cni-flannel, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля

  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля cni-flannel:

    d8 system module enable cni-flannel
    
  • С помощью ModuleConfig cni-flannel.

    Установите spec.enabled в true или false в ModuleConfig cni-flannel (создайте его, при необходимости).

    Пример манифеста для включения модуля cni-flannel:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: cni-flannel
    spec:
      enabled: true
    

Как настроить модуль...

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль cni-flannel, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig cni-flannel на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль cni-flannel), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig cni-flannel (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc cni-flannel
    

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig cni-flannel, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig cni-flannel:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: cni-flannel
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.
    

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.ipv4OptionsGuard
      объект

      Защита от CVE-2026-98432 (use-after-free в обработке IPv4 TCP handshake в ядре Linux, срабатывающий на TCP SYN с IP-опциями).

      Сайдкар агента CNI устанавливает фильтр в сетевое пространство имён хоста и во все сетевые пространства имён подов на узле, включая поды, запущенные позже. Фильтр срабатывает на IPv4 TCP SYN и IPv4-фрагменты с IP-опциями.

      Фильтр использует тот режим iptables (nft или legacy), который iptables-wrapper выбрал на узле, как и остальные компоненты Deckhouse. В режиме nft фильтр создаётся нативными выражениями nftables, в режиме legacy — через iptables с match u32. Модули ядра не загружаются, если не включён параметр allowKernelModuleLoad. Если модули ядра выбранного режима не загружены, а модули другого режима загружены, фильтр использует другой режим, и узел отображается в алерте D8IPv4OptionsGuardBackendMismatch. Узел, который не удалось защитить, отображается в алерте D8IPv4OptionsGuardNodeUnprotected.

      Чтобы исключить узел (например, узел с маркированной сетью CIPSO), установите на него метку ipv4-options-guard.deckhouse.io/disabled: "true": изменения на этом узле будут отменены.

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

      • settings.ipv4OptionsGuard.allowKernelModuleLoad
        булевый

        В режиме nft фильтру нужен модуль ядра nf_tables, в режиме legacy — модули ядра ip_tables, iptable_raw, xt_tcpudp и xt_u32.

        По умолчанию модули ядра не загружаются: если какой-то модуль режима, выбранного iptables-wrapper, не загружен, фильтр использует другой режим, когда его модули загружены, а иначе узел отображается как незащищённый. Установите true, чтобы загружать модули выбранного режима.

        По умолчанию: false

      • settings.ipv4OptionsGuard.disableMPTCP
        булевый

        В режиме Enforce устанавливать net.mptcp.enabled=0 в сетевом пространстве имён хоста и во всех сетевых пространствах имён подов. Это убирает условие опубликованного эксплойта.

        Сокеты, открытые до изменения, остаются MPTCP до перезапуска процесса. После перезагрузки узла MPTCP на хосте снова отключается, когда запустится агент CNI.

        По умолчанию: true

      • settings.ipv4OptionsGuard.mode
        строка

        Режим работы.

        Если режим не задан, он равен Enforce в кластерах, установленных вместе с митигацией, и Audit в кластерах, существовавших до неё.

        • Audit — подходящие пакеты только подсчитываются (метрика d8_ipv4_options_guard_matched_packets_total и алерт D8IPv4OptionsGuardMatchedTraffic). Используйте, чтобы убедиться, что приложения не зависят от IP-опций. Пока хотя бы один узел в этом режиме, алерт D8IPv4OptionsGuardAuditMode напоминает, что кластер ещё не защищён.
        • Enforce — подходящие пакеты отбрасываются, а MPTCP отключается, если включён параметр disableMPTCP.
        • Disabled — фильтр удаляется из всех сетевых пространств имён, включая работающие поды, а значение net.mptcp.enabled восстанавливается.

        Режим применяется без перезапуска подов агента CNI.

        Допустимые значения: Audit, Enforce, Disabled

    • settings.podNetworkMode
      строка

      Режим работы.

      Внимание. При переключении между HostGW и VXLAN требуется перезагрузка всех узлов кластера. Изменять этот параметр можно только при использовании модуля в bare-metal-кластерах.

      По умолчанию: HostGW

      Допустимые значения: HostGW, VXLAN