Cloudflare は次の Edge Pathing Statuses を発行します。
- EdgePathingSrc(経路ソース): ルーティングを決めた段階です。
- EdgePathingOp(経路オペレーション): 実行した具体的な操作です。
- EdgePathingStatus(経路ステータス): EdgePathingOp を補う追加情報です。
EdgePathingSrc は、エラーが発生する前、またはリクエストがキャッシュサーバーへ渡される前に、最後にリクエストを扱ったシステムを指します。多くの場合、これは macro / レピュテーションリストです。経路ソースの例は次のとおりです。
errsslv(SSL 検証チェッカー)bic(Browser Integrity Check)hot(ホットリンク保護)macro(レピュテーションリスト)skip(Always Online または cdnjs のリソース)user(ユーザーのファイアウォールルール)
例:
jq -r .EdgePathingSrc logs.json | sort -n | uniq -c | sort -n | tail1 err
5 user
93 macroEdgePathingOp は、リクエストの扱い方を示します。wl は、Cloudflare ネットワークのセキュリティチェックをすべて通過したリクエストです。そのほかの値の例は次のとおりです。
errHost(Host ヘッダーの不一致、DNS エラーなど)ban(IP アドレスや範囲などによるブロック)
例:
jq -r .EdgePathingOp logs.json | sort -n | uniq -c | sort -n | tail1 errHost
97 wlEdgePathingStatus は、EdgePathingSrc が返す値です。経路ソースが macro、user、err の場合、経路ステータスは、その IP アドレスが見つかったリストを示します。最も多い値は nr で、セキュリティチェックでフラグが付かなかったことを意味します。一部の値は利用者の区分を示します。たとえば se は検索エンジンです。
例:
jq -r .EdgePathingStatus logs.json | sort -n | uniq -c | sort -n | tail1 dnsErr
5 ip
92 nr一部の Pathing の組み合わせは、Cloudflare の Threat Analytics 機能(Cloudflare ダッシュボードの Analytics アプリ)でラベル付けされています。対応は次のとおりです。
| Pathing | ラベル |
|---|---|
bic.ban.unknown |
Bad browser |
hot.ban.unknown |
Blocked hotlink |
hot.ban.ip |
|
macro.ban.ip |
Bad IP |
user.ban.ctry |
Country block |
user.ban.ip |
IP block (user) |
user.ban.ipr16 |
IP range block (/16) |
user.ban.ipr24 |
IP range block (/24) |
レスポンスステータスは、リクエスト内の次の 3 か所に現れます。
- edgeResponse
- cacheResponse
- originResponse
ログでは、エッジが訪問者のリクエストを最初に受け取ります。次にキャッシュがリクエストを受け取り、オリジンへ転送するか、キャッシュから応答します。edgeResponse だけのリクエストや、edgeResponse と cacheResponse はあるが originResponse がないリクエストもあります。
これにより、リクエストがどこで終了したかを確認できます。edgeResponse だけのリクエストは、セキュリティチェックまたは処理エラーに当たった可能性が高いです。edgeResponse と cacheResponse があるリクエストは、キャッシュから応答されたか、オリジンサーバーへの接続でエラーが起きたものです。originResponse があるリクエストはオリジンサーバーまで到達しており、そこで見えたエラーはオリジンから直接返されたものです。
たとえば、次のクエリは、Cloudflare エッジで終了したすべてのリクエストについて、ステータスコードと Pathing 情報を示します。
jq -r 'select(.OriginResponseStatus == null) | select(.CacheResponseStatus == null) |"\(.EdgeResponseStatus) / \(.EdgePathingSrc) / \(.EdgePathingStatus) / \(.EdgePathingOp)"' logs.json | sort -n | uniq -c | sort -n1 403 / macro / nr / wl
1 409 / err / dnsErr / errHost記録される情報は、次のカテゴリに分かれます。
Cloudflare ネットワークの検証を通過しなかったリクエストで発生します。例は次のとおりです。
- Cloudflare がドメインまたはゾーンを解決できない場合。
- オリジンサーバーの IP を不正に使おうとした場合。
- ドメインの所有が不明な場合(たとえば、そのドメインが Cloudflare にない場合)。
| EdgePathingStatus | 説明 | EdgePathingOp | ステータスコード |
|---|---|---|---|
cyclic |
Cloudflare のループです。 | err_host |
403 |
dns_err |
解決できません。 | err_host |
409 |
reserved_ip |
DNS がローカルまたは許可されない IP を指しています。 | err_host |
403 |
reserved_ip6 |
DNS がローカルまたは許可されない IPv6 アドレスを指しています。 | err_host |
403 |
bad_host |
Host ヘッダーが不正、またはありません。 | err_host |
403 |
no_existing_host |
所有確認に失敗しました。ホストが Cloudflare にない可能性があります。 | err_host |
409 |
特定の IP(または IP 範囲)の設定に基づき、ユーザー起点で発生する操作です。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc | ステータスコード |
|---|---|---|---|---|
Asnumipipr24ipr16ip6ip6r64ip6r48ip6r32ctry |
リクエストはブロックされました。 | ban |
user |
403 |
Asnumipipr24ipr16ip6ip6r64ip6r48ip6r32ctry |
|
wl |
user |
n/a |
Cloudflare Firewall Rules(非推奨)は、顧客が定義したルールに一致したときに操作を実行します。
| EdgePathingStatus | 説明 | EdgePathingOp |
|---|---|---|
filter_based_firewall |
リクエストはブロックされました。 | ban |
filter_based_firewall |
リクエストは許可されました。 | wl |
Zone Lockdown は、訪問者の IP が許可リストにない場合、特定の URI へのアクセスをブロックします。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
zl |
ロックダウンを適用しました。 | ban |
user |
User-Agent 名が特定の文字列に一致するブラウザーを使う訪問者に、チャレンジ(Interactive または Non-Interactive)を出すか、ブロックします。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
ua |
ブロックされた User-Agent です。 | ban |
user |
リクエストの送信元が不正か、リクエスト自体が悪意のあるものかを判定します。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
| empty | ブロックされたリクエストです。 | ban |
bic |
ほかのサイトからのホットリンクを防ぎます。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
| empty | ブロックされたリクエストです。 | ban |
hot |
L7 の緩和によって DDoS 攻撃を破棄します。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
l7ddos |
ブロックされたリクエストです。 | ban |
protect |
macro の段階は、複数の経路で構成されます。訪問者 IP のレピュテーションで分類されます。
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
nr |
その IP のレピュテーションデータがなく、操作は行われません。 | wl |
macro |
wl |
IP が明示的に許可リストに入っています。 | wl |
macro |
scan |
IP が明示的に許可リストに入り、セキュリティスキャナーとして分類されています。 | wl |
macro |
mon |
IP が明示的に許可リストに入り、Monitoring Service として分類されています。 | wl |
macro |
bak |
IP が明示的に許可リストに入り、Backup Service として分類されています。 | wl |
macro |
mob |
IP が明示的に許可リストに入り、Mobile Proxy Service として分類されています。 | wl |
macro |
se |
検索エンジンのクローラーに属する IP として明示的に許可リストに入り、操作は行われません。 | wl |
macro |
grey |
IP はグレーリスト(不正の疑い)ですが、favicon 向けのリクエストか、セキュリティがオフのため、許可リスト扱いです。 | wl |
macro |
bad_ok |
IP のレピュテーションスコアは不良ですが、favicon 向けのリクエストか、セキュリティがオフのため、許可リスト扱いです。 | wl |
macro |
unknown |
pathing_status が不明で、リクエストは通常どおり処理されます。 |
wl |
macro |
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
rate_limit |
破棄されたリクエストです。 | ban |
user |
rate_limit |
IP が明示的に許可リストに入っています。 | simulate |
user |
| EdgePathingStatus | 説明 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
ao_crawl |
Always Online(AO)クローラーのリクエストです。 | wl |
skip |
cdnjs |
cdnjs リソースへのリクエストです。 | wl |
skip |
| Cloudflare の特殊ヘッダーによって強制されるチャレンジです。 | forced |