1. unbound DNS キャッシュサーバ
http://unbound.net/documentation/index.html
http://www.unbound.net/documentation/requirements.html
ldns http://nlnetlabs.nl/projects/ldns/
http://www.howtoforge.com/installing-using-unbound-nameserver-on-debian-etch
2. unbound install
/64 bitOS もmake install 出来た。(PCBSD 9.0) -- ToshinoriMaeno 2012-02-19 06:06:22
32bitOSではmakeできている。
2.1. FreeBSD 8.2 (i386)
環境: FreeBSD 8.2 (i386), openssl 1.0.0d (/usr/local/ssl)
- gmake あり
ldns-1.6.10をインストールしようとしたら、libexpatがなかったので、expat 2.0.1 をgmakeした。
特にひっかかることもなく、unbound 1.4.12 もmake, install できた。
/usr/local/etc/unbound のもとにconfigファイルを置いて、動かし始めた。
- daemontools の監視下でforeground で動かしている。 /service/unbound
2.2. ubuntu 10.10 (i386)
libexpat-2.0.1, ldns-1.6.10, unbound-1.4.12 という組み合わせでmakeできた。 -- ToshinoriMaeno 2011-07-20 05:01:52
2.3. ldns
http://nlnetlabs.nl/projects/ldns/
- drill や example の gmake/installもしておく。
2.4. unbound のインストールができない
正確には ldns がmakeできない。
常用環境である ubuntu 11.04(amd64) でmakeできない。
- openssl で作ったlibcrypto.aがリンクできない。
環境: ubuntu 11.04 (amd64) opensslは1.0.0dである。
- unbound 1.4.12
- libexpat は apt-get install libexpat1-dev で入れた。
- config, make で libcrypto.a がリンクできないとのメッセージ。 -fPICをつけろというのだが、つけてもだめ。
/usr/bin/ld: /usr/local/ssl/lib/libcrypto.a(x86_64cpuid.o): relocation R_X86_64_PC32 against symbol `OPENSSL_cpuid_setup' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value
ここで、上記のFreeBSDを試したのだが、こちらは問題なしだった。
CentOS 5.6 (amd64) でも同じ症状のようだ。
64ビット環境に関係があるかも。
--disable-shared を指定して、configureすればリンクできる。(ldns, unbound とも) -- ToshinoriMaeno 2011-07-22 05:25:36
ldns の問題が解消しなくては最新のunboundは使えない。
- OSに付属の古いunboundは動いているので、当面はこれを使っておく。 drill もapt-get で入れた。 (ldn 1.6.6 だ)
2.5. 設定も面倒だ
キャッシュサーバなのに、どうしてこんなに設定項目があるのだ。
daemontoolsでの管理はどうすればいいのかな。
- 死んだときに自動で立ち上がってくれるといいのだが。
2.6. 振る舞いの推測
authority/additionalで得たレコードのTTLは短くなる。 (-10秒?)
unbound-1.4.8 以降での動作だ。 bind (named) とは異なる。
authority/additional section を付けようとする。
キャッシュ内ではanswer/authority/additional の各sectionのデータは区別されている。
- additionalで得たAレコードはquery ansewerには使われない。
- authoriyで得たNSレコードもquery ansewerには使われない。
-- ToshinoriMaeno 2011-08-14 09:18:31
authority/additionalにつけるレコードは区別されない。
- additionalにつけるAレコードがTTL expireしたときにfetchしなおしている。
2.7. DNS キャッシュの必要度
sshd config ではDNSを参照しないように設定してあるので、ログインが遅くなることはない。
- tcpserver でのアクセス制御で参照していたのをなるべく使わないようにしておく。
- 普段使うIPアドレス群を登録しておけば、キャッシュが止まってもすぐに困るわけではない。 IPアドレス固定のホストからのアクセスには問題はない。