<?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>In search of perfection... &#187; PowerDNS</title>
	<atom:link href="http://agilefutures.com/index.php/tag/powerdns/feed/" rel="self" type="application/rss+xml" />
	<link>http://agilefutures.com</link>
	<description>Illegitimi Non Carborundum</description>
	<lastBuildDate>Sun, 23 Aug 2009 10:23:35 +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>PowerDNS on SuSE Linux &amp; SQL Server 2005 &#8211; Part 1</title>
		<link>http://agilefutures.com/index.php/2008/10/powerdns-on-suse-linux-sql-server-2005-part-1/</link>
		<comments>http://agilefutures.com/index.php/2008/10/powerdns-on-suse-linux-sql-server-2005-part-1/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 20:11:28 +0000</pubDate>
		<dc:creator>golum1900</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[PowerDNS]]></category>

		<guid isPermaLink="false">http://agilefutures.com/?p=25</guid>
		<description><![CDATA[I have been working on a scenario for one of our services and that&#8217;s our DNS back-end. It has to achieve the following criteria. A Fast and Reliable DNS Service SQL Server Database Back-end for management. (as we already run MS SQL as standard) Linux Based DNS Server (better supported, free &#38; reliable) VMware Virtual [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/t-sqltest.png"></a>I have been working on a scenario for one of our services and that&#8217;s our DNS back-end. It has to achieve the following criteria.</p>
<ul>
<li>A Fast and Reliable DNS Service</li>
<li>SQL Server Database Back-end for management. (as we already run MS SQL as standard)</li>
<li>Linux Based DNS Server (better supported, free &amp; reliable)</li>
<li>VMware Virtual Server</li>
</ul>
<p>So after a good look around we have decided on PowerDNS, SuSE Linux Enterprise 10.1 &amp; MS SQL Server 2005 as the DBMS.</p>
<p>Now this is where the fun starts. I&#8217;m no Linux expert but I can find my way around pretty well. Let me tell you, getting this to work was not easy, 3 long days of head scratching, disparate documentation and perseverance. This is probably the only HOWTO there is on doing this.</p>
<p>Assumptions.</p>
<ol>
<li>You already have SQL 2005 Installed and available on the network. </li>
<li>Your relativity competent in Windows / Linux administration. </li>
<li>You understand DNS concepts.</li>
</ol>
<p>Steps to install SuSE on VMware Workstation</p>
<ol>
<li>Create your virtual machine environment and start it up. In my case I have chosen VMware Workstation 5 with ESX Server 3 compatibility. 512MB of RAM and 4GB of disk space split into 2GB files.</li>
<li>Install SuSE Linux by mounting the ISO image on the virtual machines CDROM drive. I have chosen just to install the base server system but included the C++ compilation tools for building software.</li>
<li>Once SuSE is installed you need to install the VMware tools. Select this from the VM menu. Once installed run the command # /usr/bin/vmware-config-tools.pl this sets up the proper screen drivers and allows things like shared folders, copy &amp; paste between virtual machine and the host.</li>
</ol>
<p>Hit ctrl-backspace to restart the X windows system. You should now have a base Linux System running under VMware.</p>
<p>First let&#8217;s get all the files we need :-</p>
<p><strong>PowerDNS v2.9.22 (Authoritative Name Server)<br />
</strong><a href="http://download.opensuse.org/repositories/server:/dns/openSUSE_10.3/i586/pdns-2.9.22-1.1.i586.rpm">http://download.opensuse.org/repositories/server:/dns/openSUSE_10.3/i586/pdns-2.9.22-1.1.i586.rpm</a></p>
<p><strong>PowerDNS v2.9.x OpenDBX Backend (PDNS Database access via OpenDBX)<br />
</strong><a href="http://download.opensuse.org/repositories/server:/dns/openSUSE_10.3/i586/pdns-snapshot-backend-opendbx-2.9.x.r1107-3.3.i586.rpm">http://download.opensuse.org/repositories/server:/dns/openSUSE_10.3/i586/pdns-snapshot-backend-opendbx-2.9.x.r1107-3.3.i586.rpm</a><br />
<a href="http://software.opensuse.org/download/server:/dns/SUSE_Linux_10.1/i586/pdns-backend-opendbx-2.9.21-17.4.i586.rpm"></a></p>
<p><strong>OpenDBX Library (DBMS API)<br />
</strong><a href="http://linuxnetworks.de/opendbx/download/opendbx-1.2.3.tar.gz">http://linuxnetworks.de/opendbx/download/opendbx-1.2.3.tar.gz</a></p>
<p><strong>FreeTDS Library (allows communication from Linux to various DBMS including SQL Server</strong><br />
<a href="ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz">ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz</a></p>
<p><strong>MySQL header libraries as it is a dependency for PDNS.<br />
</strong><a href="http://download.opensuse.org/repositories/server:/database/openSUSE_10.3/i586/libmysqlclient15-5.0.67-20.1.i586.rpm">http://download.opensuse.org/repositories/server:/database/openSUSE_10.3/i586/libmysqlclient15-5.0.67-20.1.i586.rpm</a></p>
<p>Create a suitable directory on you Linux OS and copy the downloaded files to this directory. I have used <em><strong>/root/Documents/PDNS</strong></em>. The shared folders directory on the Linux guest is under <em><strong>/mnt/hgfs</strong></em>.</p>
<p>Once you have the files extract the tar&#8217;s for OpenDBX &amp; FreeTDS.</p>
<h2><strong>Installing FreeTDS and Connecting to MS SQL Server</strong></h2>
<p>The first item we need to install is FreeTDS, basically TDS stands for Tabular Data Stream and is the protocol that MS SQL Server uses to communicate with it&#8217;s clients. You can read more about it @ <a href="http://www.freetds.org/">http://www.freetds.org/</a></p>
<p>Open a terminal window up, change directory to where you extracted the FreeTDS software to.</p>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/freetdsinstall.png"><img class="alignnone size-full wp-image-28" title="freetdsinstall" src="http://agilefutures.com/wp-content/uploads/2008/10/freetdsinstall.png" alt="" width="425" height="220" /></a></p>
<p>Run the following commands to build and install it:-</p>
<p><strong><span style="color: #339966;">$ ./configure<br />
$ make<br />
$ make install</span></strong></p>
<p>Great, if you didn&#8217;t get any errors we can now configure the connection. Load up gedit and open <em><strong>/usr/local/etc/freetds.conf</strong></em> go the end of the file and add the following:-</p>
<p># My connection to SQL Server 2005 on PC12SQL2005D_1<br />
[MySQLServer2005]<br />
 host = pc21.outerin.uk-net<br />
 instance = SQL2005D_1<br />
; port = 1433<br />
 tds version = 8.0</p>
<p>Subsitute the host, instance or port for that of your SQL Server Instance. If you use instance then the port is auto-detected. Save the file and quit.</p>
<p>NOTE : Make sue you can resolve the remote SQL server and you can get a response. If you can&#8217;t make sure</p>
<p>a) <em><strong>etc/hosts</strong></em> file has an entry<br />
b) your DNS server is correct.<br />
c) any firewalls allow the SQL traffic through.</p>
<p>Lets test the connection by running the command tsql.</p>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/t-sqltest.png"><img class="alignnone size-medium wp-image-34" title="t-sqltest" src="http://agilefutures.com/wp-content/uploads/2008/10/t-sqltest-300x82.png" alt="" width="300" height="82" /></a></p>
<p> </p>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/t-sqltest.png"></a></p>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/t-sqltest.png"></a></p>
<p>Excellent we now have a connection to SQL Server.</p>
<h2>Set up the PowerDNS Database on MS SQL Server.</h2>
<p>Execute this script on SQL Server</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">USE</span> <span style="color: #808080;">&#91;</span>master<span style="color: #808080;">&#93;</span>
&nbsp;
GO
&nbsp;
<span style="color: #008080;">/****** Object:  Database [PowerDNS]    Script Date: 10/17/2008 12:15:22 ******/</span>
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">ON</span> <span style="color: #0000FF;">PRIMARY</span>
<span style="color: #808080;">&#40;</span> NAME <span style="color: #808080;">=</span> N<span style="color: #FF0000;">'PowerDNS_Data'</span>, FILENAME <span style="color: #808080;">=</span> N<span style="color: #FF0000;">'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAPowerDNS_Data.mdf'</span> , <span style="color: #0000FF;">SIZE</span> <span style="color: #808080;">=</span> 3072KB , MAXSIZE <span style="color: #808080;">=</span> UNLIMITED, FILEGROWTH <span style="color: #808080;">=</span> 1024KB <span style="color: #808080;">&#41;</span>
    <span style="color: #FF00FF;">LOG</span> <span style="color: #0000FF;">ON</span>
