パケットキャプチャをリクエストして収集すると、出力は 1 つ以上の PCAP 形式ファイルに入ります。full タイプのパケットキャプチャを開始する前に、先に バケットの設定 を完了してください。
現在、パケットキャプチャをリクエストすると、Cloudflare のグローバルネットワークを Magic Transit 経由で流れるパケットがキャプチャされます。リクエストとレスポンスの両方で、この API フィールドのデフォルトは "system": "magic-transit" です。
サンプルとフル
packet_limit: 最小値は1パケット、最大値は10000パケットです。
サンプル
time_limit: 最小値は1秒、最大値は300秒です。
フル
time_limit: 最小値は1秒、最大値は86400秒です。byte_limit: 最小値は1バイト、最大値は1000000000バイトです。
- Cloudflare ダッシュボードで Network health ↗ を開きます。
- Diagnostics を選択し、Start a capture を選択します。
- 実行するキャプチャの種類を選び、Next を選択します。
- キャプチャ開始に必要なフィールドを入力し、Start を選択します。
メインの Packet captures ページに、キャプチャの一覧が表示されます。
PCAPs API でキャプチャを開始するには、system と type の両方を指定する必要があります。PCAP の system はパケットをキャプチャするプロダクトまたは論理サブシステムで、PCAP の type はキャプチャしたパケットを PCAP ファイルに組み立てる方法です。
現在、サンプル PCAP の収集リクエストは 1 分あたり 1 件までです。実行中または保留中のフル PCAP は、同時に 1 件までです。
フル PCAP
フル PCAP リクエストの必須パラメーターは、フル PCAP リクエストの作成 を参照してください。フルパケットキャプチャは、サンプルパケットより 2 つ多いパラメーターが必要です。
フル PCAP リクエストのエンドポイントには、キャプチャするパケット量を制限する任意フィールドもあります。フルとサンプルの両方のパケットリクエストには、任意の filter_v1 パラメーターがあり、たとえば IPv4 送信元アドレスでパケットをフィルタできます。フィルタオプションの一覧は、上記のパラメーターリストを参照してください。
フィルタなしですべてのパケットを収集するには、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 の収集完了を待つ必要があります。ダウンロード可能な状態になると、ステータスは 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 リクエストを作成するには、サンプル PCAP リクエストの作成 に記載の必須パラメーターを含む JSON 本文を送信します。
フィルタなしですべてのパケットを収集するには、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 ダッシュボードで Network health ↗ を開きます。
- Diagnostics を選択します。
- Network packet captures の下でキャプチャを探します。
実行中ジョブのステータスを確認するには、エンドポイントへリクエストを送り、PCAP 識別子を指定します。PCAP 識別子は、前の手順の収集リクエストのレスポンスで受け取れます。
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": []
}キャプチャのステータスは、次のいずれかです。
- Complete: キャプチャリクエストが完了し、ダウンロードできます。
- In progress: キャプチャは取得済みですが、まだ処理中です。
- Failure: キャプチャに失敗しました。この場合は、所有権情報を確認してください。
リクエストの処理が終わったら、パケットキャプチャをダウンロードできます。
- Cloudflare ダッシュボードで Network health ↗ を開きます。
- Diagnostics を選択します。
- ダウンロードするパケットキャプチャを探し、Download を選択します。
Status が Success と表示されているパケットキャプチャをダウンロードできます。
保存した複数のキャプチャファイルを 1 つの出力ファイルにまとめる方法は、Wireshark の mergecap ドキュメント ↗ を参照してください。
フル PCAP
フル PCAP を取得するには、PCAP のステータスが success になったあと、destination_conf で指定したバケットからファイルをダウンロードします。キャプチャは複数マシンで行われることがあるため、1 回のキャプチャで 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 ダッシュボードで Network health ↗ を開きます。
- Diagnostics > Network packet captures を選択します。
アカウントに関連するパケットキャプチャの一覧が表示されます。
送信済みリクエストの一覧を見るには、次のコマンドを使います。
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": []
}Cloudflare ネットワークの性質上、トラフィックは 1 つの Cloudflare ロケーション内の複数の物理マシンを経由することがあります。
- 複数の PCAP ファイル: 1 回のフル PCAP キャプチャで、小さな PCAP ファイルが多数生成されることがあります。Cloudflare ロケーション内でトラフィックが通る各物理サーバーでキャプチャが行われるためです。
- プロトコル、ポートなど、パケット固有のフィルタを適用すると、必要なトラフィックをより細かく対象にできます。
- 分析のための結合: トラフィックを 1 つのフローとして見るには、mergecap などのツールで個別ファイルを 1 つの大きなファイルにまとめ、Wireshark で分析できます。手順は Wireshark の mergecap ドキュメント ↗ を参照してください。