<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open Sourcery &#187; PowerDNS on Rails</title>
	<atom:link href="http://www.opensourcery.co.za/category/powerdns-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opensourcery.co.za</link>
	<description>Wizardry through open source</description>
	<lastBuildDate>Wed, 04 Aug 2010 13:04:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Macro support for PowerDNS on Rails</title>
		<link>http://www.opensourcery.co.za/2009/01/04/macro-support-for-powerdns-on-rails/</link>
		<comments>http://www.opensourcery.co.za/2009/01/04/macro-support-for-powerdns-on-rails/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 15:26:31 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[macros]]></category>
		<category><![CDATA[powerdns]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=153</guid>
		<description><![CDATA[PowerDNS, and PowerDNS on Rails forms a critical part of our infrastructure here at inX, and over the holidays I&#8217;ve been busy adding support for macros to PowerDNS on Rails.
Macros allow a DNS administrator to setup a predefined sequence of steps that will later be applied to any domain they choose, via the web interface [...]]]></description>
			<content:encoded><![CDATA[<p>PowerDNS, and PowerDNS on Rails forms a critical part of our infrastructure here at inX, and over the holidays I&#8217;ve been busy adding support for macros to PowerDNS on Rails.</p>
<p>Macros allow a DNS administrator to setup a predefined sequence of steps that will later be applied to any domain they choose, via the web interface or API access.</p>
<p>Where is this used? Well, lets take a simple example related around web hosting. Lets say you have zone templates configured for three data centers, one in South Africa, one in Europe and one in the US. By default you&#8217;ll probably use one of these templates when new domains are added to the system. The template might contain everything you need for web hosting and email to work. Later the client asks to be shifted to another continent, for whatever reason, and you&#8217;ll have to update a load of records for that domain.</p>
<p>Macros solves this by allowing you to predefine several actions which either creates, removes or updates records for the domain. Macros can then be applied on any domain to have these changes take affect on that domain.</p>
<p>Just like zone templates, macros are available to owners and administrators alike.</p>
<div id="attachment_154" class="wp-caption alignnone" style="width: 310px"><a href="http://www.opensourcery.co.za/wp-content/uploads/2009/01/powerdns-macros.png"><img class="size-medium wp-image-154" title="PowerDNS on Rails Macros" src="http://www.opensourcery.co.za/wp-content/uploads/2009/01/powerdns-macros-300x234.png" alt="PowerDNS on Rails Macro Screen (click for full version)" width="300" height="234" /></a><p class="wp-caption-text">PowerDNS on Rails Macro Screen (click for full version)</p></div>
<p>I&#8217;ve also started creating a new official website for the PowerDNS on Rails project, and <a title="Official PowerDNS on Rails Website" href="http://kennethkalmer.github.com/powerdns-on-rails">it lives over here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2009/01/04/macro-support-for-powerdns-on-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Authentication Tokens, what are they all about?</title>
		<link>http://www.opensourcery.co.za/2008/10/07/authentication-tokens-what-are-they-all-about/</link>
		<comments>http://www.opensourcery.co.za/2008/10/07/authentication-tokens-what-are-they-all-about/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 08:27:26 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[powerdns]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=110</guid>
		<description><![CDATA[Yesterday I pushed a slew of changes to the PowerDNS on Rails repo. The sole focus of the work was to extend the authentication system to have temporary authentication tokens. What are authentication tokens? Allow me to explain&#8230;
Some background
Almost all applications these days are expected to provide some kind of REST interface, over and above [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I pushed a slew of changes to the <a href="http://github.com/kennethkalmer/powerdns-on-rails/" target="_blank">PowerDNS on Rails repo</a>. The sole focus of the work was to extend the authentication system to have temporary authentication tokens. What are authentication tokens? Allow me to explain&#8230;</p>
<p><strong>Some background</strong></p>
<p>Almost all applications these days are expected to provide some kind of REST interface, over and above HTML. It is just part of the whole programmable web paradigm, and makes applications just so much more useful.</p>
<p>PowerDNS on Rails does sport a limited REST interface for adding new domains, and I&#8217;ll extend it over time to provide a full ActiveResource compatible interface to the system. The REST paradigm works great, make no mistake, but in a lot of cases it falls flat&#8230;</p>
<p><strong>Don&#8217;t re-invent the wheel</strong></p>
<p>You spend a couple of hours getting PowerDNS on Rails installed and tweaked, you even get new domain additions plugged in via the REST interface. This works great. For some of the bigger clients you provide full access to manage their own domains. They&#8217;re happy, you&#8217;re happy.</p>
<p>For some time this works, but then smaller clients start bothering you with requests for CNAME&#8217;s and other misc A records. Initially it doesn&#8217;t matter much, until they start realizing it takes you a minute to make the changes, so they start requesting more often, and more often, and more&#8230;</p>
<p>Now you sit with some tough decisions&#8230;</p>
<p><em>Rebuild PowerDNS into your own app, and leverage a full REST API.</em></p>
<p>This makes sense, since most ISP&#8217;s (us included) have some other form of management system that the clients use to add &amp; remove domains. In a lot of cases we completely hide the complexities of the DNS system from the users, they only know about their domains, nothing else.</p>
<p>But why rebuild an already complete interface? Why bother when the open source community will maintain your interfaces for you?</p>
<p>Sold? Thought so, now you might have one option left&#8230;</p>
<p><em>Manage users &amp; domain ownerships<br />
</em></p>
<p>This reinvents another wheel all together. Some folks might argue that PowerDNS on Rails could leverage external authentication mechanisms like LDAP&#8230; I don&#8217;t believe this will solve any problems, I believe it would only make it worse.</p>
<p>And once you start giving people access to the system you have to deal with forgotten password requests, amongst other things. Enabling the forgotten password request functionality for a system that performs core backbone functions is not really an option, the damage done would really hurt domain owners and users dependent on DNS&#8230;</p>
<p>So what is a man to do?</p>
<p><strong>One possible solution<br />
</strong></p>
<p>So we agreed we&#8217;re not building our own interface on top of PowerDNS on Rails&#8217; existing one, we alse agreed that we&#8217;re not going into the external authentication debate.</p>
<p>So we need a mechanism that will provide the user with pre-defined access to a specific domain so they can do their own updates, without bothering us.</p>
<p>The mechanism should ideally have the following characteristics:</p>
<ul>
<li>Linked to a user that issued the access, gives accountability</li>
<li>Linked to a specific domain, prevents snooping around the system</li>
<li>Default policy of deny everything</li>
<li>Restrict alterations to the RR&#8217;s
<ul>
<li>We host you mail, you can&#8217;t change the MX records</li>
<li>We host your site, you can&#8217;t change some A records</li>
<li>You cannot alter the SOA or NS records, ever</li>
<li>You can add a CNAME, then remove it later</li>
<li>Add/remove additional A records that won&#8217;t affect other hosted services</li>
<li>Protect RR&#8217;s by type (MX, A, TXT, CNAME, etc&#8230;)</li>
</ul>
</li>
<li>Prevent adding RR&#8217;s</li>
<li>Prevent removing RR&#8217;s</li>
<li>An expiry mechanism, only valid until X</li>
<li><a href="/2008/09/25/powerdns-on-rails-now-sports-basic-audits/">Hook into the audit trails</a></li>
</ul>
<p>This is more or less the conversation our support guys would have with a person before they would login for the first time. Why have the conversation when you could restrict their movements completely? Since you provide them with the DNS and other services, its up to specify how they can enhance their naming system, or destroy it totally.</p>
<p><strong>Enter authentication tokens!</strong></p>
<p><img class="alignnone size-full wp-image-112" title="PowerDNS on Rails Authentication Tokens Usage Example" src="http://www.opensourcery.co.za/wp-content/uploads/2008/10/powerdns-authtokens.png" alt="" width="372" height="204" /></p>
<p>Currently authentication tokens can only be created via HTTP post, and only by <em>token_user</em> role members. The web interface is forth coming. Authentication tokens restrict user movements to a specific domain, and specific RR&#8217;s. They have all the characteristics mentioned earlier, and the interfaces adapt dynamically to show the user only what they can do.</p>
<p>You can now easily hook PowerDNS on Rails into your existing systems by providing users with a &#8216;advanced DNS&#8217; link. User selects, your systems asks PowerDNS on Rails for a token with the said restrictions in place, get a snippet of XML back with contains the token and full URL to the system. Then you just redirect your client to PowerDNS on Rails, et voila.</p>
<p>To get an idea of how to create authentication tokens, look at  <em>spec/models/auth_token_spec.rb</em> for complete examples. I know documentation is still an issue with the project&#8230;</p>
<p><strong>And the disclaimers<br />
</strong></p>
<p>In the entire history of the project this has been the first push to a public repo that hasn&#8217;t been battle tested in our production or staging environments. I&#8217;m busy setting up our staging environment for testing, and I&#8217;m sure the users will come up with some issues that will beed addressing.</p>
<p>I wanted to get the code out there for review as well, since I&#8217;m not an expert in application security there might be an issue or two that I&#8217;m not aware off. The code is extensively spec&#8217;ed, and if you don&#8217;t use the tokens the rest of the application still works as espected. A few minor bugs we&#8217;re squashed inadvertedly in the process, and I&#8217;ll update the tracker to reflect this.</p>
<p><strong>Call for comments!</strong></p>
<p>Please scrutinize the code, and give feedback. Hopefully the idea and implementation is proven solid and people can extract it for later use in other projects where the DRY principle of tokens really make a difference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/10/07/authentication-tokens-what-are-they-all-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Rails projects, make sure you&#8217;re safe&#8230;</title>
		<link>http://www.opensourcery.co.za/2008/09/27/open-source-rails-projects-make-sure-youre-safe/</link>
		<comments>http://www.opensourcery.co.za/2008/09/27/open-source-rails-projects-make-sure-youre-safe/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 18:53:01 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[powerdns]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=108</guid>
		<description><![CDATA[An impending doom? Possibly. There was a thread on the Rails Core list not too long ago, titled &#8220;Cookie session security and open-source&#8220;, and they covered what seems to be an obvious security flaw. I distinctly remember following the events as it happened and thought to myself it makes a lot of sense, and yet [...]]]></description>
			<content:encoded><![CDATA[<p>An impending doom? Possibly. There was a thread on the Rails Core list not too long ago, titled &#8220;<a href="http://groups.google.com/group/rubyonrails-core/browse_thread/thread/4d43c1fa2485f3e3?hl=en">Cookie session security and open-source</a>&#8220;, and they covered what seems to be an obvious security flaw. I distinctly remember following the events as it happened and thought to myself it makes a lot of sense, and yet I fell victim to the same thing.</p>
<p><a href="/powerdns-on-rails/">PowerDNS on Rails</a> uses the cookie store, and until <a href="http://github.com/kennethkalmer/powerdns-on-rails/commit/b2ff9410de574b3e96cb952376ea82285f9f6a43">b2ff9410de[...]</a> had both the session key and session secret hard coded in the <em>environment.rb</em> file.</p>
<p>It came down on my like a ton of bricks when I was moderating a comment by JGeiger on my previous post (<a href="/2008/09/26/using-hoptoad-in-open-source-project-deployments/">Using hoptoad in open source project deployments</a>). I quickly jumped to fix the code using a solution put out by <a href="http://almosteffortless.com/2007/12/27/configuring-cookie-based-sessions-in-rails-20/">Trevor Turk</a> which requires users to set both the session key and session secret in their database.yml files.</p>
<p>I know this is not an optimal solution, but works until the Core team (and us) have found a reasonable solution to the problem.</p>
<p>As part of stating the obvious (you gotta love hindsight), I recommend anyone who is running PowerDNS on Rails in a production environment to run it over SSL. Apart from session hijacking woes, having your zone data readable as plain text is just as bad as allowing zone transfers to any DNS client&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/09/27/open-source-rails-projects-make-sure-youre-safe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PowerDNS on Rails now sports basic audits</title>
		<link>http://www.opensourcery.co.za/2008/09/25/powerdns-on-rails-now-sports-basic-audits/</link>
		<comments>http://www.opensourcery.co.za/2008/09/25/powerdns-on-rails-now-sports-basic-audits/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 12:06:15 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[powerdns]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[quickies]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=90</guid>
		<description><![CDATA[Just as a quick update on the PowerDNS on Rails project, I&#8217;ve just pushed several updates to Github that most profoundly includes support for audits. Other smaller changes are also included, including plugin updates (HAML) and upgrading Rails to 2.0.4. As always, these updates have been running in production for a couple of hours already [...]]]></description>
			<content:encoded><![CDATA[<p>Just as a quick update on the <a href="/powerdns-on-rails/">PowerDNS on Rails</a> project, I&#8217;ve just pushed several updates to Github that most profoundly includes <a href="http://github.com/kennethkalmer/powerdns-on-rails/commit/7066b3c9ff68158ec2d139050e2feaf1aa2eaa2b">support for audits</a>. Other smaller changes are also included, including plugin updates (HAML) and upgrading Rails to 2.0.4. As always, these updates have been running in production for a couple of hours already and has solicited some review from our support staff. Undoubtably there will be a lot of tweaks to the feature in the coming days&#8230;</p>
<p>Next on the radar is authentication tokens, allowing to give users one-time access to a specific domain for performing updates.</p>
<p>We&#8217;ll keep you posted!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/09/25/powerdns-on-rails-now-sports-basic-audits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>acts_as_audited gains parent record tracking</title>
		<link>http://www.opensourcery.co.za/2008/09/24/acts_as_audited-gains-parent-record-tracking/</link>
		<comments>http://www.opensourcery.co.za/2008/09/24/acts_as_audited-gains-parent-record-tracking/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 10:10:28 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[audits]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[powerdns]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=83</guid>
		<description><![CDATA[As part of our current line of improvements on PowerDNS on Rails, we needed to start auditing changes made through the interface to the DNS data. This is a logical step to opening the system up for more API based interaction, and implementing neat features like macros and temporary authentication tokens.
Auditing in Rails is not [...]]]></description>
			<content:encoded><![CDATA[<p>As part of our current line of improvements on <a href="/powerdns-on-rails/">PowerDNS on Rails</a>, we needed to start auditing changes made through the interface to the DNS data. This is a logical step to opening the system up for more API based interaction, and implementing neat features like macros and temporary authentication tokens.</p>
<p>Auditing in Rails is not for the faint hearted. The Rails Recipes book has an example on how to do this with sweepers, and using the new <a href="http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects">ActiveRecord dirty object tracking</a> can help ease the problem too. So after some investigation I found the brilliant <a href="http://opensoul.org/2006/7/21/acts_as_audited">acts_as_audited</a> plugin by Brendon Keepers.</p>
<p>After playing with it, I realised one short coming. This is very much a problem specifically for PowerDNS on Rails, but after some thought I realized it could be applied to other auditing challenges as well.</p>
<p><strong>Enter parent record tracki<a href="http://github.com/kennethkalmer/acts_as_audited">ng</a></strong></p>
<p><a href="http://github.com/kennethkalmer/acts_as_audited">I forked</a> the <a href="http://github.com/collectiveidea/acts_as_audited">original project</a> on github, and started hacking. Not too long after I came up with this:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> Author <span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
  has_many <span style="color:#ff3333; font-weight:bold;">:books</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">class</span> Book <span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
  belongs_to <span style="color:#ff3333; font-weight:bold;">:author</span>
  acts_as_audited <span style="color:#ff3333; font-weight:bold;">:parent</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#ff3333; font-weight:bold;">:author</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Using the sweepers is also possible, like this:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> Application <span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#6666ff; font-weight:bold;">ApplicationController::Base</span>
  audit Author, Book, <span style="color:#ff3333; font-weight:bold;">:parents</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#123;</span> Book= <span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#ff3333; font-weight:bold;">:author</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>As contrived as it can be, it allows us to track all the changes to books by a specific author. In the DNS world this allows us to easily access all changes made to the records of a particular domain, and it becomes very valuable. It becomes even more valuable when you need to start tracking deleted records.</p>
<p>Pull requests were sent to the network, hopefully they get accepted and I can remove my repo again.</p>
<p><strong>Looking forward?</strong></p>
<p>This was a relatively small step forward for the plugin, but opens a lot of possiblities for the host applications, like PowerDNS on Rails. In any ISP environment audits are extremely important, especially when clients start gaining limited access to the backend systems&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/09/24/acts_as_audited-gains-parent-record-tracking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MySQL Replication Client with SSL, gotcha</title>
		<link>http://www.opensourcery.co.za/2008/09/08/mysql-replication-client-with-ssl-gotcha/</link>
		<comments>http://www.opensourcery.co.za/2008/09/08/mysql-replication-client-with-ssl-gotcha/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 11:50:36 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[Bind DLZ on Rails]]></category>
		<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[powerdns]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=80</guid>
		<description><![CDATA[As part of the PowerDNS on Rails project, and improving our own DNS infrastructure, I sat out today to configure 4 new DNS servers around the world. This will move a lot of our DNS traffic out of South Africa, while keeping some servers locally on the main networks (Internet Solutions &#38; SAIX).
I rolled out [...]]]></description>
			<content:encoded><![CDATA[<p>As part of the PowerDNS on Rails project, and improving our own DNS infrastructure, I sat out today to configure 4 new DNS servers around the world. This will move a lot of our DNS traffic out of South Africa, while keeping some servers locally on the main networks (Internet Solutions &amp; SAIX).</p>
<p>I rolled out MySQL replication with SSL enabled, you can Google for some good howto&#8217;s on the topic and I&#8217;ll give some posts below. Basically we have secure replication, and each DNS server is isolated in case of a disaster.</p>
<p><strong>The gotcha then?</strong></p>
<p>The MySQL docs, and some other howto&#8217;s indicate you should set the SSL client certificate details in your <em>my.cnf</em> file, under the <em>[client]</em> section. It makes sense, the slave is a client of the master. Appears not so with Gentoo&#8217;s mysql-5.0.60-r1 ebuild. It appears even less so with PowerDNS, who rightfully reads the <em>my.cnf</em> file as client.</p>
<p><strong>Cause and effect</strong></p>
<p>PowerDNS now tries to connect to the slave using the SSL details specified in the <em>[client]</em> section of the <em>my.cnf</em> file. This breaks, since you probably never configured your MySQL slave to have PowerDNS connect via SSL.</p>
<p>Secondly, it appears MySQL blatantly ignores the settings when used with replication, and you actually need to specify the client certificates in the <em>CHANGE MASTER TO</em> statement.</p>
<p><strong>Aftermath</strong></p>
<p>Nothing serious, was quick to piece together what was going on. Now I&#8217;ll have double digit DNS servers scattered around the globe near pearing point, with SSL encryption for the replication data. Brilliant, that really is resillient DNS!</p>
<p><strong>More reading</strong></p>
<ul>
<li>MySQL Manual &#8211; <a href="http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html" target="_blank">Using SSL for secure connections</a></li>
<li>MySQL Manual &#8211; <a href="http://dev.mysql.com/doc/refman/5.0/en/replication-solutions-ssl.html" target="_blank">Setting up replication using SSL</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/be-your-own-ca/" target="_blank">Be your own CA</a> &#8211; Not MySQL specific</li>
<li><a href="http://boilinglinux.blogspot.com/2008/05/mysql-replication-with-ssl.html" target="_self">MySQL Replication with SSL<br />
</a></li>
<li><a href="http://www.option-c.com/xwiki/MySQL_Replication_with_SSL" target="_blank">MySQL Replication with SSL</a></li>
</ul>
<p>Hope this prevents any future missery for someone else.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/09/08/mysql-replication-client-with-ssl-gotcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerDNS on Rails, the saga continues</title>
		<link>http://www.opensourcery.co.za/2008/07/27/powerdns-on-rails-the-saga-continues/</link>
		<comments>http://www.opensourcery.co.za/2008/07/27/powerdns-on-rails-the-saga-continues/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 19:53:46 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[powerdns]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=64</guid>
		<description><![CDATA[After a misrable production implementation of BIND on a MySQL backend, we were forced to re-evaluate our use of PowerDNS, and what happens to the BIND DLZ on Rails project.
I&#8217;m glad to announce that PowerDNS on Rails will be taking over where BIND DLZ on Rails left off.
It&#8217;s been a crazy three days of refactoring, [...]]]></description>
			<content:encoded><![CDATA[<p>After a misrable production implementation of BIND on a MySQL backend, we were forced to re-evaluate our use of PowerDNS, and what happens to the <a href="/bind-dlz-on-rails/">BIND DLZ on Rails</a> project.</p>
<p>I&#8217;m glad to announce that <a href="/powerdns-on-rails/">PowerDNS on Rails</a> will be taking over where BIND DLZ on Rails left off.</p>
<p>It&#8217;s been a crazy three days of refactoring, but the code is now fully operational and we have our first production implementation (complete with clients using the REST interface). It&#8217;s an exciting time for the project, over the next couple of weeks I&#8217;ll be ironing out some grey areas of PowerDNS with its users and I&#8217;ll be improving the UI significantly (as well as sneaking in new features).</p>
<p>This time I&#8217;ll hold back on promises of release candidates, instead I&#8217;ll just tag them and announce them afterwards.</p>
<p>I&#8217;ll also be posting some interesting Rails tips, especially since I had to bend ActiveRecord in ways I didn&#8217;t thought possible to cope with the PowerDNS schema. Thanks to everyone who made RSpec, without it this refactoring job would have been a disaster from the word go.</p>
<p>Here is to the future!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/07/27/powerdns-on-rails-the-saga-continues/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BIND DLZ on Rails RC1 tagged and iced</title>
		<link>http://www.opensourcery.co.za/2008/07/27/bind-dlz-on-rails-rc1-tagged-and-iced/</link>
		<comments>http://www.opensourcery.co.za/2008/07/27/bind-dlz-on-rails-rc1-tagged-and-iced/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 11:27:42 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[Bind DLZ on Rails]]></category>
		<category><![CDATA[PowerDNS on Rails]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[dlz]]></category>
		<category><![CDATA[powerdns]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=60</guid>
		<description><![CDATA[It is with great excitement, and sadness that I announce the tag of BIND DLZ on Rails RC1.
We were very motivated as a team to get this product, and the accompanying infrastructure in place so would could continue to enhance and expand our DNS infrastructure. We made two fatal mistakes in trying to achieve this [...]]]></description>
			<content:encoded><![CDATA[<p>It is with great excitement, and sadness that I announce the tag of <a href="/bind-dlz-on-rails/">BIND DLZ on Rails RC1</a>.</p>
<p>We were very motivated as a team to get this product, and the accompanying infrastructure in place so would could continue to enhance and expand our DNS infrastructure. We made two fatal mistakes in trying to achieve this goal:</p>
<p><strong>Understand your existing infrastructure</strong></p>
<p>We used the easy way out and blamed PowerDNS for some of our DNS does, where it ended up being out woes with TUPA, not PowerDNS. Typical I guess, since everyone else uses BIND, we&#8217;ll use BIND as well. We never went out to fully understand the problems not the solutions. We just decided to blindly drop an entire stack of services for a new one. Thats bad.</p>
<p><strong>Understand your new infrastructure</strong></p>
<p>Same goes for this. We checked out the BIND-DLZ patches, heard it was accepted into BIND itsef, and got excited. We could run everyone&#8217;s dream DNS server with a flexible MySQL 5 backend. Boy, what a mistake. We should have evaluated BIND DLZ first, before building an entire UI for it and then only testing it.</p>
<p>The whole of last week was spent trying to get BIND to behave. It would random crash without warning. I <a href="http://article.gmane.org/gmane.network.dns.bind9.dlz/1952" target="_blank">discussed this with the bind-dlz-testers list</a> over at SourceForge, who argued I should downgrade the MySQL client libraries to MySQL 4. For us this was easily possible since the MySQL slaves and DNS servers were different boxes, for others this might not be the case. As part of this excercise I had to learn how to update Gentoo ebuild&#8217;s, so I could <a href="http://bugs.gentoo.org/show_bug.cgi?id=180720" target="_blank">submit a fix to Gentoo as well for their net-dns/bind-9.5.1-p1 ebuild</a>.</p>
<p>Who&#8217;s to blame? Well, us. Not BIND, or the guys who developed the DLZ patches. There are plenty reports out there of issues with the MySQL client libs, but some very clever people have found <a href="http://www.ripe.net/ripe/meetings/ripe-55/presentations/forsberg-bind-dlz-experience.pdf" target="_blank">ingenious ways of working around it</a>. I personally think we have an odd combination of Hardened Gentoo &amp; BIND issues.</p>
<p><strong>What happens next?</strong></p>
<p>Well, we&#8217;ll be sticking to PowerDNS for the time being, or maybe permanently. We&#8217;ll be planning our DNS offerings out in full, and then start to see how PowerDNS can accomodate us. If, and only if, it cannot, we&#8217;ll dive into the alternatives.</p>
<p>All the work is not lost, I&#8217;ve basically made a copy (not a fork) of the git repo and modified the entire application to run on the PowerDNS schema. So keep an eye out for <a href="/powerdns-on-rails/">PowerDNS on Rails</a>.</p>
<p>I won&#8217;t try to juggle branches, the differences are too big. However, I&#8217;ll be porting changes implemented in PowerDNS on Rails back to BIND DLZ on Rails. My hope is that someone picks up BIND DLZ on Rails and runs with it further.</p>
<p>Thanks to everyone for their interest in the project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/07/27/bind-dlz-on-rails-rc1-tagged-and-iced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