<span style="color: #808080;">&#40;</span> NAME <span style="color: #808080;">=</span> N<span style="color: #FF0000;">'PowerDNS_Log'</span>, FILENAME <span style="color: #808080;">=</span> N<span style="color: #FF0000;">'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAPowerDNS_Log.ldf'</span> , <span style="color: #0000FF;">SIZE</span> <span style="color: #808080;">=</span> 1024KB , MAXSIZE <span style="color: #808080;">=</span> 2048GB , FILEGROWTH <span style="color: #808080;">=</span> <span style="color: #000;">10</span><span style="color: #808080;">%</span><span style="color: #808080;">&#41;</span>
GO
<span style="color: #0000FF;">EXEC</span> dbo.<span style="color: #AF0000;">SP_DBCMPTLEVEL</span> @dbname <span style="color: #808080;">=</span> N<span style="color: #FF0000;">'PowerDNS'</span>, @new_cmptlevel <span style="color: #808080;">=</span> <span style="color: #000;">90</span>
GO
<span style="color: #0000FF;">IF</span> <span style="color: #808080;">&#40;</span> <span style="color: #000;">1</span> <span style="color: #808080;">=</span> <span style="color: #FF00FF;">FULLTEXTSERVICEPROPERTY</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'IsFullTextInstalled'</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#41;</span>
    <span style="color: #0000FF;">BEGIN</span>
        <span style="color: #0000FF;">EXEC</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span><span style="color: #AF0000;">SP_FULLTEXT_DATABASE</span><span style="color: #808080;">&#93;</span> @<span style="color: #0000FF;">ACTION</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">'disable'</span>
    <span style="color: #0000FF;">END</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> ANSI_<span style="color: #808080;">NULL</span>_DEFAULT <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> ANSI_<span style="color: #808080;">NULL</span>S <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> ANSI_WARN<span style="color: #808080;">IN</span>GS <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> ARITHAB<span style="color: #808080;">OR</span>T <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> AUTO_CLOSE <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> AUTO_CREATE_STATISTICS <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> AUTO_SHR<span style="color: #808080;">IN</span>K <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> AUTO_UPDATE_STATISTICS <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> CURS<span style="color: #808080;">OR</span>_CLOSE_ON_COMMIT <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> CURS<span style="color: #808080;">OR</span>_DEFAULT <span style="color: #0000FF;">GLOBAL</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> CONCAT_<span style="color: #808080;">NULL</span>_YIELDS_<span style="color: #808080;">NULL</span> <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> NUMERIC_ROUNDAB<span style="color: #808080;">OR</span>T <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> QUOTED_IDENTIFIER <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> RECURSIVE_TRIGGERS <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> ENABLE_BROKER
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> AUTO_UPDATE_STATISTICS_ASYNC <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> DATE_C<span style="color: #808080;">OR</span>RELATION_OPTIMIZATION <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> TRUSTW<span style="color: #808080;">OR</span>THY <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> <span style="color: #808080;">ALL</span>OW_SNAPSHOT_ISOLATION <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> PARAMETERIZATION SIMPLE
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> READ_WRITE
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> RECOVERY <span style="color: #0000FF;">FULL</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> MULTI_USER
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> PAGE_VERIFY <span style="color: #FF00FF;">CHECKSUM</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">DATABASE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">SET</span> DB_CHA<span style="color: #808080;">ININ</span>G <span style="color: #0000FF;">OFF</span>
GO
&nbsp;
<span style="color: #0000FF;">USE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span>
GO
<span style="color: #008080;">/****** Object:  Table [dbo].[domains]    Script Date: 10/17/2008 12:21:59 ******/</span>
<span style="color: #0000FF;">SET</span> ANSI_<span style="color: #808080;">NULL</span>S <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">SET</span> QUOTED_IDENTIFIER <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span>
    <span style="color: #808080;">&#40;</span>
      <span style="color: #808080;">&#91;</span>id<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">IDENTITY</span><span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>, <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>
                 <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>name<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">255</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>type<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">6</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>master<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">40</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>
                             <span style="color: #0000FF;">DEFAULT</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF0000;">''</span> <span style="color: #808080;">&#41;</span>,
      <span style="color: #808080;">&#91;</span>account<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">40</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>
                              <span style="color: #0000FF;">DEFAULT</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF0000;">''</span> <span style="color: #808080;">&#41;</span>,
      <span style="color: #808080;">&#91;</span>notified_serial<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>last_check<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>status<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">CHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">1</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>
                         <span style="color: #0000FF;">DEFAULT</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF0000;">'A'</span> <span style="color: #808080;">&#41;</span>,
      <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>pk_domains_id<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">PRIMARY</span> <span style="color: #0000FF;">KEY</span> <span style="color: #0000FF;">CLUSTERED</span> <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#91;</span>id<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">ASC</span> <span style="color: #808080;">&#41;</span>
        <span style="color: #0000FF;">WITH</span> <span style="color: #808080;">&#40;</span> PAD_<span style="color: #808080;">IN</span>DEX <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, STATISTICS_N<span style="color: #808080;">OR</span>ECOMPUTE <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>,
               IGN<span style="color: #808080;">OR</span>E_DUP_KEY <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, <span style="color: #808080;">ALL</span>OW_ROW_LOCKS <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span>,
               <span style="color: #808080;">ALL</span>OW_PAGE_LOCKS <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>,
      <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>unq_domains_name<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">UNIQUE</span> <span style="color: #0000FF;">NONCLUSTERED</span> <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#91;</span>name<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">ASC</span> <span style="color: #808080;">&#41;</span>
        <span style="color: #0000FF;">WITH</span> <span style="color: #808080;">&#40;</span> PAD_<span style="color: #808080;">IN</span>DEX <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, STATISTICS_N<span style="color: #808080;">OR</span>ECOMPUTE <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>,
               IGN<span style="color: #808080;">OR</span>E_DUP_KEY <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, <span style="color: #808080;">ALL</span>OW_ROW_LOCKS <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span>,
               <span style="color: #808080;">ALL</span>OW_PAGE_LOCKS <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
    <span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">ON</span>  <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
