PowerDNS MongoDB: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 16: | Строка 16: | ||
<BR> |
<BR> |
||
make install не делаю а беру модуль и подкладываю его там где ищет pdns_server |
make install не делаю а беру модуль и подкладываю его там где ищет pdns_server |
||
+ | |||
+ | ==Ошибка в плагине== |
||
+ | Мне пришлось закоментировать использование хинтов - с ними я получал ошибку: |
||
+ | <PRE> |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (getSOA) Query: { name: "smtp-servers.example.com" } |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (getSOA) Query: { name: "example.com" } |
||
+ | Jun 08 14:15:19 We have authority, zone='example.com', id=10 |
||
+ | Jun 08 14:15:19 UeberBackend received question for ANY of smtp-servers.example.com |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (lookup) Query: { query: { name: "smtp-servers.example.com" }, $hint: { name: 1 } } |
||
+ | Jun 08 14:15:19 Ueber get() was called for a ANY record |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (get) Error: The record '{ $err: "bad hint", code: 10113 }' is missing required element(s) for the query '{ query: { name: "smtp-servers.example.com" }, $hint: { name: 1 } }' |
||
+ | Jun 08 14:15:19 UeberBackend reached end of backends |
||
+ | Jun 08 14:15:19 After first ANY query for 'smtp-servers.example.com', id=10: weDone=0, weHaveUnauth=0, weRedirected=0 |
||
+ | Jun 08 14:15:19 Found nothing in the ANY, but let's try wildcards.. |
||
+ | Jun 08 14:15:19 UeberBackend received question for ANY of *.example.com |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (lookup) Query: { query: { name: "*.example.com" }, $hint: { name: 1 } } |
||
+ | Jun 08 14:15:19 Ueber get() was called for a ANY record |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (get) Error: The record '{ $err: "bad hint", code: 10113 }' is missing required element(s) for the query '{ query: { name: "*.example.com" }, $hint: { name: 1 } }' |
||
+ | Jun 08 14:15:19 UeberBackend reached end of backends |
||
+ | Jun 08 14:15:19 Found nothing in the ANY and wildcards, let's try NS referral |
||
+ | Jun 08 14:15:19 UeberBackend received question for NS of smtp-servers.example.com |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (lookup) Query: { query: { name: "smtp-servers.example.com", type: "NS" }, $hint: { name: 1, type: 1 } } |
||
+ | Jun 08 14:15:19 Ueber get() was called for a NS record |
||
+ | Jun 08 14:15:19 [MONGODBBackend: (1)] (get) Error: The record '{ $err: "bad hint", code: 10113 }' is missing required element(s) for the query '{ query: { name: "smtp-servers.example.com", type: "NS" }, $hint: { name: 1, type: 1 } }' |
||
+ | </PRE> |
||
+ | Насколько я могу понять - нужно писать hint { ... } а не $hint. Предположительно это баг. |
Версия 15:01, 8 июня 2012
PowerDNS + MongoDB
Требуется - настроить ДНС сервер который будет брать данные из Монго. Почему Монго - так хочет заказчик. Заполнять базу будет отдельное приложение, днс будет частью системы.
Сборка плагина
Ни одна из бинарных сборок которые я попробовал не включала плагина для работы с монго. В gentoo не было ключа для включение плагина при компиляции.
Путь один - собирать сервер руками. (чуть позже - собрать пакет для своей системы, rpm )
Для сборки требуются исходники mongo. Я не нашел как передать путь к хедерам монго - насколько я могу судить путь захардкожен. Потому (знаю что не правильно) просто скопировал все хедеры в папку с плагином (/usr/src/pdns-3.0.1/modules/mongodbbackend/)
Далее традиционно
./configure make
Обратить внимание на описание проблем со сборкой ниже - мне пришлось "патчить" модуль до рабочего состояния. Возможно вам не прийдется, или это особенность моего дистрибутива или сборки.
make install не делаю а беру модуль и подкладываю его там где ищет pdns_server
Ошибка в плагине
Мне пришлось закоментировать использование хинтов - с ними я получал ошибку:
Jun 08 14:15:19 [MONGODBBackend: (1)] (getSOA) Query: { name: "smtp-servers.example.com" } Jun 08 14:15:19 [MONGODBBackend: (1)] (getSOA) Query: { name: "example.com" } Jun 08 14:15:19 We have authority, zone='example.com', id=10 Jun 08 14:15:19 UeberBackend received question for ANY of smtp-servers.example.com Jun 08 14:15:19 [MONGODBBackend: (1)] (lookup) Query: { query: { name: "smtp-servers.example.com" }, $hint: { name: 1 } } Jun 08 14:15:19 Ueber get() was called for a ANY record Jun 08 14:15:19 [MONGODBBackend: (1)] (get) Error: The record '{ $err: "bad hint", code: 10113 }' is missing required element(s) for the query '{ query: { name: "smtp-servers.example.com" }, $hint: { name: 1 } }' Jun 08 14:15:19 UeberBackend reached end of backends Jun 08 14:15:19 After first ANY query for 'smtp-servers.example.com', id=10: weDone=0, weHaveUnauth=0, weRedirected=0 Jun 08 14:15:19 Found nothing in the ANY, but let's try wildcards.. Jun 08 14:15:19 UeberBackend received question for ANY of *.example.com Jun 08 14:15:19 [MONGODBBackend: (1)] (lookup) Query: { query: { name: "*.example.com" }, $hint: { name: 1 } } Jun 08 14:15:19 Ueber get() was called for a ANY record Jun 08 14:15:19 [MONGODBBackend: (1)] (get) Error: The record '{ $err: "bad hint", code: 10113 }' is missing required element(s) for the query '{ query: { name: "*.example.com" }, $hint: { name: 1 } }' Jun 08 14:15:19 UeberBackend reached end of backends Jun 08 14:15:19 Found nothing in the ANY and wildcards, let's try NS referral Jun 08 14:15:19 UeberBackend received question for NS of smtp-servers.example.com Jun 08 14:15:19 [MONGODBBackend: (1)] (lookup) Query: { query: { name: "smtp-servers.example.com", type: "NS" }, $hint: { name: 1, type: 1 } } Jun 08 14:15:19 Ueber get() was called for a NS record Jun 08 14:15:19 [MONGODBBackend: (1)] (get) Error: The record '{ $err: "bad hint", code: 10113 }' is missing required element(s) for the query '{ query: { name: "smtp-servers.example.com", type: "NS" }, $hint: { name: 1, type: 1 } }'
Насколько я могу понять - нужно писать hint { ... } а не $hint. Предположительно это баг.