[Pdns-users] PowerDNS backend

Aki Tuomi cmouse at youzen.ext.b2.fi
Tue Feb 5 09:09:13 UTC 2013


Um. No.

It's like this:

pipe and remotebackends act as conduits that let you use whatever as the real
backend by converting the requests into some plain text format. Such as 
tab separated query or json. 

This lets you use script languages (perl,ruby,python,sh,whatnot) as the actual
backend, and the middleware (pipe or remotebackend) handles the tedious task
of converting the data from/to structures used by powerdns.

On the other hand if you write your own native backend, you will have to create
it with C++ and it has to handle the API itself. This is more complex work
than just writing a read-locked script to handle requests. There are lots of
examples you can use. You don't use pipe or remotebackend if you write a native
backend. 

Aki

On Tue, Feb 05, 2013 at 01:01:40AM -0800, RBK1001 wrote:
> 
> Hi Aki
> 
> understood. 
> 
> one silly question. even I need to write my own backend, I still need to use
> pipebackend option, rite?
> 
> - rbk
> 
> 
> Aki Tuomi wrote:
> > 
> > It is difficult to measure performance for scripted APIs as that depends
> > on 
> > what you do in the backend. However, due to reasons like JSON parsing and 
> > generally more complex processing, remotebackend is probably slower than 
> > equivalent pipe backend. 
> > 
> > The best performance can be gained by writing your own backend, if there
> > is
> > no backend to suit your needs. Although best performance here does require
> > some thought into the backend design. 
> > 
> > Aki Tuomi
> > 
> > On Mon, Feb 04, 2013 at 05:03:40PM -0800, RBK1001 wrote:
> >> 
> >> Thanks
> >> 
> >> Considering performance, which backend should I used?
> >> 
> >> 
> >> 
> >> Aki Tuomi wrote:
> >> > 
> >> > And now that I started making this, it became evident that
> >> remotebackend
> >> > has a 
> >> > major failure in it. Good news is that there is a patch for it in
> >> ticket
> >> > #697
> >> > 
> >> > The sample script is here: http://cmouse.desteem.org/remote.rb
> >> > 
> >> > Aki Tuomi
> >> > 
> >> > On Mon, Feb 04, 2013 at 01:08:48PM +0200, Aki Tuomi wrote:
> >> >> Hi!
> >> >> 
> >> >> I'll create a sample script for you. 
> >> >> 
> >> >> Aki
> >> >> 
> >> >> On Mon, Feb 04, 2013 at 01:56:22AM -0800, RBK1001 wrote:
> >> >> > 
> >> >> > Hi
> >> >> > 
> >> >> > I need more information on how I can perform Remote Backend? is
> >> there
> >> >> any
> >> >> > more information that I can refer to?
> >> >> > 
> >> >> > - rbk
> >> >> > 
> >> >> > 
> >> >> > Roman Gaufman-2 wrote:
> >> >> > > 
> >> >> > > PowerDNS can fork the process as many times as you configure using
> >> >> > > the distributor-threads option.
> >> >> > > 
> >> >> > > The good thing is the process remains running and kept running by
> >> >> > > PowerDNS's guardian so I think it will be more limited by your
> >> >> process
> >> >> > > than
> >> >> > > by PowerDNS :)
> >> >> > > 
> >> >> > > Re: Peter van Dijk
> >> >> > > 
> >> >> > > Thank you for that, I will check it out :) - right now I also read
> >> >> the
> >> >> > > openvpn ipp.txt file every time it changes to give vpn clients
> >> their
> >> >> own
> >> >> > > hostname so the pipe backend gives a bit more flexibility, but
> >> will
> >> >> > > definitely check out the remotebackend!
> >> >> > > 
> >> >> > > On 4 February 2013 09:39, RBK1001 <Paul.Sun at syniverse.com> wrote:
> >> >> > > 
> >> >> > >>
> >> >> > >> Hi
> >> >> > >>
> >> >> > >> Thank for the reply. If using pipebackend/bindbackend, is the
> >> >> performance
> >> >> > >> acceptable when comparing within mysql/pgsql?
> >> >> > >>
> >> >> > >> - rbk
> >> >> > >>
> >> >> > >>
> >> >> > >>
> >> >> > >> Roman Gaufman-2 wrote:
> >> >> > >> >
> >> >> > >> > I really love the simplicity of pipe backend and why I use
> >> >> powerdns
> >> >> > >> > instead
> >> >> > >> > of say bind, all you need to really do is add this to your
> >> >> pdns.conf:
> >> >> > >> >
> >> >> > >> > launch=pipe,bind
> >> >> > >> > pipe-command=/etc/powerdns/dns_pipe.rb
> >> >> > >> >
> >> >> > >> > And in your script, you can have something as simple as:
> >> >> > >> >
> >> >> > >> > require 'powerdns_pipe'
> >> >> > >> > PowerDNS::Pipe.new.run! do
> >> >> > >> >   answer :name => question.name, :type => 'A', :ttl => 60,
> >> >> :content =>
> >> >> > >> > '1.2.3.4'
> >> >> > >> > end
> >> >> > >> >
> >> >> > >> > The above is an example written in Ruby, but really it just
> >> reads
> >> >> DNS
> >> >> > >> > requests from STDIN and writes DNS responses to STDOUT. You can
> >> >> add any
> >> >> > >> > custom code that will figure out the IP to your question - in
> >> my
> >> >> case I
> >> >> > >> > plan to query a RESTFUL Rails API.
> >> >> > >> >
> >> >> > >> > Roman
> >> >> > >> >
> >> >> > >> > On 4 February 2013 09:29, RBK1001 <Paul.Sun at syniverse.com>
> >> wrote:
> >> >> > >> >
> >> >> > >> >>
> >> >> > >> >> Hi
> >> >> > >> >>
> >> >> > >> >> Thank for the information.
> >> >> > >> >>
> >> >> > >> >> I have a bit confused on the the pipebackend and bind backend,
> >> >> which
> >> >> > >> one
> >> >> > >> >> should I use?
> >> >> > >> >>
> >> >> > >> >> - rbk
> >> >> > >> >>
> >> >> > >> >>
> >> >> > >> >> Ruben '_cyclops_' d'Arco wrote:
> >> >> > >> >> >
> >> >> > >> >> > Hi,
> >> >> > >> >> >
> >> >> > >> >> > This should be helpful as a first start:
> >> >> > >> >> >  http://doc.powerdns.com/backend-writers-guide.html
> >> >> > >> >> >
> >> >> > >> >> > Also have a look at the regression-test direcory, as it is
> >> >> quiet
> >> >> > >> helpul
> >> >> > >> >> > for testing your backend.
> >> >> > >> >> >
> >> >> > >> >> > Regards,
> >> >> > >> >> >     Ruben
> >> >> > >> >> >
> >> >> > >> >> > RBK1001 <Paul.Sun at syniverse.com> wrote:
> >> >> > >> >> >
> >> >> > >> >> >>
> >> >> > >> >> >>Hi
> >> >> > >> >> >>
> >> >> > >> >> >>we would like to seek for an advice on the use of backend.
> >> >> > >> >> >>
> >> >> > >> >> >>we understood that PowerDNS offers several backend
> >> solutions,
> >> >> > >> however,
> >> >> > >> >> >>I
> >> >> > >> >> >>would like to know is there a way to connect to our
> >> >> customerized
> >> >> > >> >> >>backend?
> >> >> > >> >> >>Currently, we are using a non-sql customerized backend with
> >> >> large
> >> >> > >> >> >>amount of
> >> >> > >> >> >>data stored, and we would like to intergrate powerdns with
> >> it,
> >> >> is
> >> >> > >> there
> >> >> > >> >> >>anyway we can do?
> >> >> > >> >> >>
> >> >> > >> >> >>- rbk
> >> >> > >> >> >
> >> >> > >> >> > --
> >> >> > >> >> > Regards,
> >> >> > >> >> >           Ruben
> >> >> > >> >> > _______________________________________________
> >> >> > >> >> > Pdns-users mailing list
> >> >> > >> >> > Pdns-users at mailman.powerdns.com
> >> >> > >> >> > http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> >> > >> >> >
> >> >> > >> >> >
> >> >> > >> >>
> >> >> > >> >> --
> >> >> > >> >> View this message in context:
> >> >> > >> >>
> >> http://old.nabble.com/PowerDNS-backend-tp34979116p34979385.html
> >> >> > >> >> Sent from the PowerDNS mailing list archive at Nabble.com.
> >> >> > >> >>
> >> >> > >> >> _______________________________________________
> >> >> > >> >> Pdns-users mailing list
> >> >> > >> >> Pdns-users at mailman.powerdns.com
> >> >> > >> >> http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> >> > >> >>
> >> >> > >> >
> >> >> > >> > _______________________________________________
> >> >> > >> > Pdns-users mailing list
> >> >> > >> > Pdns-users at mailman.powerdns.com
> >> >> > >> > http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> >> > >> >
> >> >> > >> >
> >> >> > >>
> >> >> > >> --
> >> >> > >> View this message in context:
> >> >> > >> http://old.nabble.com/PowerDNS-backend-tp34979116p34979413.html
> >> >> > >> Sent from the PowerDNS mailing list archive at Nabble.com.
> >> >> > >>
> >> >> > >> _______________________________________________
> >> >> > >> Pdns-users mailing list
> >> >> > >> Pdns-users at mailman.powerdns.com
> >> >> > >> http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> >> > >>
> >> >> > > 
> >> >> > > _______________________________________________
> >> >> > > Pdns-users mailing list
> >> >> > > Pdns-users at mailman.powerdns.com
> >> >> > > http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> >> > > 
> >> >> > > 
> >> >> > 
> >> >> > -- 
> >> >> > View this message in context:
> >> >> http://old.nabble.com/PowerDNS-backend-tp34979116p34979453.html
> >> >> > Sent from the PowerDNS mailing list archive at Nabble.com.
> >> >> > 
> >> >> > _______________________________________________
> >> >> > Pdns-users mailing list
> >> >> > Pdns-users at mailman.powerdns.com
> >> >> > http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> >> > 
> >> > 
> >> > 
> >> > 
> >> >> _______________________________________________
> >> >> Pdns-users mailing list
> >> >> Pdns-users at mailman.powerdns.com
> >> >> http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> > 
> >> > 
> >> >  
> >> > _______________________________________________
> >> > Pdns-users mailing list
> >> > Pdns-users at mailman.powerdns.com
> >> > http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> > 
> >> > 
> >> 
> >> -- 
> >> View this message in context:
> >> http://old.nabble.com/PowerDNS-backend-tp34979116p34983132.html
> >> Sent from the PowerDNS mailing list archive at Nabble.com.
> >> 
> >> _______________________________________________
> >> Pdns-users mailing list
> >> Pdns-users at mailman.powerdns.com
> >> http://mailman.powerdns.com/mailman/listinfo/pdns-users
> >> 
> > 
> >  
> > _______________________________________________
> > Pdns-users mailing list
> > Pdns-users at mailman.powerdns.com
> > http://mailman.powerdns.com/mailman/listinfo/pdns-users
> > 
> > 
> 
> -- 
> View this message in context: http://old.nabble.com/PowerDNS-backend-tp34979116p34984061.html
> Sent from the PowerDNS mailing list archive at Nabble.com.
> 
> _______________________________________________
> Pdns-users mailing list
> Pdns-users at mailman.powerdns.com
> http://mailman.powerdns.com/mailman/listinfo/pdns-users
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20130205/9fcd40f6/attachment-0001.sig>


More information about the Pdns-users mailing list