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.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.tosстрока

          QOS метка трафика (TOS/diffserv/dscp) передаваемая по сети в IP-заголовках пакета.

          Шаблон: ^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объект

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

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

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

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

      • spec.routes.destinationстрока

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

        Целевая подсеть.

      • spec.routes.gatewayстрока

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

        Шлюз, через которую достижима подсеть.