Gateway が返す DNS 応答に、最大 TTL(Time-to-Live)を設定します。上流 DNS レコードの TTL が設定した上限を超える場合、Gateway はその TTL を指定した値に切り詰めます。値を小さくすると、新たに特定した悪意のあるドメインのブロックなど、DNS ポリシーの変更がすべてのクライアントへ早く反映されます。一方で、キャッシュが短くなるためクエリ量は増えます。
最大 TTL の上限は、許可したクエリに対する上流由来の DNS 回答にだけ適用されます。Gateway が生成する応答(ブロック、上書き、セーフサーチの回答)は、もともと短いデフォルト TTL を使うため影響を受けません。
Gateway は段階的な TTL の優先順位を適用します。いちばん具体的な設定が優先されます。
- DNS ロケーションにロケーション単位の上書きがある場合は、その値を使います。
- ロケーションが設定を継承している場合は、アカウントレベルの最大 TTL を使います。
- どのレベルにも最大 TTL が設定されていない場合は、上流の TTL をそのまま使います。
最大 TTL の有効範囲は 60〜36,000 秒(1 分〜10 時間)です。
アカウントレベルの設定は、ロケーション単位の上書きがないすべての DNS ロケーションに適用されます。
- Zero Trust ↗ で Traffic Policies > Traffic Settings を開きます。
- Proxy and inspection の下で、Configure time-to-live for DNS resolution を探します。
- 秒単位の値を入力します(60〜36,000)。
- Save を選択します。
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/configuration \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"settings": {
"max_ttl_secs": 3600
}
}'アカウントレベルの上限を外す(上流 TTL をそのまま通す)には、max_ttl_secs フィールドを省略するか、null に設定します。
各 DNS ロケーション は、アカウントレベルの設定を上書きできます。ロケーション単位の設定には、次の 3 つのモードがあります。
| モード | 動作 |
|---|---|
Respect account-level setting (inherit) |
アカウントレベルで設定した値を使います。新しいロケーションのデフォルトです。 |
Do not set max value (disabled) |
このロケーションの最大 TTL 上限を無効にします。アカウントレベルに上限があっても適用しません。上流の TTL をそのまま使います。 |
Custom (override) |
アカウントレベルの値を上書きする、ロケーション固有の最大 TTL を設定します。60〜36,000 の ttl_secs が必要です。 |
- Zero Trust ↗ で Networks > Resolvers & Proxies > DNS locations を開きます。
- ロケーションを選ぶか、新規作成します。
- DNS Endpoints タブで、Configure time-to-live for this location を探します。
- 次のいずれかを選びます。
- Respect account-level setting — アカウントレベルの TTL 上限を継承します。
- Do not set max value — このロケーションの TTL 上限を無効にします。
- Custom — 秒単位の TTL を入力します。
- Save を選択します。
# Inherit account-level setting (default)
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/locations/{location_id} \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"max_ttl": {
"mode": "inherit"
}
}'# Disable max TTL for this location
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/locations/{location_id} \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"max_ttl": {
"mode": "disabled"
}
}'# Override with a custom value
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/locations/{location_id} \
--header "Authorization: Bearer {api_token}" \
--header "Content-Type: application/json" \
--data '{
"max_ttl": {
"mode": "override",
"ttl_secs": 3600
}
}'最大 TTL が有効なとき、Gateway の DNS ログに次の 2 つのフィールドが追加されます。
| フィールド | 説明 |
|---|---|
upstream_record_ttls |
上限適用前の、上流 DNS 応答の元の TTL です。 |
applied_max_ttl |
Gateway が応答に適用した最大 TTL です。上限を適用していない場合、このフィールドはありません。 |
これらのフィールドは、ダッシュボードの DNS ログの列ピッカーでは DNS Response Details グループにあり、Logpush データセットでも確認できます。