Norton DNS

今日はDNSopsのMLに流れてきたログを自分で再実行してみます。


所で、DNSのキャッシュサーバと言うのは、最近流行りなのでしょうか?よく分かりません。
去年辺りGoogle Public DNSと言うのも話題になっていましたね。
ちょっとコマンドを覚えがてら、叩いてみます。

続きを読む

UnboundのJavaによるプロトタイプ実装をビルドする。

UnboundはJavaでプロトタイピングした後に、Cで書き直す等という凄いプロセスを経て実装されたリゾルバです。
きっととんでもなくハイパフォーマンスなのでしょう。僕としては少々悲しいですが。
プロトタイプを作る為の環境としてのJavaってそんなに使い易いとも思えないのですけども…。
いきなりCのコードをガツガツ読んだりすると、魂が燃え尽きたりする危険があるので、
使い慣れたJavaのコードをまずは読みます。

どうやらdnsjavaと言うプロダクトをどうこうして作った様です。
Unboundのプロトタイプが参照しているdnsjavaのバージョンは、2.0ですが、
本家では、2.0.8がリリースされています。

続きを読む

Unboundをビルドする。

NSDはコンテンツサーバですが、Unboundはリゾルバです。
つまり、NSD+UnboundでBINDと機能的には凡そ同じになります。
なので、Unboundもビルドします。
NSDとUnboundはリリースしている組織が同じなのできっと旨くやり取りしてくれる筈です。
余談ですがBINDに対してUnboundとは随分酷いネーミングセンスだなぁ…と思います。
Hibernateに対してSpringとかあるJava界隈も似たようなものかな…と思ったりしますが。


例によってSVNリポジトリが公開されているのでチェックアウトします。

svn co http://unbound.nlnetlabs.nl/svn/trunk/ unbound

こっちは、configureが、リポジトリにコミットされているので、とりあえず実行してみます。

cd unbound
./configure
make

特に問題なく終了しましたので、そのままmakeしました。


ビルドも正常終了した様です。

ls -l | grep rwx
drwxr-xr-x. 10 taichi taichi    4096 2010-08-04 17:39 build
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:34 compat
-rwxrwxr-x.  1 taichi taichi   44941 2010-08-04 17:35 config.guess
-rwxrwxr-x.  1 taichi taichi   57629 2010-08-04 17:36 config.status
-rwxrwxr-x.  1 taichi taichi   34423 2010-08-04 17:35 config.sub
-rwxrwxr-x.  1 taichi taichi  541371 2010-08-04 17:35 configure
drwxrwxr-x.  4 taichi taichi    4096 2010-08-04 17:34 contrib
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:34 daemon
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:36 doc
-rwxrwxr-x.  1 taichi taichi   13663 2010-08-04 17:35 install-sh
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:34 iterator
drwxrwxr-x. 11 taichi taichi    4096 2010-08-04 17:39 ldns-src
-rwxrwxr-x.  1 taichi taichi  257778 2010-08-04 17:36 libtool
drwxrwxr-x.  4 taichi taichi    4096 2010-08-04 17:34 libunbound
-rwxrwxr-x.  1 taichi taichi   14315 2010-08-04 17:35 makedist.sh
drwxrwxr-x.  5 taichi taichi    4096 2010-08-04 17:34 pythonmod
drwxrwxr-x.  4 taichi taichi    4096 2010-08-04 17:34 services
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:34 smallapp
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:35 testcode
drwxrwxr-x.  3 taichi taichi   20480 2010-08-04 17:35 testdata
-rwxrwxr-x.  1 taichi taichi 3223553 2010-08-04 17:39 unbound
-rwxrwxr-x.  1 taichi taichi 2864975 2010-08-04 17:39 unbound-checkconf
-rwxrwxr-x.  1 taichi taichi 2890681 2010-08-04 17:40 unbound-control
-rwxrwxr-x.  1 taichi taichi    5261 2010-08-04 17:40 unbound-control-setup
-rwxrwxr-x.  1 taichi taichi    6404 2010-08-04 17:39 unbound-host
drwxrwxr-x.  5 taichi taichi    4096 2010-08-04 17:35 util
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:34 validator
drwxrwxr-x.  3 taichi taichi    4096 2010-08-04 17:34 winrc

Unboundの方は比較的ドキュメントがしっかりしています。
この差が一体何なのかはよく分かりません。

有志の方々がマニュアルの翻訳などをなさっている様ですね。

NSDをビルドする。

BINDがビルド出来たので次はNSDをビルドします。
BINDは機能的にコンテンツサーバとリゾルバが両方搭載されているので、
コードを読むと結構辛くて苦しい的な電波をどこからか受信したので、
それが本当かどうかを確かめる為に、
比較対象となりえる同じドメインの別なプロダクトも一緒にって訳です。


NSDSVNリポジトリが公開されているので、迷わずにtrunkをゲトしてきます。

svn co http://www.nlnetlabs.nl/svn/nsd/trunk/ nsd

NSDには、configure.acと言うファイルが含まれているので、
どうやらAutoconfでビルドしている様です。

cd nsd
autoconf
./configure

なんかメッセージが沢山出力されるけれども一番最後で、エラーが出力されて何かガッカリです。

