3 ms·
Ahhh, PowerDNS! At the time I determined that BIND was completely unscalable to perform configuration management on (no include directives in those days, circa
by Annatar 9y ago
Ahhh, PowerDNS! At the time I determined that BIND was completely unscalable to perform configuration management on (no include directives in those days, circa 2007), I determined that I needed a DNS server which supported ordinary SQL and a relational database on the backend.
PowerDNS was the only DNS server at the time to use a relational database, and they supported several, including Oracle, which is what won me over. I embarked on an epic journey to make PowerDNS a first class citizen on Solaris 10. It took me five years, but boy did it pay off with massive dividends in stability and scalability!
PowerDNS isn't a perfect piece of software though: it has two major weaknesses, first that it is written in C++ as opposed to C and that made it a bitch to port to Solaris, and second that it depends on Boost, which is also a massive, bloated C++ monster which is a nightmare to get to build on any platform, let alone Solaris.
However, the software itself is a damn good DNS server, resistant to most attacks and constantly improving having had loving care from its user community, some which could be core PowerDNS developers in their own right. Finally it bears writing that the owners of PowerDNS are some of the kindest, sweetest guys one ever had the pleasure of working with, and they are open to considering suggestions and accepting contributions in patches and features. They were an absolute blast to work with over the years and could serve as poster children on how open source collaboration could work and make money off of at the same time.
- ahubert 9y agoblush - the PowerDNS team :-)
- Annatar 9y agoFancy meeting you here, but I'm glad that I did! Didn't know you have a "HackerNews" account B.!
- yipbub 9y agoHow did they make money?
- ahubert 9y agoI did a talk on that at OHM2013 but sadly the recordings got lost. Will blog it up one day. You can be a "good" open source company and still make money! It does require a lot of planning though.
- Annatar 9y agoThey sell commercial support contracts, and because the software is so good, they have several very large customers, to write the least... PowerDNS powers a lot of top level domains by now.
- dingaling 9y ago> I needed a DNS server which supported ordinary SQL and a relational database on the backend. The one aspect that concerns me about that is the bootstrap step of resolving the database server name. How is that done? hosts file?
- Annatar 9y agoDatabase name has nothing to do with normal host name resolution; they are two separate worlds. Oracle uses her own name resolution: "sqlnet.ora" is the equivalent of nsswitch.conf(4), and "tnsnames.ora" defines the TNS listener's service name(s), protocol, port, and connection type. Database name, user and password are then configured in powerdns.conf(4). When linked with Oracle client libraries, pdns(1M) Oracle backend module makes the database connection over "OCI", the Oracle client interface. Other database backends, like for example SQLite run on the same server so pdns(1M) "gsqlite" backend module opens the database file directly.