<?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>Computer Support &#187; Networking</title>
	<atom:link href="http://www.xiitec.com/blog/category/system-administration/unix/networking-unix-system-administration-references/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xiitec.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 30 Dec 2009 08:40:28 +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>Running a Private BIND DNS Server</title>
		<link>http://www.xiitec.com/blog/2008/02/12/running-a-private-bind-dns-server/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/running-a-private-bind-dns-server/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 05:39:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[BIND]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[private]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=123</guid>
		<description><![CDATA[You&#8217;re tired of dinking around with /etc/hosts;  you&#8217;re ready to implement some grown-up name resolution on your LAN by  installing a BIND DNS server. You only want this server to be available  to your local users, providing both name-resolution and caching  services. It will not provide any public services.

Set up a [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re tired of dinking around with <em>/etc/hosts</em>;  you&#8217;re ready to implement some grown-up name resolution on your LAN by  installing a BIND DNS server. You only want this server to be available  to your local users, providing both name-resolution and caching  services. It will not provide any public services.</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>Set up a <a href="http://www.xiitec.com/blog/?p=122" mce_href="http://www.xiitec.com/blog/?p=122" target="_blank">caching name server</a>.  Then add zone blocks to <em>named.conf</em>to  define the new zones for your LAN hosts, and construct the zone files.</p>
<p>Table 1 lists the five hosts on <em>windbag.net</em>.</p>
<table rules="all" width="100%" border="1" cellpadding="4" cellspacing="0">
<thead>
	</thead>
<tr>
<th scope="col">
<p>Address</p>
</th>
<th scope="col">
<p>Hostname</p>
</th>
<th scope="col">
<p>Role</p>
</th>
<th scope="col">
<p>Alias</p>
</th>
<td>
<p>10.11.12.1</p>
</td>
<td>
<p>parsley</p>
</td>
<td>
<p>DNS, mail</p>
</td>
<td> </td>
</tr>
<tr>
<td>
<p>10.11.12.2</p>
</td>
<td>
<p>sage</p>
</td>
<td>
<p>FTP</p>
</td>
<td>
<p>ftp</p>
</td>
</tr>
<tr>
<td>
<p>10.11.12.3</p>
</td>
<td>
<p>rosemary</p>
</td>
<td>
<p>Web server</p>
</td>
<td>
<p>www</p>
</td>
</tr>
<tr>
<td>
<p>10.11.12.4</p>
</td>
<td>
<p>thyme</p>
</td>
<td>
<p>Workstation</p>
</td>
<td> </td>
</tr>
<tr>
<td>
<p>10.11.12.5</p>
</td>
<td>
<p>cilantro</p>
</td>
<td>
<p>Workstation</p>
</td>
<td> </td>
</tr>
<tr>
<td></thead>
</td>
</tr>
</table>
<p>Add these zone blocks to <em>named.conf</em>:</p>
<pre>zone &quot;windbag.net&quot; IN {

  type master;

  file &quot;zone.net.windbag&quot;;

};

zone &quot;12.11.10.in-addr.arpa&quot; {

  type master;

  file &quot;revp.10.11.12&quot;;

};</pre>
<p>Here is the actual zone file for <em>windbag.net</em>:</p>
<pre>// zone.net.windbag

// dns zone for for windbag.net

;

$ORIGIN windbag.net.

$TTL 1D

; any time you make a change to the domain, bump the

; &quot;serial&quot; setting below. the format is easy:

; YYYYMMDDI, with the I being an iterator in case you

; make more than one change during any one day

@     IN SOA   parsley hostmaster (

                        200405191 ; serial

                        8H        ; refresh

                        4H        ; retry

                        4W        ; expire

                        1D )      ; minimum

; parsley.windbag.net serves this domain as both the

; name server (NS) and mail exchange (MX)

                NS      parsley

                MX      10 parsley

; define domain functions with CNAMEs

ftp             CNAME   sage

www             CNAME   rosemary

; just in case someone asks for localhost.windbag.net

localhost       A       127.0.0.1

; our hostnames, in alphabetical order

rosemary            A       10.11.12.3

sage                A       10.11.12.2

parsley             A       10.11.12.1

thyme               A       10.11.12.4

cilantro            A       10.11.12.5</pre>
<p>And finally, here are the reverse lookups for the domain in the <em>revp.10.11.12</em> file:</p>
<pre>; revp.10.11.12

; reverse pointers for 10.11.12.0 subnet

;

$ORIGIN 12.11.10.in-addr.arpa.

$TTL 1D

@     IN SOA  parsley.windbag.net. hostmaster.windbag.net. (

              200405190  ; serial

              28800      ; refresh (8 hours)

              14400      ; retry (4 hours)

              2419200    ; expire (4 weeks)

              86400      ; minimum (1 day)

              )

; define the authoritative name server

              NS      parsley.windbag.net.

; our hosts, in numeric order

1             PTR     parsley.windbag.net.

2             PTR     sage.windbag.net.

3             PTR     rosemary.windbag.net.

4             PTR     thyme.windbag.net.

5             PTR     cilantro.windbag.net.</pre>
<p>Save your changes and restart BIND:</p>
<pre># /etc/init.d/named restart</pre>
<p>And there you are—a shiny new fully functioning DNS server for  your LAN.</p>
<p>&nbsp;</p>
<p>There&#8217;s a whole lot happening in these three files.  First of all, putting each zone into its own file is good organization.  You may dump everything into a single zone file if you like, but you&#8217;ll  find that it&#8217;s difficult to maintain.</p>
<p>In <em>named.conf</em>, the entries for <em>windbag.net</em> tell  BIND that it is the authoritative server for <em>windbag.net</em>, and where to  find the zone files.</p>
<p>The <em>$origin</em> directive is a nice timesaver. It lets you  write:</p>
<pre>$ORIGIN windbag.net.

www           CNAME   rosemary</pre>
<p>instead of:</p>
<pre>www.windbag.net    CNAME     rosemary.windbag.net</pre>
<p><em>$TTL 1D</em> sets a  default time-to-live value. Values can be in this format:</p>
<dl>
<dt>w </dt>
<dd>
<p>For week</p>
</dd>
<dt>d </dt>
<dd>
<p>For day</p>
</dd>
<dt>h </dt>
<dd>
<p>For hour</p>
</dd>
<dt>m </dt>
<dd>
<p>For minute</p>
</dd>
<dt>s </dt>
<dd>
<p>For second</p>
</dd>
</dl>
<p>Individual entries may have their own TTL values:</p>
<pre>rosemary      72h    A       10.11.12.3</pre>
<p>The TTL tells visitors how often to refresh their  own caches. If your site is fairly static, set this to a higher value.  If you&#8217;re making frequent changes, use a lower value. The lower the  TTL, the more hits there will be on your server.</p>
<p><em>@ IN SOA parsley hostmaster</em> means:</p>
<p>&nbsp;</p>
<dl>
<dt><em>@</em> </dt>
<dd>
<p>This holds the same value as $ORIGIN.</p>
</dd>
<dt><em>IN</em> </dt>
<dd>
<p>This defines the address class; IN = Internet.</p>
</dd>
<dt><em>SOA</em> </dt>
<dd>
<p>Start of Authority; the  beginning of a zone file. Only A records can be used as the MNAME—don&#8217;t use  CNAMEs.</p>
</dd>
</dl>
<p>The SOA has 10 fields. These are the primary domain name, zone  class, and SOA, plus the following:</p>
<dl>
<dt><em>MNAME</em> </dt>
<dd>
<p>The master name server for the zone.</p>
</dd>
<dt><em>RNAME</em> </dt>
<dd>
<p>The email address of the domain admin.</p>
</dd>
<dt><em>Serial number</em> </dt>
<dd>
<p>BIND converts zone files into a binary file format.  When you make changes to the zone file, you must also change the serial  number, or BIND will not recognize the changes.</p>
</dd>
<dt><em>Refresh</em> </dt>
<dd>
<p>This tells your slave, or secondary servers how often to check  for updates.</p>
</dd>
<dt><em>Retry</em> </dt>
<dd>
<p>If the master DNS server for the zone fails to  answer a slave server&#8217;s request for an update, this tells the secondary  server how often it should resend the request.</p>
</dd>
<dt><em>Expire</em> </dt>
<dd>
<p>If the master DNS server fails for a longer period  of time, this tells the the secondary server how to continue to use its  existing data. After the expire time has passed, the data is considered  stale and will not be used, at which time the domain will no longer  resolve. Hopefully your master server will be back online before this  happens.</p>
</dd>
<dt><em>Minimum, or Negative-caching TTL</em> </dt>
<dd>
<p>Negative answers (such as when a requested record  does not exist) should also be cached on nonauthoritative servers.  Setting this value prevents your server from getting hammered by a  bunch of repeated requests in a short time. A common use for this is  when you are migrating to a new name server at a different IP address;  setting a short value on the old server a few days before you take it  offline assures that your change will propagate quickly.</p>
</dd>
</dl>
<p>The next section contains <em>resource records</em> (RRs).</p>
<p><em>NS parsley</em> and <em>MX 10 parsley</em> define  your name server and mail server. If you have more than one mail server  for the domain, the number sets the priority. Lower numbers are higher  priority. Because <em>$ORIGIN windbag.net.</em> defines the domain name for the whole record, these  expand to <em>ns.windbag.net</em> and <em>mx.windbag.net</em>.  Make note of the trailing dot—this is very important! That defines the  qualified domain name. If you leave it off, BIND will think it needs to  append the domain name, so you&#8217;ll have silliness like <em>ns.windbag.net.windbag.net.</em></p>
<p>CNAME (canonical name) is an alias to an A record.  Thus, a single A record can have several aliases. You can use a CNAME  to add subdomains for virtual web or mail hosting—for example, <em>programmers.only.domain.com</em> or <em>webmail.domain.com.</em></p>
<p>Instead of using CNAMES, you may assign subdomains  their own A records. This means one less hit on your server per CNAME  request, but it also means more work when you need to make changes.  Endless debates rage over the use of CNAMEs; use what suits you.</p>
<p>&quot;Canonical&quot; is one of those weirdo geek words that  defies a precise, logical definition. In this context, &quot;canonical name&quot;  means &quot;an alias assigned to the true (canonical) name of the server.&quot;</p>
<p>And finally, we come to the A (alias) records. An A  record is the primary address for each of your hosts, the direct match  of hostname to IP address.</p>
<p>Reverse pointers (RPTs) are technically not  required, but in the real world so many servers require them that you  had better use them.</p>
<p>If things are not working right, chances are it&#8217;s a  syntax error or a typo—mind your dots and commas especially. There are  two syntax checkers for BIND to help you.</p>
<p>The other common error is not starting from A  records. Every host must first have an A record. Then you can assign  name servers, mail servers, and CNAMEs.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/running-a-private-bind-dns-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running a Local Caching Name Server with BIND</title>
		<link>http://www.xiitec.com/blog/2008/02/12/running-a-local-caching-name-server-with-bind/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/running-a-local-caching-name-server-with-bind/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 05:35:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[BIND]]></category>
		<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=122</guid>
		<description><![CDATA[You want  to set up a local BIND caching name server for your LAN to speed up DNS  lookups, which in turn will speed up all of your Internet services.

&#160;
Install BIND on a Linux machine with a static IP  address. Be sure you get the latest version. Don&#8217;t mess with older  [...]]]></description>
			<content:encoded><![CDATA[<p>You want  to set up a local BIND caching name server for your LAN to speed up DNS  lookups, which in turn will speed up all of your Internet services.</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>&nbsp;</p>
<p>Install BIND on a Linux machine with a static IP  address. Be sure you get the latest version. Don&#8217;t mess with older  versions, as they are buggy and exploitable. After installation, you&#8217;ll  have four configuration files to edit or create:</p>
<ul>
<li><em>named.conf</em></li>
<li><em>named.root</em></li>
<li><em>zone.localhost</em></li>
<li><em>revp.127.0.0</em></li>
</ul>
<p>Al of these files are in <em>/var/named, </em>except for <em>/etc/named.conf.</em> <em>named.conf</em>is  the standard name for BIND&#8217;s configuration file; all the others you can name to  suit yourself. Here is a sample <em>named.conf</em>:</p>
<pre>//BIND configuration file

//named.conf for caching server

options {

// where all zone files are

  directory &quot;/var/named&quot;;

// accept queries only from local subnet

  listen-on {

           127.0.0.1;

           10.11.12.1;

    };

  allow-recursion {

           127.0.0.0/8;

           10.11.12.0/24;

    };

};

zone &quot;.&quot; IN {

     type hint;

     file &quot;named.root&quot;;

};

// location of the zone file for localhost

zone &quot;localhost&quot; IN {

  type master;

  file &quot;zone.localhost&quot;;

  allow-update { none; };

};

// reverse pointer file for localhost

zone &quot;0.0.127.in-addr.arpa&quot; IN {

  type master;

  file &quot;revp.127.0.0&quot;;

  allow-update { none; };

};</pre>
<p>Now add <em>named.root.</em>This is the master list of the root name  servers; simply fetch the current version from <a href="ftp://ftp.internic.net/domain/named.root" mce_href="ftp://ftp.internic.net/domain/named.root" target="_blank">ftp://ftp.internic.net/domain/named.root</a>, and put it in <em>/var/named</em>.</p>
<p>Now create <em>zone.localhost</em>:</p>
<pre>; zone.localhost

; loopback/localhost zone file

;

$TTL 1D

$ORIGIN localhost.

@              IN  SOA   @  root (

                         1   ; Serial

                         8H  ; Refresh

                         15M ; Retry

                         1W  ; Expire

                         1D) ; Minimum TTL

               IN   NS   @

               IN   A    127.0.0.1</pre>
<p>Finally, create <em>revp.127.0.0</em>:</p>
<pre>; revp.127.0.0

; reverse pointers for localhost

;

$TTL 1D

$ORIGIN 0.0.127.in-addr.arpa.

@    IN   SOA  localhost. root.localhost. (

               1    ; serial

               8H   ; refresh

               15M  ; retry

               1W   ; expire

               1D ) ; minimum

     IN   NS   localhost.

1    IN   PTR  localhost.</pre>
<p>Then start up BIND:</p>
<pre># /etc/init.d/named start</pre>
<p>You now have a local caching name server. See <a href="http://www.xiitec.com/blog/?p=117" mce_href="http://www.xiitec.com/blog/?p=117" target="_blank">this </a>to learn how to connect client PCs to your caching server.</p>
<p>&nbsp;</p>
<p><em>named</em> is short  for &quot;name daemon.&quot;</p>
<p>BIND configuration files can grow and multiply like  weeds, so using a naming convention like the one shown here will save  your sanity. Zone files each start with &quot;zone,&quot; and reverse pointer  files start with &quot;revp.&quot; You may call them anything you want, as long  as you use a consistent naming scheme.</p>
<p>You can use each one of these sample files exactly as they are  shown. The only change you might need to make is the <em>listen-on</em> directive  in <em>named.conf</em>—be sure to use your own network IP addresses. Leave <em>localhost</em> exactly as it is shown, unless you&#8217;re using some exotic networking  voodoo, in which case you already know what to do. Do not allow traffic  from outside your network! There is no reason for you to supply caching  services to the world.</p>
<p>The <em>named.root </em>filedoes not change  very often. Check it every few months just for kicks. You may call it  anything you like, as long as you record the filename in <em>named.conf</em>.</p>
<p><em>zone.localhost </em>tells <em>named</em> that the address of  localhost is 127.0.0.1.</p>
<p><em>revp.127.0.0</em> does the opposite of <em>zone.localhost</em>—it tells <em>named</em> that the hostname associated with  the IP address 127.0.0.1 is localhost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/running-a-local-caching-name-server-with-bind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchronizing with a Second tinydns Server</title>
		<link>http://www.xiitec.com/blog/2008/02/12/synchronizing-with-a-second-tinydns-server/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/synchronizing-with-a-second-tinydns-server/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 05:23:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=121</guid>
		<description><![CDATA[You have a second tinydns server offsite, as a backup. How do you keep it synchronized with  your main tindydns server?

&#160;
Plain old rsync-over-ssh does the job just fine.  This simple script copies your DNS data file to the backup, then runs make on the remote data file:
rsync -e ssh -az /etc/tinydns/root/data $backup-host:/etc/tinydns/root/data

ssh $backup-host [...]]]></description>
			<content:encoded><![CDATA[<p>You have a second <em>tinydns</em> server offsite, as a backup. How do you keep it synchronized with  your main <em>tindydns</em> server?</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>&nbsp;</p>
<p>Plain old <em>rsync</em>-over-<em>ssh </em>does the job just fine.  This simple script copies your DNS <em>data</em> file to the backup, then runs <em>make </em>on the remote <em>data</em> file:</p>
<pre>rsync -e ssh -az /etc/tinydns/root/data $backup-host:/etc/tinydns/root/data

ssh $backup-host &quot;cd /etc/tinydns/root; make&quot;</pre>
<p>Replace <em>$backup-host</em> with the name or IP address of the  remote server.</p>
<p>You can automate the entire process by adding these lines to <em>/etc/tinydns/root/Makefile</em>, so that when you run the <em>make</em> command  on your primary server after updating <em>/etc/tinydns/root/data</em>, the backup  will automatically be updated as well:</p>
<pre>data.cdb: data

       /usr/local/bin/tinydns-data

       rsync -e ssh -az /etc/tinydns/root/data $backup-host:/etc/tinydns/root/data

       ssh $backup-host &quot;cd /etc/tinydns/root; make&quot;</pre>
<p>&nbsp;</p>
<p>Moving plain old text files doesn&#8217;t require a lot of  sophistication; <em>rsync</em> is a fine tool for the job. You may schedule  regular updates via <em>cron, </em>or add transport security and authentication  with encrypted <em>ssh</em> keys.</p>
<p>Your backup server can also function as your  secondary DNS server. You can configure client PCs to use it, or  register it just like your main DNS server for a <a href="http://www.xiitec.com/blog/?p=113" mce_href="http://www.xiitec.com/blog/?p=113" target="_blank">public authoritative DNS server</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/synchronizing-with-a-second-tinydns-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling Simple Load Balancing with tinydns</title>
		<link>http://www.xiitec.com/blog/2008/02/12/enabling-simple-load-balancing-with-tinydns/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/enabling-simple-load-balancing-with-tinydns/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 05:18:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[load balancing]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=120</guid>
		<description><![CDATA[You  have redundant mail, FTP, or web servers, and you would like to  configure them to automatically divide up the traffic load. For  example, say you have a heavily trafficked web site that uses three  separate redundant Apache servers. How do you make traffic  automatically go to the least busy [...]]]></description>
			<content:encoded><![CDATA[<p>You  have redundant mail, FTP, or web servers, and you would like to  configure them to automatically divide up the traffic load. For  example, say you have a heavily trafficked web site that uses three  separate redundant Apache servers. How do you make traffic  automatically go to the least busy server?</p>
<p>DNS round-robin, or load  balancing, is simple to implement. Just list all of your servers in <em>/etc/tinydns/root/data</em>:</p>
<pre>+www.pixels.net:208.201.239.37:86400

+www.pixels.net:208.201.239.38:86400

+www.pixels.net:208.201.239.39:86400

@mail.pixels.net:208.201.239.37:a::86400

@mail.pixels.net:208.201.239.37:b::86400</pre>
<p><em>tinydns</em> returns a set of up to eight random  addresses for any single request. If any single server becomes  unavailable, the client attempting to connect to the server will go on  to the next one in line.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/enabling-simple-load-balancing-with-tinydns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Private tinydns Server</title>
		<link>http://www.xiitec.com/blog/2008/02/12/building-a-private-tinydns-server/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/building-a-private-tinydns-server/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 05:15:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=119</guid>
		<description><![CDATA[You&#8217;ve outgrown hosts files, so you want to use a DNS server for your LAN only. You won&#8217;t  be providing any public services. How do you do this with tinydns?

Set up a dnscache server for your LAN. Set up a tinydns server,  and enter your internal hosts in /etc/tinydns/root/data. 
Using the pixels.net domain [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve outgrown <em>hosts</em> files, so you want to use a DNS server for your LAN only. You won&#8217;t  be providing any public services. How do you do this with <em>tinydns</em>?</p>
<p><span id="more-119"></span></p>
<p>Set up a <a href="http://www.xiitec.com/blog/?p=116" target="_blank"><em>dnscache</em> server</a> for your LAN. Set up a <a href="http://www.xiitec.com/blog/?p=118" target="_blank"><em>tinydns</em> </a>server,  and enter your internal hosts in <em>/etc/tinydns/root/data. </em></p>
<p>Using the <em>pixels.net </em>domain to illustrate, the next step  is to tell your local <em>dnscache</em> to query your local, private <em>tinydns</em> server for your domain information. Create these files using the  IP address of your private <em>tinydns</em> server:</p>
<pre># echo 192.168.1.100 &gt; /service/dnscache/root/servers/pixels.net# echo 192.168.1.100 &gt; /service/dnscache/root/servers/0.168.192.in-addr.arpa</pre>
<p>The <em>dnscache</em> user should own these files:</p>
<pre># chown dnscache: /service/dnscache/root/servers/pixels.net# chown dnscache: /service/dnscache/root/servers/0.168.192.in-addr.arpa</pre>
<p>Next, restart <em>dnscache</em>:</p>
<pre># svc -t /service/dnscache</pre>
<p><em>dnscache</em> will now consult the local <em>tinydns</em> server for local addresses, and it will consult the <em>/service/dnscache/root/servers/@</em> file for external addresses.</p>
<p>You can easily do this for multiple domains; just add more  domain files to /<em>service/dnscache/root/servers/.</em></p>
<p>You have to have officially registered domain names  for this to work, even if you are not running any public services. If  you want the ability to invent whatever domain names you want for your  LAN, see <a href="http://www.xiitec.com/blog/?p=111" target="_blank">this</a><a href="http://www.xiitec.com/blog/?p=111" target="_blank">.</a></p>
<p>Remember that <em>dnscache</em> and <em>tinydns</em> should be on separate machines. Always separate the caching/resolving  server from the authoritative server. If you must put them on the same  machine, give them separate IP addresses. <em>tinydns</em> can have 127.0.0.1, and <em>dnscache</em> can take the network IP address.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/building-a-private-tinydns-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Public DNS Server with tinydns</title>
		<link>http://www.xiitec.com/blog/2008/02/12/building-a-public-dns-server-with-tinydns/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/building-a-public-dns-server-with-tinydns/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 05:11:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=118</guid>
		<description><![CDATA[You&#8217;ve set up some servers (mail, web, FTP)  that need to be accessible to the outside world. They need domain names, like www.oreilly.com,  since you don&#8217;t want people using IP addresses. You want to run your  own DNS server to provide those names. You tried BIND, and it was just  too [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve set up some servers (mail, web, FTP)  that need to be accessible to the outside world. They need domain names, like <em>www.oreilly.com</em>,  since you don&#8217;t want people using IP addresses. You want to run your  own DNS server to provide those names. You tried BIND, and it was just  too complicated. Or you heard some scary talk about BIND security  problems. Whatever the reason, you&#8217;ve decided to use <em>djbdns</em>. So how do you make it go?</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>First, follow the preparatory steps in to <a href="http://www.xiitec.com/blog/?p=113" mce_href="http://www.xiitec.com/blog/?p=113" target="_blank">run a public DNS server</a>.  Then follow these steps to install and set up <em>tinydns, </em>which is the  authoritative DNS server component of <em>djbdns</em>. If you are also running <em>dnscache</em>, it must not have the same IP address as <em>tinydns</em>. This is  a very important security measure. Both <em>dnscache</em> and <em>tinydns</em> will  fail silently if you do it anyway.</p>
<p>Follow <a href="http://www.xiitec.com/blog/?p=114" mce_href="http://www.xiitec.com/blog/?p=114" target="_blank">these steps</a> in   for <em>djbdns</em> installation. Then, create two system users, using any names you  like. They will own the tinydns server, and the  dnslog:</p>
<pre># useradd -d /dev/null -s /bin/false tinydns

# useradd -d /dev/null -s /bin/false dnslog</pre>
<p>Run <em>tinydns-conf</em> to create directories and set the IP  address of the <em>tinydns</em> server. List your system users in the order shown  here:</p>
<p># tinydns-conf tinydns dnslog /etc/tinydns 208.201.239.36</p>
<p>Create a startup entry in <em>service</em>:</p>
<p># ln -s /etc/tinydns /service</p>
<p>Wait a few seconds, then run <em>svstat</em> to verify that it  started:</p>
<p># svstat /service/tinydns  /service/tinydns: up (pid 6811) 14 seconds</p>
<p>If <em>tinydns</em> won&#8217;t stay up continuously, check the logfile  in <em>/etc/tinydns/log/main/current. </em>That will tell you where the problem  is.</p>
<p>Now it&#8217;s time to create your host entries. This shows  how to create entries using the scripts that come with <em>tinydns</em>. In this  example the domain name is <em>pixels.net, </em>which is duly registered with a  domain name registrar.</p>
<pre></pre>
<table rules="all" width="100%" border="1" cellpadding="4" cellspacing="0">
<thead>
	</thead>
<tr>
<th scope="col">
<p>Address</p>
</th>
<th scope="col">
<p>Hostname</p>
</th>
<th scope="col">
<p>Role</p>
</th>
<th scope="col">
<p>Alias</p>
</th>
<td>
<p>208.201.239.36</p>
</td>
<td>
<p>parsley</p>
</td>
<td>
<p>DNS, mail</p>
</td>
<td> </td>
</tr>
<tr>
<td>
<p>208.201.239.37</p>
</td>
<td>
<p>sage</p>
</td>
<td>
<p>FTP</p>
</td>
<td>
<p>ftp</p>
</td>
</tr>
<tr>
<td>
<p>208.201.239.38</p>
</td>
<td>
<p>rosemary</p>
</td>
<td>
<p>Web server</p>
</td>
<td>
<p>www</p>
</td>
</tr>
<tr>
<td></thead>
</td>
</tr>
</table>
<p> </p>
<p>Create the host entries as follows:</p>
<pre># cd /service/tinydns/root

# ./add-ns pixels.net 208.201.239.36

# ./add-ns .239.201.208.in-addr.arpa 208.201.239.36

# ./add-host parsley.pixels.net 208.201.239.36

# ./add-host sage.pixels.net 208.201.239.37

# ./add-host rosemary.pixels.net 208.201.239.38

# ./add-alias ftp.pixels.net 208.201.239.37

# ./add-alias www.pixels.net 208.201.239.38

# make</pre>
<p>That&#8217;s all it takes to build a <em>tinydns</em> server.</p>
<p>The previous commands inserted data into <em>/etc/tinydns/root/data</em>; here&#8217;s what it looks like:</p>
<pre>.pixels.net:208.201.239.36:a:259200

.239.201.208.in-addr.arpa:208.201.239.36:a:259200

=parsley.pixels.net:208.201.239.36:86400

=sage.pixels.net:208.201.239.37:86400

=rosemary.pixels.net:208.201.239.38:86400

+ftp.pixels.net:208.201.239.37:86400

+www.pixels.net:208.201.239.38:86400</pre>
<p>You typically configure djbdns  by running configuration scripts, not by editing the <em>data</em> file by hand.  Here are the available configuration scripts:</p>
<dl>
<dt><em>add-host</em> </dt>
<dd>
<p>Creates both an A (alias) record and a PTR (reverse  pointer)</p>
</dd>
<dt><em>add-mx</em> </dt>
<dd>
<p>Adds a mail server</p>
</dd>
<dt><em>add-ns</em> </dt>
<dd>
<p>Adds a name server</p>
</dd>
<dt><em>add-alias</em> </dt>
<dd>
<p>Creates an A record but not a matching PTR</p>
</dd>
<dt><em>add-childns</em> </dt>
<dd>
<p>Adds a child name server—use this when you want to act like an  ISP and host other name servers</p>
</dd>
</dl>
<p>Here is a list of the leading symbols used by <em>tinydns</em>:</p>
<dl>
<dt><em>. (leading dot)</em> </dt>
<dd>
<p>Name server</p>
</dd>
<dt><em>=</em> </dt>
<dd>
<p>Both pointer (PTR) and A record</p>
</dd>
<dt><em>+</em> </dt>
<dd>
<p>A record</p>
</dd>
<dt><em>&amp;</em> </dt>
<dd>
<p>NS and A records</p>
</dd>
<dt><em>@</em> </dt>
<dd>
<p>MX and A records</p>
</dd>
</dl>
<p>As you can see, <em>tinydns</em> thoughtfully  calculates the time-to-live (TTL) values for you. The TTL tells caching  servers, in seconds, how often they should come back to refresh their  information. <em>tinydns</em> will continue to adjust these automatically; don&#8217;t worry about tweaking them  manually.</p>
<p>You can edit the djbdns <em>data</em> file manually, if you want. You can add comments, change the order of  the entries, whatever you like. The scripts are for convenience, and to  ensure that each entry is in the correct format. Just remember to run <em>make</em> every time you make a change, to convert the file to <em>/etc/tinydns/root/data.cdb.</em></p>
<p>The clear separation of functions is one of the strengths of <em>djbdns</em>. You do not want your caching server anywhere near your  authoritative DNS server. In other words, the IP addresses listed in <em>/etc/resolv.conf </em>should  never match any IP addresses listed in NS records. If your caching  server is compromised and is running on the same IP address as your DNS  server, the attacker could misdirect all of your traffic, including  &quot;secure&quot; web applications.</p>
<p> </p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/building-a-public-dns-server-with-tinydns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring Linux and Windows Clients to Use Your Caching DNS Server</title>
		<link>http://www.xiitec.com/blog/2008/02/12/configuring-linux-and-windows-clients-to-use-your-caching-dns-server/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/configuring-linux-and-windows-clients-to-use-your-caching-dns-server/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 04:59:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=117</guid>
		<description><![CDATA[Your caching server is ready to go to  work—how you do tell your Linux and Windows clients how to find it?
If your clients are served by DHCP, you need to edit your DHCP  configuration file to point to your new name server.

Linux hosts with static IP addresses that are not served by  [...]]]></description>
			<content:encoded><![CDATA[<p>Your caching server is ready to go to  work—how you do tell your Linux and Windows clients how to find it?</p>
<p>If your clients are served by DHCP, you need to edit your DHCP  configuration file to point to your new name server.</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>Linux hosts with static IP addresses that are not served by  DHCP configure their name servers in <em>/etc/resolv.conf</em>. In this example,  your name server is at 192.168.1.200, so all you do is edit <em>/etc/resolv.conf</em>:</p>
<pre>nameserver 192.168.1.200</pre>
<p>The resolver queries the entries in order, so make  this the first one if you have others. Typically, your ISP will list a  primary and a secondary name server in your account information, so you  can list these next:</p>
<pre>nameserver 192.168.1.200

nameserver 12.188.166.2

nameserver 12.188.166.3</pre>
<p>On Windows hosts with static IP addresses, find the  menu for configuring Internet Protocol (TCP/IP) properties. In Windows  95/98/ME, go to Control Panel -&gt; Network -&gt; TCP/IP -&gt;  Properties. Go to the DNS Configuration tab, and there you are.</p>
<p>In Windows NT/2000/XP, go to Control Panel -&gt;  Network Connections. Right-click Local Area Connection, then select  Internet Protocol (TCP/IP) -&gt; Properties.</p>
<p>That&#8217;s  pretty much all you have to do; a DNS cache is low-maintenance. You may  enter up to three name servers on client machines.</p>
<p>Make sure you do not give the entire Internet access  to your caching server! This is a big security hole; plus, there&#8217;s no  reason for you to provide caching for the masses.</p>
<p>Windows 2000/XP comes with its own built-in DNS  cache. You didn&#8217;t know it was there, did you. You can view the contents  of the cache with this command:</p>
<pre>C:\&gt; ipconfig /displaydns</pre>
<p>To flush the cache, use:</p>
<pre>C:\&gt; ipconfig /flushdns</pre>
<p>Flushing the cache is a quick way to get rid of stale data,  such as when you change a server&#8217;s IP address.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/configuring-linux-and-windows-clients-to-use-your-caching-dns-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running a Local Caching Name Server with djbdns</title>
		<link>http://www.xiitec.com/blog/2008/02/12/running-a-local-caching-name-server-with-djbdns/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/running-a-local-caching-name-server-with-djbdns/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 04:57:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=116</guid>
		<description><![CDATA[You want to set up a  local djbdns caching name server just to serve your LAN. This will speed up DNS  lookups, which in turn will speed up web surfing, email, and all  Internet services.

The caching component of djbdns is dnscache.  First, prepare your system by installing daemontools, uspci-tcp,  and [...]]]></description>
			<content:encoded><![CDATA[<p>You want to set up a  local <em>djbdns</em> caching name server just to serve your LAN. This will speed up DNS  lookups, which in turn will speed up web surfing, email, and all  Internet services.</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>The caching component of <em>djbdns</em> is <em>dnscache</em>.  First, prepare your system by installing <em>daemontools,</em> <em>uspci-tcp</em>,  and <em>djbdns</em></p>
<p>After installing everything, run a <em>dnsip</em> query to confirm that <em>djbdns</em> installed correctly:</p>
<pre>$ dnsip www.oreillynet.com

208.201.239.37 208.201.239.36</pre>
<p>Now create two system users to own <em>dnscache</em> and <em>dnslog</em>. Call them anything you want. In this example, they are simply  &quot;dnscache&quot; and &quot;dnslog&quot;:</p>
<pre># useradd -d /dev/null -s /bin/false dnscache

# useradd -d /dev/null -s /bin/false dnslog</pre>
<p>Then configure the IP address and service directory for <em>dnscache. </em>This also assigns the appropriate file ownerships:</p>
<pre># dnscache-conf dnscache dnslog /etc/dnscache 192.168.1.5</pre>
<p>Create your &quot;allow&quot; list; this example permits your local  subnet to use your <em>dnscache</em>:</p>
<pre># touch /etc/dnscache/root/ip/192.168.1</pre>
<p>Now start it up:</p>
<pre># ln -s /etc/dnscache /service</pre>
<p>To verify that it&#8217;s running, use <em>svstat</em>:</p>
<pre># svstat /service/dnscache

/service/dnscache: up (pid 6776) 30 seconds</pre>
<p>To verify that it&#8217;s working, run <em>dnsqr </em>to query the  local cache:</p>
<pre># env DNSCACHEIP=192.168.1.5 dnsqr a www.yahoo.com

1 www.yahoo.com:

193 bytes, 1+9+0+0 records, response, noerror

query: 1 www.yahoo.com

answer: www.yahoo.com 286 CNAME www.yahoo.akadns.net

answer: www.yahoo.akadns.net 60 A 66.94.230.52

answer: www.yahoo.akadns.net 60 A 66.94.230.48</pre>
<p>Configure clients to point to your <em>dnscache</em> server,  and you&#8217;re finished.</p>
<p>&nbsp;</p>
<p>A caching  server, or caching DNS resolver, does two things: it answers DNS  requests by getting the information from other servers, and then it  stores the results so that it can answer future requests for the same  information directly. The cache lives only in memory, so restarting the  cache&#8217;s process or rebooting wipes it all out.</p>
<p>A caching  server and an authoritative DNS server should always be strictly  separated. This means the IP address of your caching server should  never match any IP addresses listed in NS records. A few bad things can  happen when you put them together:</p>
<ul>
<li>If an attacker seizes control of your DNS cache, the attacker can  control not only your incoming DNS data, but also your outgoing DNS  data—which means he can hijack your web sites, email, FTP, and any  &quot;secure&quot; web-based applications.</li>
<li>If your DNS cache suffers a Distributed Denial of Service (DDoS)  attack, your authoritative server will also be pummeled, and you will  have no DNS service.</li>
</ul>
<p>RFC 2010 also advises keeping caching servers separate from  authoritative servers:</p>
<blockquote>
<p>Recursion is a major source of cache pollution, and  can be a major drain on name server performance. An organization&#8217;s  recursive DNS needs should be served by some other host than its root  name server(s).</p>
</blockquote>
<p>With BIND, you cannot separate the two. But you can with <em>djbdns</em>.</p>
<p>When you&#8217;re testing <em>dnscache</em>, and making changes and  generally futzing around, sometimes you&#8217;ll find it won&#8217;t stay up:</p>
<pre># svstat /service/dnscache

/service/dnscache: up (pid 6776) 1 seconds

# svstat /service/dnscache

/service/dnscache: up (pid 6781) 0 seconds</pre>
<p>You probably have too many instances of it running. Try  this:</p>
<pre># netstat -nap | grep &quot;:53&quot;

tcp  0  0 127.0.0.1:53    0.0.0.0:*    LISTEN     6327/dnscache

tcp  0  0 192.168.1.5:53  0.0.0.0:*    LISTEN     6129/dnscache

udp  0  0 127.0.0.1:53    0.0.0.0:*               6327/dnscache

udp  0  0 192.168.1.5:53  0.0.0.0:*               6129/dnscache</pre>
<p>Yep, that&#8217;s too many. You should have two instances only:  listening on TCP port 53 and UDP port 53. Do a <em>killall supervise  dnscache</em>, give it a few seconds, then try again:</p>
<pre># svstat /service/dnscache

/service/dnscache: up (pid 6776) 21 seconds

# netstat -nap | grep &quot;:53&quot;

tcp  0  0 192.168.1.5:53   0.0.0.0:*   LISTEN     6776/dnscache

udp  0  0 192.168.1.5:53   0.0.0.0:*              6776/dnscache</pre>
<p>That&#8217;s what you want to see.</p>
<p>Another common problem is having an old BIND server still  running. There Can Be Only One.</p>
<p><em>djbdns</em> comes with a number of network querying and  diagnostic utilities: <em>dnsqr</em>, <em>dnstrace, dnsip, tinydns-get, dnsipq,  dnsmx</em>, and <em>dnsname</em>. See the links below to learn more about them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/running-a-local-caching-name-server-with-djbdns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving tinydns&#8217;s and dnscache&#8217;s Logfiles</title>
		<link>http://www.xiitec.com/blog/2008/02/12/moving-tinydnss-and-dnscaches-logfiles/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/moving-tinydnss-and-dnscaches-logfiles/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 04:55:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dnscache]]></category>
		<category><![CDATA[tinydns]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=115</guid>
		<description><![CDATA[By default, tinydns-conf and dnscache-conf put the logfiles in /etc/tinydns/log/main and /etc/dnscache/log/main, which are not  the usual places for logfiles. You would rather move them to /var/log,  where they belong.
To put the logfiles for tinydns in /var/log/tinydns, edit /etc/tinydns/log/run, as follows:
#!/bin/sh

exec setuidgid dnslog multilog t /var/log/tinydns
Do the same for dnscache,  editing /etc/dnscache/log/run, [...]]]></description>
			<content:encoded><![CDATA[<p>By default, <em>tinydns-conf</em> and <em>dnscache-conf</em> put the logfiles in <em>/etc/tinydns/log/main</em> and <em>/etc/dnscache/log/main</em>, which are not  the usual places for logfiles. You would rather move them to <em>/var/log</em>,  where they belong.</p>
<p>To put the logfiles for <em>tinydns</em> in <em>/var/log/tinydns</em>, edit <em>/etc/tinydns/log/run</em>, as follows:</p>
<pre>#!/bin/sh

exec setuidgid dnslog multilog t /var/log/tinydns</pre>
<p>Do the same for dnscache,  editing <em>/etc/dnscache/log/run</em>, as follows:</p>
<pre>#!/bin/sh

exec setuidgid dnslog multilog t /var/log/dnscache</pre>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/moving-tinydnss-and-dnscaches-logfiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing djbdns</title>
		<link>http://www.xiitec.com/blog/2008/02/12/installing-djbdns/</link>
		<comments>http://www.xiitec.com/blog/2008/02/12/installing-djbdns/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 04:50:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[djbdns]]></category>

		<guid isPermaLink="false">http://www.xiitec.com/blog/?p=114</guid>
		<description><![CDATA[You need three source tarballs: daemontools, uscpi-tcp, and djbdns. Get these from the djbdns home page at http://cr.yp.to/djbdns.html.
After installation, you&#8217;re ready to start configuration.

To install daemontools, follow these steps:
# mkdir -m 1755 /package

# cd /package
Download and unpack the latest daemontools tarball into /package, as follows:
# tar xzvpf daemontools-0.76.tar.gz

# cd admin/daemontools-0.76
To compile and set up the [...]]]></description>
			<content:encoded><![CDATA[<p>You need three source tarballs: <em>daemontools</em>, <em>uscpi-tcp</em>, and <em>djbdns</em>. Get these from the <em>djbdns</em> home page at <a href="http://cr.yp.to/djbdns.html" mce_href="http://cr.yp.to/djbdns.html" target="_blank">http://cr.yp.to/djbdns.html</a>.</p>
<p>After installation, you&#8217;re ready to start configuration.</p>
<p><img src="http://www.xiitec.com/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." name="mce_plugin_wordpress_more" width="100%" height="10" id="mce_plugin_wordpress_more" title="More..." moretext="" /></p>
<p>To install <em>daemontools</em>, follow these steps:</p>
<pre># mkdir -m 1755 /package

# cd /package</pre>
<p>Download and unpack the latest <em>daemontools</em> tarball into <em>/package</em>, as follows:</p>
<pre># tar xzvpf daemontools-0.76.tar.gz

# cd admin/daemontools-0.76</pre>
<p>To compile and set up the <em>daemontools</em> programs, use:</p>
<pre># package/install</pre>
<p>Next, fetch the latest <em>uspci-tcp</em> tarball and install  it:</p>
<pre># cd /usr/sources

# tar xzvf ucspi-tcp-0.88.tar

# cd ucspi-tcp-0.88

# make

# make setup check</pre>
<p>It puts itself into <em>/usr/local/bin</em>.</p>
<p>Finally, fetch and install <em>djbdns</em>:</p>
<pre># tar xzvf djbdns-1.05.tar.gz

# cd  djbdns-1.05

# make

# make setup check</pre>
<p>It puts itself into <em>/usr/local/bin</em>.</p>
<p><em>daemontools</em> is a suite of utilities for managing  services. You&#8217;ll see <em>supervise, multilog,</em> and <em>svstat</em>. <em>supervise</em> automatically restarts services if they die  unexpectedly. <em>multilog</em> is a nice log manager that automatically rotates log data, so that logs  don&#8217;t consume your disk space and you always have fresh data. <em>svstat</em> tells you the status of a service.</p>
<p><em>uspci-tcp</em> takes the place of <em>inetd</em> and <em>xinetd</em>, for running <em>djbdns</em> and other Dan Bernstein programs. You  don&#8217;t have to do anything other than install it.</p>
<p><em>djbdns</em> is a suite of DNS programs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiitec.com/blog/2008/02/12/installing-djbdns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
