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