Я хотел бы вернуть уникальный CNAME для каждого запроса и добавить IP-адрес этого CNAME в файлы зоны. Является ли это возможным?
В вашем вопросе нет подробностей. Зачем вы это делаете (почему именно CNAME?), Кто выполняет запрос, почему вам нужно поместить результат в файл зоны и т. Д.
Вот лишь некоторые смутные идеи.
Если ваш вопрос касается генерации записей «на лету», да, вы можете сделать это с помощью bind, а также с другими серверами имен, позволяющими выбирать «динамический» бэкэнд с некоторым языком программирования.
Видеть:
Вы также можете, опять же, в зависимости от ваших потребностей, создать небольшой простой авторитетный сервер имен на любом языке программирования, который вы выберете, который имеет хорошую библиотеку абстракции DNS для обработки всех деталей (а их много) протокола DNS.
Другой дешевый способ сделать это: использовать подстановочные знаки. Но с осторожностью. Однако по своей сути подстановочные знаки позволяют сразу иметь все CNAME, которые вы хотите, в вашем файле зоны с помощью только одной строки. Но все зависит от того, кто запрашивает ваш сервер имен.
Помните, что ваш авторитетный сервер имен имеет в качестве клиентов рекурсивные серверы имен, а не конечных клиентов, поэтому он будет видеть только IP-адрес последнего рекурсивного сервера имен, использованный клиентом, а не IP-адрес клиента. У вас есть опция подсети клиента EDNS, которая, если она поддерживается рекурсивным преобразователем, будет указывать вам подсеть IP-адреса клиента, но никогда не будет указывать полный адрес из соображений конфиденциальности.
В завершение взгляните на различные работы Джеффа Хьюстона. Он исследователь DNS в APNIC, который проводит много исследований. Для их проведения он часто покупает объявления, которые предоставляют уникальные ссылки для каждого клиента, относящиеся к определенным именам. См. Этот пример среди других: Подсчет IPv6 в DNS | Колонка ISP Это может дать вам несколько свежих идей.
(См. Мой подробный ответ на ваш запрос: Как связать DNS-запросы с запросами к веб-серверу, на котором размещено это доменное имя? | Ошибка сервера)