Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

PCAP の収集

最終更新 Markdown で表示Agent セットアップ

パケットキャプチャをリクエストして収集すると、出力は 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 バイトです。
  1. Cloudflare ダッシュボードで Network health を開きます。
  2. Diagnostics を選択し、Start a capture を選択します。
  3. 実行するキャプチャの種類を選び、Next を選択します。
  4. キャプチャ開始に必要なフィールドを入力し、Start を選択します。

メインの Packet captures ページに、キャプチャの一覧が表示されます。

PCAPs API でキャプチャを開始するには、systemtype の両方を指定する必要があります。PCAP の system はパケットをキャプチャするプロダクトまたは論理サブシステムで、PCAP の type はキャプチャしたパケットを PCAP ファイルに組み立てる方法です。

現在、サンプル PCAP の収集リクエストは 1 分あたり 1 件までです。実行中または保留中のフル PCAP は、同時に 1 件までです。

フル PCAP

フル PCAP リクエストの必須パラメーターは、フル PCAP リクエストの作成 を参照してください。フルパケットキャプチャは、サンプルパケットより 2 つ多いパラメーターが必要です。

フル PCAP リクエストのエンドポイントには、キャプチャするパケット量を制限する任意フィールドもあります。フルとサンプルの両方のパケットリクエストには、任意の filter_v1 パラメーターがあり、たとえば IPv4 送信元アドレスでパケットをフィルタできます。フィルタオプションの一覧は、上記のパラメーターリストを参照してください。

フィルタなしですべてのパケットを収集するには、filter_v1 を空のままにします。

フル PCAP のリクエスト例bash
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 に変わります。

フル PCAP のレスポンス例json
{
	"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 を空にします。

サンプル PCAP のリクエスト例bash
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 本文で、パケットキャプチャを組み立てるジョブの詳細が含まれます。レスポンスには、パケットキャプチャリクエストの一意の識別子と、リクエストで送った詳細が含まれます。

サンプル PCAP のレスポンス例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": []
}

パケットキャプチャのステータスを確認する

  1. Cloudflare ダッシュボードで Network health を開きます。
  2. Diagnostics を選択します。
  3. 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 収集をリクエストしたときと似た内容になります。

サンプル PCAP の結果例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": 120,
		"status": "success",
		"packets_remaining": 0,
		"type": "simple",
		"system": "magic-transit"
	},
	"success": true,
	"errors": [],
	"messages": []
}

キャプチャのステータスは、次のいずれかです。

  • Complete: キャプチャリクエストが完了し、ダウンロードできます。
  • In progress: キャプチャは取得済みですが、まだ処理中です。
  • Failure: キャプチャに失敗しました。この場合は、所有権情報を確認してください。

パケットキャプチャをダウンロードする

リクエストの処理が終わったら、パケットキャプチャをダウンロードできます。

  1. Cloudflare ダッシュボードで Network health を開きます。
  2. Diagnostics を選択します。
  3. ダウンロードするパケットキャプチャを探し、Download を選択します。

StatusSuccess と表示されているパケットキャプチャをダウンロードできます。

保存した複数のキャプチャファイルを 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

パケットキャプチャを一覧する

  1. Cloudflare ダッシュボードで Network health を開きます。
  2. Diagnostics > Network packet captures を選択します。

アカウントに関連するパケットキャプチャの一覧が表示されます。

送信済みリクエストの一覧を見るには、次のコマンドを使います。

一覧リクエストの例bash
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"

レスポンスは、完了済みと進行中を含む、最大 50 件の送信済みリクエストの配列です。

一覧レスポンスの例json
{
	"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 ドキュメント を参照してください。

役に立ちましたか?