[Pdns-users] PowerDNS backend

Aki Tuomi cmouse at youzen.ext.b2.fi
Tue Feb 5 11:24:27 UTC 2013


If you have your own backend, you can use pipe or remote to adapt to it. That's 
the whole point of pipe/remotebackend. It lets you easily write adapters to 
speak with custom backends. These enable you to communicate with custom stuff
very easily. Look at the script I sent earlier.

Writing native backend is what you should do if you feel it's necessary. It is 
much easier to use pipe/remotebackend as those will be kept up-to-date against
pdns versions. 

Aki

On Tue, Feb 05, 2013 at 01:23:46AM -0800, RBK1001 wrote:
> 
> Thanks
> 
> THis is what I confused. the information on how to write the native backend
> seems telling how to write the backend? but I actually have the backend in
> place, just that pDNS cannot comnuicate with it.
> 
> so my question is whether I should write an adapter and embedded in pDNS or
> else?
> 
> I just want to make clear myself.
> 
> sorry about that
> 
> 
> 
> Aki Tuomi wrote:
> > 
> > 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
> >> 
> > 
> >  
> > _______________________________________________
> > 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-tp34979116p34984131.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/953b4ae2/attachment-0001.sig>


More information about the Pdns-users mailing list