API для работы с префикс-сетами и метками
В данном документе описана возможность прямого взаимодействия с DosGate API (нодами) для добавления или/и удаления информации из созданных ранее префикс-сетов или/и меток.
Префикс-сеты
Префикс-сет – это медленная таблица данных. Она доступна для поиска и совпадения внутри пакета, но автоматически занести в нее информацию из пакета не получится – только вручную. Префикс-сеты поддерживают маски, например, /24.
Получение списка префикс-сетов
Глобальные префикс-сеты
Глобальные префикс-сеты доступны для использования по всей системе.
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<pset_name>“,
"cmd": "list"
}'
Локальные префикс-сеты
Локальные префикс-сеты доступны только для профиля, в котором они были созданы.
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<profile_name>/<pset_name>“,
"cmd": "list"
}'
Добавление в префикс-сет
Глобальный префикс-сет
Поле V (value) может всегда оставаться значением 1, так как оно используется для последующих совпадений.
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<pset_name>”,
"cmd": "insert",
"data": [
{
"p": "1.1.1.1",
"v": 1
}
]
}’
Локальный префикс-сет
Поле V (value) может всегда оставаться значением 1, так как оно используется для последующих совпадений.
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<profile_name>/<pset_name>“,
"cmd": "insert",
"data": [
{
"p": "1.1.1.1",
"v": 1
}
]
}’
Удаление из префикс-сета
Глобальный префикс-сет
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<pset_name>”,
"cmd": “delete”,
"data": [
{
“a”: "1.1.1.1"
}
]
}’
Локальный префикс-сет
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<profile_name>/<pset_name>“,
"cmd": "delete",
"data": [
{
“a”: "1.1.1.1"
}
]
}’
Применение изменений префикс-сета
После внесения изменений в префикс-сет требуется их подтверждение.
Глобальный префикс-сет
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<pset_name>/“,
"cmd": “commit”
}'
Локальный префикс-сет
curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
"url": "prefixset://<arena_name>/<profile_name>/<pset_name>“,
"cmd": “commit”
}'
Метки
Метка представляет собой таблицу данных с высокой скоростью обработки. Данный тип таблиц доступен для поиска и сопоставления внутри пакета, а также допускает автоматическое занесение информации при использовании действий (-j HMARK/SDHMARK/CONNMARK/DHMARK
). Метки не поддерживают маски, все IP-адреса в метках имеют префикс /32.
Получение общего списка записей
Описание процесса
Запрос возвращает полный список записей. В параметре marktype указывается тип метки: shost (hmark)
, dhost (dmark)
, sdhost (sdhmark)
, conn (connmark)
. Выбор зависит от используемой конфигурации профиля.
Для оптимальной работы рекомендуется запрашивать полный список не чаще одного раза в три секунды. Время обработки запроса на 100 000 записей составляет около 1100 мс, а объем ответа достигает 4,8 МБ.
На основании ID записи в метке и ее value, можно определить по какой причине адрес попал в список, и какое действие к нему применяется. Дополнительная информация по аналитике и обработке данных доступна в разделе Интеграция с SIEM
Запрос списка записей
curl --location 'http://<node_ip>/fapi' \
--header 'User-Arena: first' \
--header 'Content-Type: application/json' \
--data '{
"url": "mark://<arena>/<profile>",
"type": "<marktype>",
"cmd": "list"
}