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.actions.lookup.ipRoutingTableIDцелочисленный
- spec.rules.actions.lookupобъект
- 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.dportRange.endцелочисленный
- 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
— 1TCP
— 6UDP
— 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.sportRange.endцелочисленный
- 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
- spec.rules.selectors.uidRange.endцелочисленный
- spec.rules.selectors.dportRangeобъект
- spec.rules.actionsобъект
- spec.nodeSelectorобъект
RoutingTable
Scope: Cluster
Version: v1alpha1
Ресурс, описывающий желаемую таблицу маршрутизации и содержащиеся в ней маршруты.
- specобъект
Обязательный параметр
- spec.ipRoutingTableIDцелочисленный
ID желаемой таблицы маршрутизации.
Если значение не указано явно, то оно сгенерируется автоматически и будет добавлено в поле status.
После создания ресурса изменить ID таблицы маршрутизации можно только пересоздав ресурс.
Допустимые значения:
1 <= X <= 4294967295
- spec.nodeSelectorобъект
Обязательный параметр
Набор лейблов, определяющих узлы, на которых необходимо создать желаемые маршруты.
- spec.routesмассив объектов
Обязательный параметр
- spec.routes.destinationстрока
Обязательный параметр
Целевая подсеть.
- spec.routes.gatewayстрока
Обязательный параметр
Шлюз, через которую достижима подсеть.
- spec.routes.destinationстрока
- spec.ipRoutingTableIDцелочисленный