Skip to content

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

パケットキャプチャ

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

パケットキャプチャは、Cloudflare のネットワークを流れるトラフィックを記録します。トラブルシューティングやセキュリティ調査のために、個々の パケット を分析できます。出力は 1 つ以上の PCAP 形式ファイルに入ります。Wireshark などのツールで開けます。

キャプチャの種類は次の 2 つです。

  • Sample キャプチャは、すでに Cloudflare のネットワークを通過した過去のトラフィックデータを照会します。すぐに完了し、API または Cloudflare ダッシュボードから直接ダウンロードできます。
  • Full キャプチャは、フィルターに一致する新しいトラフィックを監視し、完全なパケットデータを、所有するクラウドストレージバケットへ書き込みます。Full キャプチャを始める前に、先に バケットを設定 してください。

パケットキャプチャをリクエストする

現在、パケットキャプチャをリクエストすると、Magic Transit 経由で Cloudflare のグローバルネットワークを流れるパケットが取得されます。リクエストとレスポンスの両方で、API のデフォルトフィールドは "system": "magic-transit" です。

パケットキャプチャの上限

Sample と Full

  • time_limit: 最小値は 1 秒、最大値は 300 秒です。
  • packet_limit: 最小値は 1 パケット、最大値は 10000 パケットです。

Full

  • byte_limit: 最小値は 1 バイト、最大値は 1000000000 バイト(1 GB)です。
  1. Cloudflare ダッシュボードで Network health ページを開きます。

    Network health を開く ↗
  2. Diagnostics タブを開きます。

  3. Network packet capturesStart a capture を選択します。

  4. 実行するキャプチャの種類を選び、Next を選択します。

  5. キャプチャ開始に必要な項目を入力し、Start を選択します。

Network packet captures ページにキャプチャの一覧が表示されます。

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

現在、Sample PCAP は 1 分あたり 1 件の collect リクエストしか送れません。Full PCAP は、実行中または保留中のものを同時に 1 件だけ持てます。

Full PCAP

Full PCAP リクエストの必須パラメーターは Create full PCAP requests を参照してください。Full パケットキャプチャは、Sample より 2 つ多くパラメーターが必要です。

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

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

Full 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 収集の完了を待ってください。ダウンロードできる状態になると、status は success に変わります。

Full 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": []
}

Sample PCAP

Sample PCAP リクエストを作成するには、Create sample PCAP request に記載の必須パラメーターを含む JSON 本文を送ります。

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

Sample 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 本文です。レスポンスには、パケットキャプチャリクエストの一意の識別子と、リクエストで送った詳細が含まれます。

Sample 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 識別子は、前の手順で示した 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 収集をリクエストしたときと似た内容になります。

Sample 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(API: success): キャプチャは完了し、ダウンロードできます。
  • In progress(API: pending): パケットは取得済みですが、PCAP ファイルの組み立てが続いています。
  • Failure: キャプチャに失敗しました。Full キャプチャの場合は、バケット設定と Cloudflare の書き込み権限を確認してください。Sample キャプチャの場合は、フィルター設定を確認してください。

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

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

  1. Cloudflare One ダッシュボードで Network visibility > Diagnostics を開きます。
  2. Packet capturesStart a capture を選択します。
  3. ダウンロードしたいパケットキャプチャを探し、Download を選択します。

StatusSuccess のときに、パケットキャプチャをダウンロードできます。

Full キャプチャは、データセンター内の複数マシンで実行できるため、1 回のキャプチャで複数の PCAP ファイルができます。分析用に 1 つのファイルへ結合するには、Wireshark の mergecap ドキュメント を参照してください。

Full PCAPs

Full PCAP を取得するには、PCAP の status が success になったあと、destination_conf で指定したバケットからファイルをダウンロードします。キャプチャは複数マシンで行われることがあるため、pcap_<pcap_id>.pcap という名前のファイルが複数ある場合があります。

Sample PCAPs

Sample 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 ページを開きます。

    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": []
}

役に立ちましたか?