← Cloudflare One / cloudflare-one / traffic-policies / dns-policies
Максимальный TTL DNS
Настройте максимальное время жизни (TTL) для DNS-ответов, возвращаемых Gateway. Если TTL вышестоящей DNS-записи превышает заданный максимум, Gateway ограничивает TTL значением, которое вы указали. Более низкие значения обеспечивают более быстрое применение изменений DNS-политик, например блокировки недавно обнаруженного вредоносного домена, на всех клиентах, но за счет увеличения объема запросов из-за менее эффективного кеширования.
Максимальное ограничение TTL применяется только к ответам DNS, полученным от вышестоящего сервера, для разрешённых запросов. На ответы, сформированные самим Gateway (блокировки, переопределения, ответы безопасного поиска), это ограничение не влияет, поскольку для них уже используется короткий TTL по умолчанию.
Как это работает
Gateway применяет многоуровневую иерархию TTL. Приоритет отдаётся наиболее точной настройке:
- Если для DNS-локации задано переопределение на уровне локации, используется это значение.
- Если локация наследует эту настройку, используется максимальный TTL на уровне аккаунта.
- Если максимальный TTL не настроен ни на одном уровне, значения TTL вышестоящего сервера передаются без изменений.
Допустимый диапазон для любого значения максимального TTL составляет от 60 до 36,000 секунд (от 1 минуты до 10 часов).
Настройте максимальный TTL на уровне аккаунта
Настройка на уровне аккаунта применяется ко всем локациям DNS, для которых не задано переопределение на уровне локации.
- В Zero Trust ↗, перейдите в Политики трафика > Настройки трафика.
- В разделе Прокси и проверка, найдите Настроить время жизни (TTL) для разрешения DNS раздел.
- Введите значение в секундах (от 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.
Настройте максимальный TTL для каждой локации
Каждый DNS-локация может переопределять настройку уровня аккаунта. Настройка для конкретного местоположения поддерживает три режима:
| Режим | Поведение |
|---|---|
Учитывать настройку на уровне аккаунта (inherit) |
Использует значение, заданное на уровне аккаунта. Это значение применяется по умолчанию для новых локаций. |
Не задавать максимальное значение (disabled) |
Отключает максимальное ограничение TTL для этого расположения, даже если оно настроено на уровне аккаунта. Исходные значения TTL передаются без изменений. |
Custom (override) |
Задаёт максимальный TTL для конкретной локации, который переопределяет значение на уровне аккаунта. Требуется ttl_secs значение от 60 до 36 000. |
- В Zero Trust ↗, перейдите в Сети > Резолверы и прокси > Локации DNS.
- Выберите местоположение или создайте новое.
- В Конечные точки DNS вкладке найдите Настройте время жизни (TTL) для этого местоположения раздел.
- Выберите один из:
- Учитывать настройку на уровне аккаунта: наследует верхний предел TTL, заданный на уровне аккаунта.
- Не задавать максимальное значение: отключает верхний предел 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
}
}'Поля журнала DNS
Когда действует максимальный TTL, в журналах DNS Gateway появляются два дополнительных поля:
| Поле | Описание |
|---|---|
upstream_record_ttls |
Исходные значения TTL из ответа вышестоящего DNS-сервера, до применения каких-либо ограничений. |
applied_max_ttl |
Максимальное значение TTL, применённое Gateway к ответу. Если ограничение не применялось, это поле отсутствует. |
Эти поля доступны в средстве выбора столбцов журналов DNS в разделе Сведения об ответе DNS группе на панели управления, а также в наборах данных Logpush.