Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have a Python DNS server that does a bunch of stuff to figure out values it should return for various DNS records. This works nicely, however as it is Python, the performance under high load won't be great.

What I would like to do is have a "proxy" bind server sit in front of it to return results to the public internet. This will cache the results (typically 15 minutes, some records are a few seconds), so the load on the Python server will be greatly reduced as it will only see one look up per domain (only about 100 domains) every 15 minutes.

The data in these domains changes a lot, so using a master won't work as it will constantly be changing.

I have something setup that looked like it would work great (using a forwarder for the zone), and tested it with dig etc, all going great.

However when we went to go live with it, things weren't working, and we figured out that named is not setting the "Authoritative" bit (fair enough, it is a forwarder).

So my question is, can we tell bind to set the Authoritative bit for forwarded domains? I have looked at all the doco I can find, and can't find anything about doing things this way. Most of the doco about using it as a proxy if for a LAN to the internet.

Ideally I would like to use bind as it is there and installed (CentOS 5 servers). But at a pinch we could look at a different name server to do the work if it just can't be done with bind.


share|improve this question
It would be better to reimplement it in a more high performance language. There's a very good reason that all the most common DNS servers are written in C (or C++). – Michael Hampton Jun 28 '13 at 3:19
The challenge we have here is we are overloading DNS to do things that aren't really DNS (I know it is bad, but like many other projects, it really is the best way to go). The libs etc in Python make it all a LOT simpler to write. Moving to a pure C platform with be ideal, but the over head to maintain and make secure would be pretty big - especially when we are so close! :) (ie: it is working except for a single bit) – TrentDavis Jun 28 '13 at 3:52
You could just write an extension for PowerDNS that does whatever you want. It would probably take a tenth of the time you've already put into this. – Michael Hampton Jun 28 '13 at 3:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.