[Pdns-users] PowerDNS backend

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


You might want to use pipe/remotebackend to model your backend first, as you 
can use "whatever" you want to write this model. Once you understand this, you
could then convert it to a native C++ backend. Please refer to doc.powerdns.com
on how to write a native backend.

Aki

On Tue, Feb 05, 2013 at 01:12:15AM -0800, RBK1001 wrote:
> 
> understand.
> 
> I actually have a client that accessing my customerize non-sql backend. It
> looks like I need to create a C application to work with the pDNS.
> 
> is there any sample that I can refer to.
> 
> - rbk
> 
> 
> 
> Aki Tuomi wrote:
> > 
> > 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
> >> 
> > 
> >  
> > _______________________________________________
> > 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-tp34979116p34984102.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/140e5a58/attachment-0001.sig>


More information about the Pdns-users mailing list