&nbsp;
GO
<span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #008080;">/****** Object:  Table [dbo].[records]    Script Date: 10/17/2008 12:21:59 ******/</span>
<span style="color: #0000FF;">SET</span> ANSI_<span style="color: #808080;">NULL</span>S <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">SET</span> QUOTED_IDENTIFIER <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span>
    <span style="color: #808080;">&#40;</span>
      <span style="color: #808080;">&#91;</span>id<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">IDENTITY</span><span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>, <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>
                 <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>domain_id<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>name<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">255</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>type<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">6</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>ttl<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>prio<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>content<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">255</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>change_date<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">INT</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>pk_records_id<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">PRIMARY</span> <span style="color: #0000FF;">KEY</span> <span style="color: #0000FF;">CLUSTERED</span> <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#91;</span>id<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">ASC</span> <span style="color: #808080;">&#41;</span>
        <span style="color: #0000FF;">WITH</span> <span style="color: #808080;">&#40;</span> PAD_<span style="color: #808080;">IN</span>DEX <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, STATISTICS_N<span style="color: #808080;">OR</span>ECOMPUTE <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>,
               IGN<span style="color: #808080;">OR</span>E_DUP_KEY <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, <span style="color: #808080;">ALL</span>OW_ROW_LOCKS <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span>,
               <span style="color: #808080;">ALL</span>OW_PAGE_LOCKS <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
    <span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">ON</span>  <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
