← Cloudflare One / cloudflare-one / insights / network-visibility / diagnostics
Захваты пакетов
Захваты пакетов записывают сетевой трафик, проходящий через сеть Cloudflare, что позволяет анализировать отдельные пакеты для устранения неполадок или расследования инцидентов безопасности. Результат содержится в одном или нескольких файлах формата PCAP, которые можно открыть в таких инструментах, как Wireshark ↗.
Существует два типа захвата:
- Выборочный захваты запрашивают исторические данные трафика, уже прошедшего через сеть Cloudflare. Они завершаются мгновенно, и их можно загрузить напрямую через API или из панели управления Cloudflare.
- Full захваты активно отслеживают новый трафик, соответствующий вашим фильтрам, и записывают полные данные пакетов в принадлежащий вам бакет облачного хранилища. Перед началом полного захвата необходимо сначала настроить bucket.
Отправить запрос на захват пакета
В настоящее время при запросе захвата пакетов записываются пакеты, проходящие через глобальную сеть Cloudflare через систему Magic Transit. Поле API по умолчанию для этого: "system": "magic-transit", как для запроса, так и для ответа.
Ограничения захвата пакетов
Выборочный и полный
time_limit: Минимальное значение:1секунда, а максимальное значение составляет300секунд.packet_limit: Минимальное значение:1пакет, а максимальное значение составляет10000пакеты.
Full
byte_limit: Минимальное значение:1байт, а максимальное значение составляет1000000000байт (1 ГБ).
-
На панели управления Cloudflare перейдите к разделу Работоспособность сети страницу.
Перейдите в Работоспособность сети ↗ -
Перейдите в Диагностика на вкладке.
-
В Захваты сетевых пакетов, выберите Начать захват.
-
Выберите тип захвата, который нужно выполнить, и нажмите Далее.
-
Заполните обязательные поля, чтобы начать захват, а затем выберите Запустить.
Захваты сетевых пакетов странице отображается список захватов.
API PCAP требует одновременно system и type указать, чтобы начать захват. У PCAP-файла system обозначает продукт или логическую подсистему, в которой захватываются пакеты, а у PCAP type определяет, как захваченные пакеты собираются в файл PCAP.
В настоящее время можно отправлять не более одного запроса collect в минуту для выборочных PCAP, и одновременно может быть только один выполняющийся или ожидающий полный PCAP.
Full PCAP
Для полных запросов PCAP см. обязательные параметры, перечисленные на Создать полные PCAP-запросы. Учтите, что для полных захватов пакетов требуется на два параметра больше, чем для образцов пакетов.
Конечная точка запроса полного PCAP также содержит необязательные поля, с помощью которых можно ограничить количество захватываемых пакетов. Запросы как на полный, так и на выборочный захват пакетов содержат необязательное filter_v1 параметр, который можно использовать, например, для фильтрации пакетов по IPv4-адресу источника. Полный список параметров фильтрации приведён в Справочник по API.
Оставьте filter_v1 пустым, чтобы собирать все пакеты без фильтрации.
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"filter_v1": {},
"time_limit": 300,
"packet_limit": 10000,
"byte_limit": 100000000,
"type": "full",
"colo": "ORD",
"system": "magic-transit",
"destination_conf": "${BUCKET}"
}'Пока сбор данных выполняется, ответ возвращает status поле как pending. Перед скачиванием файла необходимо дождаться завершения сбора PCAP. Когда PCAP готов к скачиванию, статус изменяется на success.
{
"result": {
"id": "7d7c88382f0b4d5daa9587aa45a1a877",
"submitted": "2022-06-02T18:38:22.269047Z",
"filter_v1": {},
"time_limit": 300,
"status": "pending",
"type": "full",
"system": "magic-transit",
"packet_limit": 10000,
"byte_limit": 100000000,
"colo": "ORD",
"destination_conf": "gs://<bucket-name>" // Ensure you use a bucket that you created and registered in the Cloudflare dashboard
},
"success": true,
"errors": [],
"messages": []
}Выборочный PCAP
Чтобы создать пример запроса PCAP, отправьте тело JSON с обязательным параметром, указанным на Создать пример PCAP-запроса.
Оставьте filter_v1 пустым, чтобы собирать все пакеты без фильтрации.
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"filter_v1": {
"source_address": "1.2.3.4",
"source_port": 123,
"destination_address": "5.6.7.8",
"destination_port": 80,
"protocol": 6
},
"time_limit": 300,
"packet_limit": 10000,
"type": "simple",
"system": "magic-transit"
}'Ответ представляет собой тело JSON со сведениями о задании, которое формирует файл захвата пакетов. В нём также указан уникальный идентификатор запроса на захват пакетов и данные, переданные в исходном запросе.
{
"result": {
"id": "6d1f0aac13cd40e3900d29f5dd0e8a2b",
"submitted": "2021-12-20T17:29:20.641845Z",
"filter_v1": {
"source_address": "1.2.3.4",
"source_port": 123,
"destination_address": "5.6.7.8",
"destination_port": 80,
"protocol": 6
},
"time_limit": 60,
"status": "pending",
"packets_remaining": 0,
"type": "simple",
"system": "magic-transit"
},
"success": true,
"errors": [],
"messages": []
}Проверить статус захвата пакетов
- В панели управления Cloudflare перейдите в Работоспособность сети ↗.
- Перейдите в Диагностика на вкладке.
- Найдите свой захват в разделе Захваты сетевых пакетов.
Чтобы проверить статус выполняющейся задачи, отправьте запрос к конечной точке и укажите идентификатор PCAP. Идентификатор PCAP приходит в ответе на запрос collect, как показано на предыдущем шаге.
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/{pcap_id} \
--header 'X-Auth-Email: <EMAIL>' \
--header 'X-Auth-Key: <API_KEY>'Ответ будет аналогичен тому, что получают при запросе сбора PCAP.
{
"result": {
"id": "6d1f0aac13cd40e3900d29f5dd0e8a2b",
"submitted": "2021-12-20T17:29:20.641845Z",
"filter_v1": {
"source_address": "1.2.3.4",
"source_port": 123,
"destination_address": "5.6.7.8",
"destination_port": 80,
"protocol": 6
},
"time_limit": 120,
"status": "success",
"packets_remaining": 0,
"type": "simple",
"system": "magic-transit"
},
"success": true,
"errors": [],
"messages": []
}Статус захвата отображает один из следующих вариантов:
- Завершено (API:
success): захват завершен и готов к загрузке. - Выполняется (API:
pending): пакеты уже захвачены, но файл PCAP все еще формируется. - Сбой: Захват не удался. Для полных захватов убедитесь, что ваш bucket настроен правильно и что у Cloudflare есть доступ на запись к нему. Для выборочных захватов проверьте настройку фильтра.
Скачать захваты пакетов
Как только обработка запроса завершится, вы сможете скачать файлы с захваченными пакетами.
- В Cloudflare One ↗ панель управления, перейдите в Network visibility > Диагностика.
- В Захваты пакетов, выберите Начать захват.
- Найдите захват пакетов, который хотите скачать, и выберите Скачать.
Захваты пакетов доступны для скачивания, когда Статус отображает Успешно.
Полные захваты пакетов могут создавать несколько файлов PCAP на один захват, поскольку захват может выполняться сразу на нескольких машинах в центре обработки данных. Чтобы объединить их в один файл для анализа, см. Документация mergecap от Wireshark ↗.
Файлы Full PCAP
Чтобы получить полные PCAP, скачайте файлы из бакета, указанного в destination_conf после того как статус PCAP станет success. Вы можете обнаружить несколько файлов с именем pcap_<pcap_id>.pcap на захват, поскольку захват может выполняться сразу на нескольких машинах.
Выборочные PCAP
После завершения сбора образца PCAP вы можете скачать PCAP, указав идентификатор PCAP, использованный ранее.
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/{pcap_id}/download \
--header 'X-Auth-Email: <EMAIL>' \
--header 'X-Auth-Key: <API_KEY>' \
--output download.pcapСписок захватов пакетов
-
На панели управления Cloudflare перейдите к разделу Работоспособность сети страницу.
Перейдите в Работоспособность сети ↗ -
Перейдите в Диагностика на вкладке.
Список захватов пакетов, связанных с вашим аккаунтом, отображается в разделе Захваты сетевых пакетов.
Чтобы просмотреть список отправленных запросов, используйте следующую команду:
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"Ответ возвращает массив, включающий до 50 отправленных запросов, в том числе завершённые и текущие запросы.
{
"result": [
{
"id": "43adab5adeca4dab9c51f4b7f70f2ec3",
"submitted": "2021-12-15T03:04:09.277394Z",
"filter_v1": {},
"time_limit": 120,
"status": "success",
"packets_remaining": 0,
"type": "simple",
"system": "magic-transit"
}
],
"success": true,
"errors": [],
"messages": []
}