Я пытаюсь написать собственный трубопровод для powerdns, но не могу заставить его работать правильно. Я начинаю pdn_server с моим бэкэндом и попытаться проверить его с помощью команды:PowerDNS не получил ответ от бэкэнда канала
# nslookup example.com 127.0.0.1
и
# dig @127.0.0.1 example.com
Первой проблема заключается в том, что первый запрос бакэнд приходит с типом «SOA» (базовая аби версией 2):
Q example.com IN SOA -1 127.0.0.1 0.0.0.0
Я, хотя «Хорошо, давайте начать с SOA» и попытаемся написать часть кода. В отладочном состоянии я могу видеть, что начальный сервер начал, получил запрос и отправил ответ на pdns. Но похоже, что что-то идет не так, и pdns этого не понимает. Не могу понять, в чем проблема. Исходный код и отладки заключается в следующем:
#!/usr/bin/python
from sys import stdin, stdout, stderr
data = stdin.readline()
stdout.write("OK\tCC DNS Backend\n")
stdout.flush()
stderr.write("$$$ Main loop started...\n")
while True:
line = stdin.readline().strip()
kind, qname, qclass, qtype, id, ip, mask = line.split('\t')
if kind == 'Q':
stderr.write('$$$ Got request ' + qname + '\n')
if qtype != 'SOA':
r = "DATA\t'+qname+'\t'+qtype+'\t'+qclass+'\t'+'127.0.0.1\n"
stderr.write(r)
stdout.write(r)
else:
stderr.write("$$$ Sending SOA\n")
r = "DATA\texample.com\tIN\tSOA\t86400\t1\tahu.example.com ns1.example.com 2008080300 1800 3600 604800 3600\n"
stdout.write(r)
stderr.write(r)
stdout.write("END\n")
stderr.write("END\n")
отладки:
Dec 05 15:36:43 Done launching threads, ready to distribute questions
Dec 05 15:36:49 Query: 'Q example.com IN SOA -1 127.0.0.1 0.0.0.0'
$$$ Got request example.com
$$$ Sending SOA
DATA example.com IN SOA 86400 1 ahu.example.com ns1.example.com 2008080300 1800 3600 604800 3600
END
$$$ Main loop started...
Dec 05 15:36:49 Backend launched with banner: OK CC DNS Backend
$$$ Main loop started...
Dec 05 15:36:49 Backend launched with banner: OK CC DNS Backend
Dec 05 15:36:54 Query: 'Q example.com IN SOA -1 127.0.0.1 0.0.0.0'
$$$ Got request example.com
$$$ Sending SOA
DATA example.com IN SOA 86400 1 ahu.example.com ns1.example.com 2008080300 1800 3600 604800 3600
END
Dec 05 15:36:59 Query: 'Q example.com IN SOA -1 127.0.0.1 0.0.0.0'
$$$ Got request example.com
$$$ Sending SOA
DATA example.com IN SOA 86400 1 ahu.example.com ns1.example.com 2008080300 1800 3600 604800 3600
END