&nbsp;
GO
<span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #008080;">/****** Object:  Table [dbo].[supermasters]    Script Date: 10/17/2008 12:21:59 ******/</span>
<span style="color: #0000FF;">SET</span> ANSI_<span style="color: #808080;">NULL</span>S <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">SET</span> QUOTED_IDENTIFIER <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">ON</span>
GO
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>supermasters<span style="color: #808080;">&#93;</span>
    <span style="color: #808080;">&#40;</span>
      <span style="color: #808080;">&#91;</span>ip<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">40</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>nameserver<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">255</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
      <span style="color: #808080;">&#91;</span>account<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">40</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>
                              <span style="color: #0000FF;">DEFAULT</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF0000;">''</span> <span style="color: #808080;">&#41;</span>
    <span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">ON</span>  <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
&nbsp;
GO
<span style="color: #0000FF;">SET</span> ANSI_PADD<span style="color: #808080;">IN</span>G <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span>
        <span style="color: #0000FF;">WITH</span> <span style="color: #0000FF;">CHECK</span>
<span style="color: #0000FF;">ADD</span> <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>fk_records_domainid<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">FOREIGN</span> <span style="color: #0000FF;">KEY</span> <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#91;</span>domain_id<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">REFERENCES</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#91;</span>id<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ON</span> <span style="color: #0000FF;">UPDATE</span> <span style="color: #0000FF;">CASCADE</span>
        <span style="color: #0000FF;">ON</span> <span style="color: #0000FF;">DELETE</span> <span style="color: #0000FF;">CASCADE</span>
