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.ipRoutingTableIDID таблицы маршрутизации на узле.
Допустимые значения:
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
— 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.toМассив подсетей назначения.
-
spec.rules.selectors.to.Элемент массиваПодсеть назначения.
-
-
spec.rules.selectors.tosQOS метка трафика (
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Шлюз, через который достижима подсеть.
-
-