<?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>Local Loop &#187; dns</title>
	<atom:link href="http://localloop.co.za/tag/dns/feed/" rel="self" type="application/rss+xml" />
	<link>http://localloop.co.za</link>
	<description>Internet and Networking in South Africa</description>
	<lastBuildDate>Sat, 09 Jul 2011 00:48:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Counting our co.za blessings</title>
		<link>http://localloop.co.za/2009/09/counting-our-coza-blessings/</link>
		<comments>http://localloop.co.za/2009/09/counting-our-coza-blessings/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 07:12:13 +0000</pubDate>
		<dc:creator>Simeon Miteff</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[.co.za]]></category>
		<category><![CDATA[.com]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[IS Labs]]></category>
		<category><![CDATA[joker.com]]></category>
		<category><![CDATA[registrar]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[uniforum]]></category>

		<guid isPermaLink="false">http://localloop.co.za/?p=266</guid>
		<description><![CDATA[Last week Thursday I registered a .COM domain with joker.com, a smaller registrar that I&#8217;ve been using for a few years. They accepted my credit card payment and I immediately configured a blogger.com hosted blog to use this domain. After three hours the delegation for the domain suddenly disappeared from the .COM zone, effectively taking [...]]]></description>
			<content:encoded><![CDATA[<p>Last week Thursday I registered a <code>.COM</code> domain with joker.com, a smaller registrar that I&#8217;ve been using for a few years. They accepted my credit card payment and I immediately configured a blogger.com hosted blog to use this domain. After three hours the delegation for the domain suddenly disappeared from the .COM zone, effectively taking down the blog. Joker.com&#8217;s web interface showed no error indication of any sort, so I logged a support request using their web form.</p>
<p>I got no response from joker.com, and they don&#8217;t list a telephone number. They took my money and ignored me. This pissed me off, but not as much as the fact that the domain name could not be transferred to another registrar for 60 days, making it useless to me. At this point I was furiously planning my complaint to ICANN. Then, about 27 hours after I logged the support request, my domain re-appeared and I got no explanation as to why they rolled back the registration to start with.</p>
<p>This reminded me of a fight about two months ago on the <a href="http://lists.internet.org.za/mailman/listinfo">IOZ mailing list</a> about Uniforum&#8217;s overly strict requirements on name servers during the registration process&#8230; something about checking rDNS for the zone name servers, a problem you should almost never have.</p>
<p>Even IS Labs has it&#8217;s own little corner for Uniforum hate. The <a href="http://www.islabs.co.za/ideas/drag-uniforum-registration-process-century">most popular idea</a> (according to IS Labs&#8217; ranking) is to <i>&#8220;Drag uniforum registration process into this century&#8221;</i>.</p>
<blockquote><p>A critic is a legless man who teaches running.<br />
<em>&#8211; Channing Pollock</em></p></blockquote>
<p>I have personally also been guilty of criticizing Uniforum behind their backs, but I think the web-services enabled DNS nirvana that some people have in mind (especially one where there is a separation between registry and registrar) is badly overrated. Here is a list of reasons why, I&#8217;ve concluded, we should count our blessings when it comes to the <code>CO.ZA</code> domain:</p>
<ul>
<li>Uniforum&#8217;s integrated registry/registrar model simplifies support, and their prices aren&#8217;t high enough to warrant introducing registrar competition. In fact, inserting middlemen is likely to increase costs.</li>
<li>Using human-readable plain text messages between applications is good practice according to time-tested UNIX philosophy. Your XML-serialized RPC over HTTP (&#8220;web service&#8221;) is great, until it breaks and you have to debug it.</li>
<li>I actually prefer paying an invoice manually once a year over having some opaque payment processing system fumble with my credit card details. It&#8217;s more effort, but it places you (the customer) in control.</li>
<li>Uniforum&#8217;s engineers are <em>possibly</em> somewhat stubborn (from what I can tell, based on IOZ posts), but, their system works if you meet their requirements. I can respect that.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://localloop.co.za/2009/09/counting-our-coza-blessings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making BIND zone files readable</title>
		<link>http://localloop.co.za/2008/09/making-bind-zone-files-readable/</link>
		<comments>http://localloop.co.za/2008/09/making-bind-zone-files-readable/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 09:11:50 +0000</pubDate>
		<dc:creator>Simeon Miteff</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://localloop.co.za/?p=76</guid>
		<description><![CDATA[The zone configuration format for BIND has a number of short-cuts that make writing DNS zone files easy, but also make them hard to read. Here is an example: $TTL 3D @ SOA server1.example.com. hostmaster.example.com. (1 8H 2H 4W 1D) NS server1 NS server2 MX 10 server1 MX 20 server2 server1 A 127.0.0.1 server2 A [...]]]></description>
			<content:encoded><![CDATA[<p>The zone configuration format for <a href="http://www.isc.org/sw/bind/">BIND</a> has a number of short-cuts that make writing DNS zone files easy, but also make them hard to read. Here is an example:<br />
<code><br />
$TTL 3D<br />
@   SOA server1.example.com. hostmaster.example.com. (1 8H 2H 4W 1D)<br />
    NS  server1<br />
    NS  server2<br />
    MX 10   server1<br />
    MX 20   server2<br />
server1  A   127.0.0.1<br />
server2  A   127.0.0.2<br />
www     CNAME   server1<br />
</code></p>
<p><a href="http://www.python.org">Python</a> to the rescue. The <a href="http://www.dnspython.com">dnspython</a> module has support for parsing BIND zones, and rendering them without the shortcuts:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># bindnorm.py - &quot;normalise&quot; a bind zone file by expanding relative names.</span>
<span style="color: #808080; font-style: italic;"># Simeon Miteff &lt;simeon@localloop.co.za&gt;</span>
<span style="color: #808080; font-style: italic;"># Tue Sep 23 10:03:35 SAST 2008</span>
<span style="color: #ff7700;font-weight:bold;">import</span> dns.<span style="color: black;">zone</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">&lt;</span><span style="color: #ff4500;">2</span>:
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">stderr</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Usage: %s [zone fqdn]<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">stderr</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Example: %s example.com &lt; db.example.com &gt; norm.db.example.com<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
&nbsp;
zone = dns.<span style="color: black;">zone</span>.<span style="color: black;">from_text</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">stdin</span>.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>, <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>, relativize=<span style="color: #008000;">False</span>, check_origin=<span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
zone.<span style="color: black;">to_file</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span>, relativize=<span style="color: #008000;">False</span><span style="color: black;">&#41;</span></pre></div></div>

<p>To use it, you&#8217;ll need to install <code>dnspython</code> first. Fortunately, on Debian or Ubuntu, it&#8217;s just an <code>apt-get install python-dnspython</code> away. Running this little script with the example zone above as input yields:<br />
<code><br />
example.com. 259200 IN SOA server1.example.com. hostmaster.example.com. 1 28800 7200 2419200 86400<br />
example.com. 259200 IN NS server1.example.com.<br />
example.com. 259200 IN NS server2.example.com.<br />
example.com. 259200 IN MX 10 server1.example.com.<br />
example.com. 259200 IN MX 20 server2.example.com.<br />
server1.example.com. 259200 IN A 127.0.0.1<br />
server2.example.com. 259200 IN A 127.0.0.2<br />
www.example.com. 259200 IN CNAME server1.example.com.<br />
</code></p>
<p>This format is less canonical, but at least each line is context-free. Now you can proceed to <code>grep</code> the output to your heart&#8217;s desire :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://localloop.co.za/2008/09/making-bind-zone-files-readable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

