Алгоритм
Сам резолв запускается из кронтаба каждые 5 минут (если включен).
Обновляет данные о IP адресах ресурсов, ttl которых истёк.
В случае отсутствия информации о DNS ресурсе - помечается как "плохой" и ему устанавливается TTL = 180 минут.
В случае изменения IP адреса ttl уменьшается на 5 минут.
В случае, если адрес не изменился - увеличивается на 5 минут (но не более 60 минут).
Раз в 5 минут результат резолва объединяется со списками IP адресов из единого реестра и загружается в ipset: https_reductor, доступ к которому блокируется на 443 порту.
Кэш резолва
Расположение
Файл
/usr/local/Reductor/cache/https_resolv.json
Просмотр
python -m json.tool /usr/local/Reductor/cache/https_resolv.json
Поиск по домену
/usr/local/Reductor/bin/cache_ctl yourdomain.com
Поиск по IP
/usr/local/Reductor/bin/cache_ctl --ip 1.2.3.4
Структура
- домен
- ttl (время жизни записи)
- время последнего обновление записи
- список ip адресов, соответствующих этому домену