Динамический ответ с помощью PowerDNS

Добрый вечер.

Имеем:
нуба, который только начал читать о DNS и задачу:
отдавать через DNS различные IP в зависимости от каких-то условий (IP посетителя). Нет, не Geo, но что-то рядом.

Почитав доку, я понял, что можно использовать несколько backendов, например: postgresql + python скрипт. Если данных нет в postgre, то ответ должен дать python pipe script.

Планировал так:
При новом запросе, если данного IP/сети нет в базе, обращаться к Python бэкенду, который бы согласно логике отдавал запись + добавлял ее в БД.

Проблема:
Я так и не понял, можно ли модифицировать запросы gpgsql-basic-query или какой-то другой, чтобы он учитывал IP? Или тогда все надо писать на pipe backend?

И второй вопрос:
я правильно понял, что если не отключать shuffle, то при наличии нескольких записей, powerdns будет отдавать разные, а не только первую?

Заранее спасибо за помощь.
  • Вопрос задан
  • 3466 просмотров
Решения вопроса 1
@marklarius
1. Проще вынести логику в скрипт чем модифицировать запросы. Я как-то давно построил такой Geo-aware бекенд, работает без перебоев уже пару лет.
2. Shuffle не имеет отношение к множественным ответам, а просто к порядку их возвращения (no shuffle: А, Б, С; shuffle: С, Б, А,)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SLIDERWEB
@SLIDERWEB
ИТ-Куроводитель
View не помогает?
Делаете несколько зон при условии отдаете нужную зону. Условие может быть вынесено в отдельный файл или являтся результатом работы скрипта.
Городить логику — круто, но не всегда оправданно.
Я так по каналам маршрутизирую траффик. Если юзер принадлежит к такой-то подсети — отдаем этот конфиг, к другой — следующий конфиг, если не принадлежит ни к одной из этих подсетей — отдаем дефолтный конфиг на третий канал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы