IPRuleSet

Scope: Cluster
Version: v1alpha1

Данный ресурс описывает набор правил (ip rule), которые будут созданы на узлах с соответствующими лейблами.
  • spec
    объект
    • spec.nodeSelector
      объект

      Обязательный параметр

      Набор лейблов, определяющих узлы, на которых необходимо применить данные правила.
    • spec.rules
      массив объектов

      Обязательный параметр

      Желаемый набор правил (ip rule).
      • spec.rules.actions
        объект
        Набор действий, которые необходимо совершить с пакетом, имеющим признаки описанные в секции selectors.
        • spec.rules.actions.lookup
          объект

          Обязательный параметр

          Определить таблицу маршрутизации, в какой необходимо искать адрес шлюза.
          • spec.rules.actions.lookup.ipRoutingTableID
            целочисленный
            ID таблицы маршрутизации на узле.

            Допустимые значения: 1 <= X <= 4294967295

          • spec.rules.actions.lookup.routingTableName
            строка
            Имя Kubernetes-ресурса RoutingTable, в котором необходимо искать ID таблицы маршрутизации.
      • spec.rules.priority
        целочисленный

        Приоритет правила (от него зависит очередность применения).

        При выборе приоритета стоит учитывать несколько нюансов:

        • Все правила перебираются сетевой подсистемой Linux-узла в порядке приоритета (от меньшего к большему) пока не будет найдено совпадение.
        • В случае, если пакет подпал под какое-то правило и соответствующее действие было успешно выполнено, то перебор правил прекращается.
        • Правило для поиска в таблице маршрутизации main по-умолчанию имеет значение 32766. При указании большего значения — правило никогда не будет обработано.

        Допустимые значения: 0 <= X <= 4294967295

      • spec.rules.selectors
        объект

        Набор признаков пакета.

        Если пакет имеет признаки описанные в секции selectors, то к нему будут применены действия из секции actions.

        • spec.rules.selectors.dportRange
          объект

          Диапазон портов назначения.

          Если порт только один, то можно заполнить либо только поле start, либо в полях start и end указать одно и то же значение.

          • spec.rules.selectors.dportRange.end
            целочисленный
            Конец диапазона.

            Допустимые значения: 0 <= X <= 65535

          • spec.rules.selectors.dportRange.start
            целочисленный

            Обязательный параметр

            Начало диапазона.

            Допустимые значения: 0 <= X <= 65535

        • spec.rules.selectors.from
          массив строк
          Массив подсетей источника.
          • spec.rules.selectors.from.Элемент массива
            строка
            Подсеть источника.
        • spec.rules.selectors.fwMark
          строка
          Метка трафика существующая только внутри сетевой подсистемы Linux на узле.

          Шаблон: ^0[xX][0-9a-fA-F]{1,8}(/0[xX][0-9a-fA-F]{1,8})?$

        • spec.rules.selectors.iif
          строка
          Имя интерфейса, через который пакет поступил на узел.
        • spec.rules.selectors.ipProto
          целочисленный

          Номер L4 протокола, который инкапсулирован в IP в данном пакете.

          Номера наиболее популярных протоколов:

          • ICMP — 1
          • TCP — 6
          • UDP — 17 Все доступные значения можно найти по ссылке, или в файле /etc/protocols на узле.
        • spec.rules.selectors.not
          булевый
          Если указан данный флаг, то правило будет инвертировано, то есть под него будут попадать все пакеты не имеющие указанных признаков.

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

        • spec.rules.selectors.oif
          строка
          Название интерфейса, через который пакет должен “выйти” из узла.
        • spec.rules.selectors.sportRange
          объект

          Диапазон портов источника.

          Если порт только один, то можно заполнить либо только поле start, либо в полях start и end указать одно и то же значение.

          • spec.rules.selectors.sportRange.end
            целочисленный
            Конец диапазона.

            Допустимые значения: 0 <= X <= 65535

          • spec.rules.selectors.sportRange.start
            целочисленный

            Обязательный параметр

            Начало диапазона.

            Допустимые значения: 0 <= X <= 65535

        • spec.rules.selectors.to
          массив строк
          Массив подсетей назначения.
          • spec.rules.selectors.to.Элемент массива
            строка
            Подсеть назначения.
        • spec.rules.selectors.tos
          строка
          QOS метка трафика (TOS, diffserv, dscp) передаваемая по сети в IP-заголовках пакета. Доступные значения хранятся в файле /etc/iproute2/rt_dsfield.

          Шаблон: ^0[xX][0-9a-fA-F]{1,2}$

        • spec.rules.selectors.uidRange
          объект

          Диапазон UID (UserID) пользователей, под которыми запускались приложения передающие трафик.

          Если UID только один, то можно заполнить либо только поле start, либо в полях start и end указать одно и то же значение.

          • spec.rules.selectors.uidRange.end
            целочисленный
            Конец диапазона.

            Допустимые значения: 0 <= X <= 4294967295

          • spec.rules.selectors.uidRange.start
            целочисленный

            Обязательный параметр

            Начало диапазона.

            Допустимые значения: 0 <= X <= 4294967295

RoutingTable

Scope: Cluster
Version: v1alpha1

Ресурс, описывающий желаемую таблицу маршрутизации и содержащиеся в ней маршруты.
  • spec
    объект
    • spec.ipRoutingTableID
      целочисленный

      ID желаемой таблицы маршрутизации.

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

      После создания ресурса изменить ID таблицы маршрутизации можно только пересоздав ресурс.

      Допустимые значения: 1 <= X <= 4294967295

    • spec.nodeSelector
      объект

      Обязательный параметр

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

      Формат: стандартный список nodeSelector.

    • spec.routes
      массив объектов

      Обязательный параметр

      • spec.routes.destination
        строка
        Целевая подсеть.
      • spec.routes.dev
        строка
        Имя устройства вывода, через который достижима подсеть.

        Максимальная длина: 15

        Шаблон: ^[^\s\\]{1,15}$

      • spec.routes.gateway
        строка
        Шлюз, через который достижима подсеть.