{"id":816,"date":"2012-05-04T20:45:02","date_gmt":"2012-05-05T04:45:02","guid":{"rendered":"http:\/\/blog.portnumber53.com\/?p=816"},"modified":"2012-05-04T20:45:02","modified_gmt":"2012-05-05T04:45:02","slug":"intranet-archlinux-setup-a-dnscache-for-your-network-using-djbdns","status":"publish","type":"post","link":"https:\/\/blog.portnumber53.com\/index.php\/2012\/05\/04\/intranet-archlinux-setup-a-dnscache-for-your-network-using-djbdns\/","title":{"rendered":"Intranet: [ArchLinux] Setup a DNSCACHE for your network using DJBDNS"},"content":{"rendered":"<p>This is a version of this post http:\/\/blog.portnumber53.com\/2012\/01\/15\/intranet-setup-a-dnscache-for-your-network-using-djbdns\/ for the ArchLinuxARM:<\/p>\n<p>&nbsp;<\/p>\n<p>Essentials:<\/p>\n<p># pacman -Syu fakeroot patch make gcc dnsutils<\/p>\n<p>&nbsp;<\/p>\n<p>Daemontools installation<\/p>\n<p>$ wget https:\/\/aur.archlinux.org\/packages\/da\/daemontools\/daemontools.tar.gz<\/p>\n<p>$ tar -xvzf daemontools.tar.gz<\/p>\n<p>$ cd daemontools<\/p>\n<p>$ nano PKGBUILD<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>arch=(&#39;arm&#39;)<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>$ makepkg<\/p>\n<p>$ sudo pacman -U daemontools-0.76-5-arm.pkg.tar.xz<\/p>\n<p>&nbsp;<\/p>\n<p>You shoould see this:<\/p>\n<p>loading packages&#8230;<br \/>\n\tresolving dependencies&#8230;<br \/>\n\tlooking for inter-conflicts&#8230;<\/p>\n<p>Targets (1): daemontools-0.76-5<\/p>\n<p>Total Installed Size:&nbsp;&nbsp; 0.30 MiB<\/p>\n<p>Proceed with installation? [Y\/n] y<br \/>\n\t(1\/1) checking package integrity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [######################################] 100%<br \/>\n\t(1\/1) loading package files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [######################################] 100%<br \/>\n\t(1\/1) checking for file conflicts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [######################################] 100%<br \/>\n\t(1\/1) installing daemontools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [######################################] 100%<br \/>\n\tAdding svscanboot to inittab&#8230;<br \/>\n\tinit should start svscan now.<br \/>\n\t[root@heart daemontools]#<\/p>\n<p>&nbsp;<\/p>\n<p>ucspi-tcp 0.88-3<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>UCSPI-TCP<\/p>\n<p>$ wget https:\/\/aur.archlinux.org\/packages\/uc\/ucspi-tcp\/ucspi-tcp.tar.gz<\/p>\n<p>$ tar -xvzf ucspi-tcp.tar.gz<\/p>\n<p>$ cd ucspi-tcp<\/p>\n<p>$ nano PKGBUILD<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>arch=(&#39;arm&#39;)<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>change line 36 to:<\/p>\n<p>install -m 755 -D $bin $pkgdir\/usr\/bin\/$bin<\/p>\n<p>(refer to the comments at <a href=\"https:\/\/aur.archlinux.org\/packages.php?ID=8330\" target=\"_blank\" rel=\"noopener\">https:\/\/aur.archlinux.org\/packages.php?ID=8330 <\/a>)<\/p>\n<p>&nbsp;<\/p>\n<p>$ sudo pacman -U ucspi-tcp-0.88-3-arm.pkg.tar.xz<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Now for the real thing:<\/p>\n<p>&nbsp;<\/p>\n<p>$ wget https:\/\/aur.archlinux.org\/packages\/dj\/djbdns-ipv4\/djbdns-ipv4.tar.gz<\/p>\n<p>$ tar -xvzf djbdns-ipv4.tar.gz<\/p>\n<p>$ cd djbdns-ipv4\/<\/p>\n<p>I built mine on my PogoPlug, so I needed to edit&nbsp; PKGBUILD and edited: arch=(&#39;arm&#39;)<\/p>\n<p>$ makepkg<\/p>\n<p>$ sudo pacman -U djbdns-ipv4-1.05-2-arm.pkg.tar.xz<\/p>\n<p>&nbsp;<\/p>\n<p>============<\/p>\n<p>&gt;&gt;&gt; Configure and run tinydns:<br \/>\n\t&nbsp;&nbsp;&nbsp; tinydns-conf _tinydns _dnslog \/service\/tinydns [IP]<br \/>\n\t&nbsp;&nbsp;&nbsp; ln -s \/service\/tinydns \/etc\/<\/p>\n<p>&gt;&gt;&gt; Configure and run dnscache as a recursive cache:<br \/>\n\t&nbsp;&nbsp;&nbsp; dnscache-conf _dnscache _dnslog \/service\/dnscache [IP]<br \/>\n\t&nbsp;&nbsp;&nbsp; ln -s \/service\/dnscache \/etc\/<\/p>\n<p>&gt;&gt;&gt; To change from recursive to forward-only:<br \/>\n\t&nbsp;&nbsp;&nbsp; echo 1 &gt; \/service\/dnscache\/env\/FORWARDONLY<br \/>\n\t&nbsp;&nbsp;&nbsp; echo IP_address_of_a_recursive_DNS server &gt; \/service\/dnscache\/root\/servers\/@<br \/>\n\t&nbsp;&nbsp;&nbsp; echo IP_address_of_another_recursive_DNS server &gt;&gt; \/service\/dnscache\/root\/servers\/@<\/p>\n<p>&gt;&gt;&gt; To add a local authoritative server to a recursive or forward-only setup:<br \/>\n\t&nbsp;&nbsp;&nbsp; echo IP_address_of_a_local_authoritative_server &gt; \/service\/dnscache\/root\/servers\/name.of.toplevel.domain<\/p>\n<p>If [IP] is omitted dnscache will run on localhost.<br \/>\n\tMore help can be found at http:\/\/cr.yp.to\/djbdns.html<\/p>\n<p>Read \/usr\/share\/djbdns\/README for more information about this package.<\/p>\n<p>=================<\/p>\n<p>&nbsp;<\/p>\n<p>Let&#39;s set up the dns cache on the box&#39;s IP (10.0.0.240 in the example)<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p># dnscache-conf _dnscache _dnslog \/etc\/dnscache 10.0.0.240<\/p>\n<p>Start it<\/p>\n<p># ln -s \/etc\/dnscache \/service\/<\/p>\n<p>ps ax should show something like:<\/p>\n<p>9438 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 supervise dnscache<br \/>\n\t&nbsp;9439 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 supervise log<br \/>\n\t&nbsp;9440 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 multilog t .\/main<br \/>\n\t&nbsp;9441 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 \/usr\/bin\/dnscache<br \/>\n\t&nbsp;<\/p>\n<p>Tell DNSCACHE to accept queries from your intranet:<\/p>\n<pre>touch \/etc\/dnscache\/root\/ip\/10<\/pre>\n<p>&nbsp;<\/p>\n<p>Let&#39;s tail its log:<\/p>\n<p># tail -f \/service\/dnscache\/log\/main\/current<\/p>\n<p>And test it, opening another terminal<\/p>\n<p># dnsip www.cnn.com<\/p>\n<p>As of this writing you should see:<\/p>\n<p>157.166.255.18 157.166.255.19 157.166.226.26 157.166.226.25<\/p>\n<p>and a bunch of log output<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a version of this post http:\/\/blog.portnumber53.com\/2012\/01\/15\/intranet-setup-a-dnscache-for-your-network-using-djbdns\/ for the ArchLinuxARM: &nbsp; Essentials: # pacman -Syu fakeroot patch make gcc dnsutils &nbsp; Daemontools installation $ wget https:\/\/aur.archlinux.org\/packages\/da\/daemontools\/daemontools.tar.gz $ tar -xvzf daemontools.tar.gz $ cd daemontools $ nano PKGBUILD &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; arch=(&#39;arm&#39;) &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; $ makepkg $ sudo pacman -U daemontools-0.76-5-arm.pkg.tar.xz &nbsp; You shoould&#8230; <a class=\"continue-reading-link\" href=\"https:\/\/blog.portnumber53.com\/index.php\/2012\/05\/04\/intranet-archlinux-setup-a-dnscache-for-your-network-using-djbdns\/\"> Continue reading <span class=\"meta-nav\">&rarr; <\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-816","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/posts\/816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/comments?post=816"}],"version-history":[{"count":0,"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/posts\/816\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/media?parent=816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/categories?post=816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.portnumber53.com\/index.php\/wp-json\/wp\/v2\/tags?post=816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}