GO
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span>
        <span style="color: #0000FF;">CHECK</span> <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>fk_records_domainid<span style="color: #808080;">&#93;</span>
&nbsp;
<span style="color: #0000FF;">USE</span> <span style="color: #808080;">&#91;</span>master<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">CREATE</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">WITH</span> PASSW<span style="color: #808080;">OR</span>D<span style="color: #808080;">=</span> N<span style="color: #FF0000;">'secret'</span>, DEFAULT_DATABASE<span style="color: #808080;">=</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span>, DEFAULT_LANGUAGE<span style="color: #808080;">=</span> <span style="color: #808080;">&#91;</span>us_english<span style="color: #808080;">&#93;</span>, CHECK_EXPIRATION<span style="color: #808080;">=</span>
    <span style="color: #0000FF;">OFF</span>, CHECK_POLICY<span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>
GO
<span style="color: #0000FF;">ALTER</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span> ENABLE
GO
<span style="color: #0000FF;">USE</span> <span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">CREATE</span>  <span style="color: #0000FF;">USER</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">FOR</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">DELETE</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">INSERT</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">REFERENCES</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">SELECT</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">UPDATE</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>domains<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">DELETE</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">INSERT</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">REFERENCES</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">SELECT</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">UPDATE</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>records<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">GRANT</span> <span style="color: #0000FF;">SELECT</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>supermasters<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">TO</span> <span style="color: #808080;">&#91;</span>powerdns<span style="color: #808080;">&#93;</span>
GO</pre></td></tr></table></div>