configure: creating ./config.status
config.status: creating Makefile
config.status: error: cannot find input file: `config.h.in'

config.h.inが無い的な話の様です。それでは、

autoheader
./configure

こんどはオッケーです。Makefileが生成されています。

configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h

では、普通にmakeしてみます。

make

特にエラーも無くビルド出来た様です。

ls -l | grep rwx
drwxr-xr-x. 2 taichi taichi   4096 2010-08-04 17:18 autom4te.cache
drwxrwxr-x. 3 taichi taichi   4096 2010-08-04 17:10 compat
-rwxrwxr-x. 1 taichi taichi  30596 2010-08-04 17:21 config.status
-rwxrwxr-x. 1 taichi taichi 235625 2010-08-04 17:18 configure
drwxrwxr-x. 4 taichi taichi   4096 2010-08-04 17:10 contrib
drwxrwxr-x. 3 taichi taichi   4096 2010-08-04 17:05 doc
-rwxrwxr-x. 1 taichi taichi   5598 2010-08-04 17:11 install-sh
-rwxrwxr-x. 1 taichi taichi   5318 2010-08-04 17:11 makedist.sh
-rwxrwxr-x. 1 taichi taichi    719 2010-08-04 17:11 mkinstalldirs
-rwxrwxr-x. 1 taichi taichi 909329 2010-08-04 17:23 nsd
-rwxrwxr-x. 1 taichi taichi 569049 2010-08-04 17:23 nsd-checkconf
-rwxrwxr-x. 1 taichi taichi 578130 2010-08-04 17:23 nsd-notify
-rwxrwxr-x. 1 taichi taichi 653396 2010-08-04 17:23 nsd-patch
-rwxrwxr-x. 1 taichi taichi 595930 2010-08-04 17:23 nsd-xfer
-rwxrwxr-x. 1 taichi taichi  10492 2010-08-04 17:23 nsdc.sh
drwxrwxr-x. 7 taichi taichi   4096 2010-08-04 17:10 tpkg
-rwxrwxr-x. 1 taichi taichi 760598 2010-08-04 17:23 zonec

尚、DNSサーバはこの辺のサイトを見ると何かイッパイあってアレな気持ちになれます。

しかしもって、NSDはドキュメントらしいドキュメントがありませんが、大丈夫なんでしょうか?

BINDとの比較表だけ渡されても困るんですけども。
BINDを事細かに理解しているオルタナティブな人だけがNSDに触れるって事なんかな。


少し古い印象が無きにしもあらずですが、日本語で記述された記事もありました。

コードがあれば何とかなるさと言う気がしないでもない。

BIND9をビルドする。

最近にわかにDNSサーバブームであります。
正直、完全に素人な状態から根の深いテクノロジを勉強するのは久しぶりなので、基礎的な事柄から勉強していきます。


使っている環境は、大体こんな感じ。


BINDは、多分きっと間違いなくDNSサーバにおいて最大勢力を誇り、
DNSとかいう結構インターネットの根幹に関わるテクノロジであるにも関わらず、
毎週リリースされていたりします。
実業務としてDNSサーバの運用をやってる人はBINDなんぞ使ってないから問題ないんでしょうか?


まずは、最新のソースコードによるリリースをダウンロードしてきます。

僕がダウンロードしたのは、BIND 9.7.1-P2と言うバージョンです。

tar xvzf bind-9.7.1-P2.tar.gz
cd bind-9.7.1-P2
./configure
make

特に問題なくビルド出来ました。

今日もビルドしてみた。

噂のLucandraをビルドしたよ。


slf4j使ってる風味なivy.xmlだけど実際に使ってるのは、
log4jなので、それっぽいdependencyを追加しないとコケる。
ナニソレ?って感じだけどもさ。

<ivy-module version="2.0">
  <info organisation="lucandra" module="lucandra"/>
  <dependencies>
    <dependency org="log4j" name="log4j" rev="1.2.15" conf="* -> *,!sources,!javadoc">
      <exclude name="jms" />
      <exclude name="jmxtools" />
      <exclude name="jmxri" />
    </dependency>
    <dependency org="junit" name="junit" rev="4.6" conf="* -> *,!sources,!javadoc" />
    <dependency org="org.slf4j" name="slf4j-api" rev="1.5.8" conf="* -> *,!sources,!javadoc"/>
    <dependency org="org.slf4j" name="slf4j-simple" rev="1.5.8" conf="* -> *,!sources,!javadoc"/>
    <dependency org="commons-lang" name="commons-lang" rev="2.4" conf="* -> *,!sources,!javadoc"/>
    <dependency org="org.apache.solr" name="solr-core" rev="1.4.0" conf="* -> *,!sources,!javadoc"/>
  </dependencies>
</ivy-module>

ついでに、ant testってしようとするとクラス名がアレでナニなので、
テストにこけるっていうか、JUnitのテストコードじゃないものにも、
〜Testって付いてるんだよね。
というわけで、build.xmlも修正する。部分的に切りだすと、大体こんな感じ。

        <target name="test" depends="compile.tests">
          <echo message="running tests"/>
          <mkdir dir="${build}/output"/>
          <junit fork="on" failureproperty="testfailed">
            <classpath refid="lucandra.classpath"/>
            <formatter type="xml" usefile="true"/>
            <formatter type="brief" usefile="false"/>

            <batchtest todir="${build}/output">
              <fileset dir="${build.test.classes}" includes="**/LucandraTests*" />
            </batchtest>
            <jvmarg value="-Dcassandra.host=${cassandra.host}"/>
            <jvmarg value="-Dcassandra.port=${cassandra.port}"/>
            <jvmarg value="-Dcassandra.framed=${cassandra.framed}"/>
          </junit>
          <fail if="testfailed" message="Some test(s) failed."/>
        </target>

Windowsでも、「BookmarksDemo」ってのは、eclipse越しに動いたヨ。

アレ。

ivyっぽい感じで仕上げてみた。
しかし、publicなリポジトリに無いものが相応にあるので、マジ痺れる。


Jarvanaさんが便利すぎるマジオススメ。

続きを読む