Networks
Ресурс Networks представляет собой введенную нами абстракцию, которая позволяет определять группы IP-адресов или
подсетей, доступных для управления Host Based NGFW. Эти подсети затем могут быть связаны с конкретными группами
безопасности для логического разделения и использоваться в правилах для разрешения или блокирования доступа к
определенным ресурсам в вашей сети.
- API
- nftables
Более подробную документацию по API можно посмотреть здесь.
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
networks.networks[]- Массив/Список подсетей типа IP.networks.networks[].name- Название подсети.networks.networks[].network- Объект содержащий CIDR подсетиnetworks.networks[].network.CIDR- Подсеть типа IP.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| networks[] | да | Object[] | |
| networks[].name | да | String | |
| networks[].network | да | Object | |
| networks[].network.CIDR | да | String | |
| syncOp | да | Enum("Delete", "Upsert", "FullSync") |
Ограничения
networks.networks[].name:- Значение не может быть пустым.
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- Значение должно быть уникальным в рамках типа ресурса.
networks.networks[].network.CIDR:- Значение не может быть пустым.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- В пределах одной Security Group и направления трафика (I/E) диапазоны адресов подсетей могут пересекаться, присутствует auto-merge.
- Подсеть должна соответствовать формату записи, определенному в RFC 4632.
Пример использования
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"networks": {
"networks": [
{
"name": "nw-1",
"network": {
"CIDR": "10.0.0.0/24"
}
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
В этом разделе мы покажем, как ресурс networks, созданный с помощью Terraform/API, внедряется в настройки nftables. В
контексте HBF мы интерпретируем ресурс networks как проекцию на поле elements ресурса IPSet, который функционирует
в рамках инструмента nftables, обеспечивая более широкие возможности для управления подсетями.
$IPSet_Name- Наименование IPSet$type- Описывает тип данных$flags- Описывает свойства IPSet.$elements- Указывает массив содержащихся в IPSet элементов подсетей (CIDR)
| шаблон параметра | структура параметра | значения |
|---|---|---|
| $IPSet_Name | ^NetIPv[4|6]-.* | Примеры значений:
|
| $type | type | Могут быть установлены следующие значения:
|
| $flags | flags | Установлены следующие значения:
|
| $elements | elements = {} | Значения CIDR, в случае нескольких значений перечисляются через запятую |
Шаблон
set $IPSet_Name {
$type
$flags
$elements
}