Перейти к содержанию

Jumbo Frames (MTU 9000)

Настройка Jumbo Frames (MTU 9000)

Общий принцип

Cilium автоматически определяет MTU сетевых интерфейсов узла. Если физический интерфейс и data-plane VLAN настроены с MTU 9000,
Cilium подхватит это значение и выставит его в сетевых namespace подов без дополнительной конфигурации на уровне CNI.

При использовании SR-IOV под получает виртуальную функцию (VF) в прямое владение — трафик идёт мимо основного сетевого стека.
MTU в этом случае определяется конфигурацией VF на узле и параметром mtu в NetworkAttachmentDefinition.

Настройка MTU на узле

На каждом узле, где используется SR-IOV с Jumbo Frames, MTU выставляется на Physical Function, data-plane VLAN и виртуальных функциях:

ip link set enp5s0f0 mtu 9000
ip link set enp5s0f0.100 mtu 9000
ip link set enp5s0f0 vf 0 mtu 9000
ip link set enp5s0f0 vf 1 mtu 9000

NetworkAttachmentDefinition с MTU 9000

После подключения модулей sr-iov-network-device-plugin, sr-iov-cni, multus-cni создаётся NetworkAttachmentDefinition.
Поле "mtu": 9000 явно задаёт MTU для SR-IOV интерфейса пода на data-plane VLAN:

apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
  name: sriov-net-jumbo
  namespace: default
  annotations:
    k8s.v1.cni.cncf.io/resourceName: intel.com/intel_sriov_netdevice
spec:
  config: |
    {
      "cniVersion": "0.3.1",
      "name": "sriov-net-jumbo",
      "type": "sriov",
      "mtu": 9000,
      "vlan": 100,
      "ipam": {
        "type": "whereabouts",
        "range": "10.1.0.0/24"
      }
    }

Использование в поде

apiVersion: v1
kind: Pod
metadata:
  name: app
  namespace: default
  annotations:
    k8s.v1.cni.cncf.io/networks: sriov-net-jumbo
spec:
  containers:
    - name: app
      image: harbor.bootsman.host/app:latest
      resources:
        requests:
          intel.com/intel_sriov_netdevice: "1"
        limits:
          intel.com/intel_sriov_netdevice: "1"

Сводка по стеку

Уровень Способ настройки MTU
Порт коммутатора Конфигурация сети ≥ 9216
Data-plane VLAN (узел) ip link set <vlan> mtu 9000 9000
Physical Function ip link set <pf> mtu 9000 9000
Virtual Function ip link set <pf> vf N mtu 9000 9000
NetworkAttachmentDefinition поле "mtu": 9000 9000
Pod (SR-IOV) Наследуется от VF через NAD 9000
Cilium (основной CNI) Автодетект с узла