Официальные IP-сети поискового робота DuckDuckBot
Официальные IP-сети поискового робота DuckDuckBot — Официальные адреса краулера конфиденциальной поисковой платформы DuckDuckGo. Робот выполняет сбор данных для поддержания поисковой выдачи и генерации быстрых ответов.
1. Общие сведения и профиль сетевой активности
Диапазоны адресов закреплены за автономной системой AS8075 (Microsoft Azure Infrastructure). Запросы из этих сетей генерируются официальными роботами и сервисами индексации. При настройке фаерволов и WAF рекомендуется вносить эти адреса в белый список (Whitelist), чтобы избежать блокировки поисковой индексации и генерации сниппетов.
Важное правило безопасности:
Никогда не разрешайте доступ только по строке User-Agent. Спам-боты и скрипты кликфрода свободно подставляют User-Agent поисковых роботов. Надежная фильтрация требует сопоставления IP-клиента с приведенным ниже списком подсетей либо выполнения процедуры обратного DNS-запроса (rDNS).
2. Диапазоны IPv4 (CIDR)
Актуальный перечень подтвержденных IPv4-подсетей вендора для белого списка:
| Подсеть (CIDR) | Сетевая маска | Количество IP-адресов | Действие |
|---|---|---|---|
| 20.191.45.0/24 | 255.255.255.0 | 256 | |
| 40.88.21.0/24 | 255.255.255.0 | 256 | |
| 52.142.26.0/24 | 255.255.255.0 | 256 | |
| 52.234.254.0/24 | 255.255.255.0 | 256 | |
| 54.197.234.0/24 | 255.255.255.0 | 256 |
3. Проверка подлинности (Reverse DNS / PTR)
Выполнение PTR-запроса возвращает имя хоста в домене *.duckduckgo.com.
# 1. Получаем PTR запись проверяемого IP:
$ dig -x <IP-АДРЕС> +short
# 2. Проверяем прямую A-запись полученного хоста:
$ dig <ПОЛУЧЕННЫЙ_ХОСТ> +short
# Если возвращенный IP совпадает с исходным и хост оканчивается на *.duckduckgo.com — бот подлинный.
4. Конфигурации для веб-серверов
Используйте готовые директивы для добавления диапазонов в белый список вашего веб-сервера или WAF:
geo $is_duckduckgo {
default 0;
20.191.45.0/24 1;
40.88.21.0/24 1;
52.142.26.0/24 1;
52.234.254.0/24 1;
54.197.234.0/24 1;
}
Поместите блок geo в контекст http { ... } (например, в /etc/nginx/conf.d/search_bots.conf) и используйте переменную для снятия rate-limit ограничений.
<RequireAny>
Require ip 20.191.45.0/24
Require ip 40.88.21.0/24
Require ip 52.142.26.0/24
Require ip 52.234.254.0/24
Require ip 54.197.234.0/24
</RequireAny>
Директива <RequireAny> разрешает доступ клиентам, чей IP-адрес входит в любую из указанных подсетей.
(ip.src in {
20.191.45.0/24 40.88.21.0/24 52.142.26.0/24 52.234.254.0/24
54.197.234.0/24
})
Создайте Custom Rule в Cloudflare Dashboard: Security → WAF → Custom rules с действием: Skip / Allow (Пропуск без проверки).