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
— 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.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
Обязательный параметр
Шлюз, через которую достижима подсеть.