<h2><strong>Build and Install the OpenDBX Library</strong></h2>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/opendbx.png"><img class="alignnone size-medium wp-image-31" title="opendbx" src="http://agilefutures.com/wp-content/uploads/2008/10/opendbx-300x98.png" alt="" width="300" height="98" /></a></p>
<p>We need to build the OpenDBX library backend for SQL Server 2005 (for other backends please refer to <a href="http://www.linuxnetworks.de/doc/index.php/OpenDBX" target="_blank">http://www.linuxnetworks.de/doc/index.php/OpenDBX</a> for more info)</p>
<p>Change to the OpenDBX directory where you extracted the files and issue the command</p>
<p><strong><span style="color: #339966;">$ ./configure &#8211;with-backends=&#8221;mssql&#8221;<br />
$ make<br />
$ make install</span></strong></p>
<p>Once completed we need to install PowerDNS and the PowerDNS OpenDBX backend.</p>
<p><strong>Install the MySQL header libraries as it is a dependency for PDNS.</strong></p>
<p>Hit Install to install the package</p>
<p><strong>Install the pdns-2.9.21-17.4.i586.rpm package</strong></p>
<p>Hit Install to install the package.</p>
<p><strong>Install the OpenDBX backend</strong></p>
<p><a href="http://software.opensuse.org/download/server:/dns/SUSE_Linux_10.1/i586/pdns-backend-opendbx-2.9.21-17.4.i586.rpm" target="_blank"></a>This package will not install. Instead open it in &#8220;File Roller&#8221; and extract the contents to /usr/lib/pdns this is where they are looked for.</p>
<h2>Testing the PowerDNS installation</h2>
<p>Once installed test the PowerDNS installation by issuing the command:-</p>
<p><span style="color: #339966;"><strong>$ /etc/init.d/pdns monitor</strong></span></p>
<p>you should see an error message as below.</p>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/pdnsmonitor.png"><img class="alignnone size-medium wp-image-32" title="pdnsmonitor" src="http://agilefutures.com/wp-content/uploads/2008/10/pdnsmonitor-300x102.png" alt="" width="300" height="102" /></a><br />
This means we have successfully installed the PowerDNS server and we now need to configure it. Open the file <strong><em>/</em></strong><strong><em>etc/pdns/pdns.conf</em></strong> in gedit</p>
<p>Find the following section</p>
<p>#################################<br />
# launch Which backends to launch and order to query them in<br />
#<br />
# launch=</p>
<p>and change to:-</p>
<p>#################################<br />
# launch Which backends to launch and order to query them in<br />
#</p>
<p>launch=opendbx<br />
opendbx-backend=mssql<br />
opendbx-host-read=MySQLServer2005<br />
opendbx-host-write=MySQLServer2005<br />
opendbx-database=PowerDNS<br />
opendbx-username=powerdns<br />
opendbx-password=secret<br />
opendbx-sql-transactbegin=BEGIN TRANSACTION</p>
<p>NOTE: make sure there are no spaces next to the = sign. It won&#8217;t work </p>
<p>Try the command again:-</p>
<p><strong><span style="color: #339966;">$ /etc/init.d/pdns monitor</span></strong></p>
<p>Success we have a Database driven DNS system!!</p>
<p><a href="http://agilefutures.com/wp-content/uploads/2008/10/pdnsmonitorresults.png"><img class="alignnone size-medium wp-image-33" title="pdnsmonitorresults" src="http://agilefutures.com/wp-content/uploads/2008/10/pdnsmonitorresults-300x140.png" alt="" width="300" height="140" /></a></p>
<p>Testing the DNS</p>
<p>Enter the command</p>
<p><strong><span style="color: #339966;">$ host www.example.com 127.0.0.1</span></strong></p>
<p>The address will not be resolved as we haven&#8217;t any data in the database yet. Run the following SQL on the database (you can change the IP addresses and names to suit you own).</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">USE</span>
<span style="color: #808080;">&#91;</span>PowerDNS<span style="color: #808080;">&#93;</span>
GO
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> domains <span style="color: #808080;">&#40;</span>name, type<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'example.com'</span>, <span style="color: #FF0000;">'NATIVE'</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'example.com'</span>,<span style="color: #FF0000;">'localhost postmaster@example.com 1'</span>,<span style="color: #FF0000;">'SOA'</span>,<span style="color: #000;">86400</span>,<span style="color: #808080;">NULL</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'example.com'</span>,<span style="color: #FF0000;">'ns1.outerin.net'</span>,<span style="color: #FF0000;">'NS'</span>,<span style="color: #000;">86400</span>,<span style="color: #808080;">NULL</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'example.com'</span>,<span style="color: #FF0000;">'ns2.outerin.net'</span>,<span style="color: #FF0000;">'NS'</span>,<span style="color: #000;">86400</span>,<span style="color: #808080;">NULL</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'www.example.com'</span>,<span style="color: #FF0000;">'192.168.1.100'</span>,<span style="color: #FF0000;">'A'</span>,<span style="color: #000;">120</span>,<span style="color: #808080;">NULL</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'mail.example.com'</span>,<span style="color: #FF0000;">'192.168.1.252'</span>,<span style="color: #FF0000;">'A'</span>,<span style="color: #000;">120</span>,<span style="color: #808080;">NULL</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'localhost.example.com'</span>,<span style="color: #FF0000;">'127.0.0.1'</span>,<span style="color: #FF0000;">'A'</span>,<span style="color: #000;">120</span>,<span style="color: #808080;">NULL</span><span style="color: #808080;">&#41;</span>;
<span style="color: #0000FF;">INSERT</span>
<span style="color: #0000FF;">INTO</span> records <span style="color: #808080;">&#40;</span>domain_id, name, content, type,ttl,prio<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">VALUES</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #FF0000;">'example.com'</span>,<span style="color: #FF0000;">'mail.example.com'</span>,<span style="color: #FF0000;">'MX'</span>,<span style="color: #000;">120</span>,<span style="color: #000;">25</span><span style="color: #808080;">&#41;</span>;</pre></td></tr></table></div>

<p>Now try the command again. Your should see a returned record, success; we are getting result and our setup is working.</p>
<p>In the next part I&#8217;ll be increasing the security and getting the DNS to start up automatically. I&#8217;ll also be looking at the master/salve configuration and seeing how it ties together.</p>
<p>Thanks to Norbert @ Linux Networks for getting me over the last hurdle. Check out the following website for further information.</p>
<p><a href="http://www.linuxnetworks.de" target="_blank">http://www.linuxnetworks.de</a><br />
<a href="http://www.powerdns.com" target="_blank">http://www.powerdns.com</a><br />
<a href="http://www.freetds.org" target="_blank">http://www.freetds.org</a><br />
<a href="http://software.opensuse.org" target="_blank">http://software.opensuse.org</a><br />
<a href="http://download.opensuse.org/repositories">http://download.opensuse.org/repositories</a></p>
<p>Regards</p>
<p>Tobi</p>
]]></content:encoded>
			<wfw:commentRss>http://agilefutures.com/index.php/2008/10/powerdns-on-suse-linux-sql-server-2005-part-1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

