dnsサーバ構築(bind-9.7.3-P1)

bindでDNSサーバを構築してみます!
最近はいろいろなバグがあるようなので、
今回はコレ → BIND 9.7.3-P1
http://www.isc.org/software/bind/973-p1

ソースから入れます。
DNSSECもやってみたいからbindとopensslが必要。

ちょっと新しすぎかとも思いつつ openssl-1.0.0d.tar.gz 入れます。

$ wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
$ sudo cp openssl-1.0.0d.tar.gz /usr/local/src
$ sudo tar zxvf openssl-1.0.0d.tar.gz
$ cd openssl-1.0.0d
$ sudo ./config
$ sudo make
$ sudo make install
ここにできます。
/usr/local/ssl

つづいてコチラ bind-9.7.3-P1.tar.gz

$ wget http://ftp.isc.org/isc/bind9/9.7.3-P1/bind-9.7.3-P1.tar.gz
$ sudo cp bind-9.7.3-P1.tar.gz /usr/local/src
$ cd /usr/local/src
$ sudo tar zxvf bind-9.7.3-P1.tar.gz
$ cd bind-9.7.3-P1
$ sudo ./configure \
--enable-threads \
--enable-ipv6 \
--with-openssl=/usr/local/ssl \
--enable-option-checking
$ sudo make
$ sudo make install
named実行用のユーザを作成。
乗っ取られたときにシェルとか実行されないように!
$ sudo /usr/sbin/useradd named
$ sudo chsh named
Changing shell for named.
New shell [/bin/bash]: /sbin/nologin

bindインストール時に気になったのは以下オプション。
また後日、時間があるときにでも調べよう。

--enable-getifaddrs     Enable the use of getifaddrs() [yes|no].
これの意味がよくわからない。。
何が嬉のだろうか。ムズイ。。
--disable-isc-spnego    use SPNEGO from GSSAPI library
そもそもGSSAPIって><
--with-libxml2=PATH     Build with libxml2 library yes|no|path
XMLとbindはどうからむのか><
--with-iconv=LIBSPEC    specify iconv library default -liconv
これは日本語ドメイン用ですか? ><

けっこう疲れたので続きは後日!!

キャッシュがクリアされました♪

ムームードメインでNS設定をしてから1日。
NSが設定されていました(゚∀゚ )

ムームードメインに登録した2個のNS

ムームードメインではNSを2個設定しました。
どちらも同じIPですが、名前は違うものを指定。

digに +traceオプションを付けて引いた結果ちゃんとNS変更を確認♪

xxxx.xxx.           86400   IN      NS      ns1.xxxx.xxx.
xxxx.xxx.           86400   IN      NS      ns2.xxxx.xxx.

いやー。長かった!!(´;ω;`)ウッ…
でも、これでドメイン登録しても、同じ方法で運用できます♪

今後はDNSSECとかいろいろチャレンジしていきます!!

Cactiを使ったnamedのパフォーマンス監視

やはり見たい!クエリ数とかの推移を見たい!
グラフとして優れたRRDToolsを使ってるCacti取れるみたい(゚∀゚ )

■BINDアクセス統計監視グラフ追加(bind9-snmp)
http://fedorasrv.com/rrdtool-bind.shtml

■Cacti
http://www.cacti.net/

Cactiについて

何度かCactiは使ったことあるけど、ある程度設定しまえば
Webからいろいろと設定できるからそれなりにお気に入り♪
MySQLなど初期設定がちょっと小難しいけど、
Cacti付属のドキュメント通りにやればオッケー^^
しかもグラフなどはRRDToolsがキレイに書いてくれる。

Cactiのログもwebから見えたりする!
よっし!これは~(・∀・)

本日の結論!

Cactiを導入して、namedのパフォーマンスを計測したいと思います!!

bind-9.8.0-P4 クエリ情報計測をする

cactiでnamedのクエリ情報を取得するには、
namedからrndcで統計データを取り出してそれを整形し、
データを取得する方法が一般的の様子。

それをするためのツールがコチラ!
◆Bayour.com
http://www.bayour.com/
http://www.bayour.com/Softwares/bind9-snmp/bind9-snmp_1.8.tgz

その使い方を説明しているのがこれら。(日本語)
http://centossrv.com/rrdtool-bind.shtml
http://d.hatena.ne.jp/stereocat/20070321 ←わかりやすい^^

でも動きませんΣ(・ε・;)
一通り設定しましたがどうも動かない。
マニュアルにある設定項目は全てパスしましたがダメ。。
どうもsnmpがうまく反応できてない様子。

namedが出力するログのフォーマットが変わったのが原因の様子。
しかしながら、諦める訳にはいかぁーーーん!!
もうちょっとガンバロウ( `_ゝ´)

bindクエリ統計を取るのはムズイ><

昨日今日とがんばりましたが、
bindの統計結果をsnmpで取るのはなかなか難しいです(;´Д`)

$ snmpwalk -v2c -c public localhost .1.3.6.1.4.1.8767.2.1
BAYOUR-COM-MIB::b9stNumberTotals.0 = INTEGER: 8
BAYOUR-COM-MIB::b9stNumberDomains.0 = INTEGER: 0
BAYOUR-COM-MIB::b9stCounterName.1 = STRING: success
BAYOUR-COM-MIB::b9stCounterName.2 = STRING: referral
BAYOUR-COM-MIB::b9stCounterName.3 = STRING: nxrrset
BAYOUR-COM-MIB::b9stCounterName.4 = STRING: nxdomain
BAYOUR-COM-MIB::b9stCounterName.5 = STRING: recursion
BAYOUR-COM-MIB::b9stCounterName.6 = STRING: failure
BAYOUR-COM-MIB::b9stCounterName.7 = STRING: duplicate
BAYOUR-COM-MIB::b9stCounterName.8 = STRING: dropped
BAYOUR-COM-MIB::b9stCounterName.8 = No more variables left in this MIB View (It is past the end of the MIB tree)

こんな感じで次のmib値を表示できません。
本家のマニュアルにある確認項目は全てクリアしているので
恐らくnet-snmpがうまく設定できていないのだと思われます。
それに本家にはnet-snmpでなくてucd-snmpとありますしね。。
一筋縄ではいかない模様。

自分がやろうと思うとnet-snmp設定を見直すなど時間くいます。
ですので、ひとまずはここで泣く泣く中断(´;ω;`)ウッ…
後から絶対にやります。

ドメインも取得したことだし、今は他にもやることが!
そちらを優先したいと思います!!

bind再び!(bind-9.8.0-P4)

何やらセキュリティ的な要因でVerUPが必要の様子(;´∀`)
ちょっと前に作ったばかりだけど早速bind-9.8.0-P4入れます。
ま、コンパイルとかは嫌いじゃないから苦にならないw

いままでyumでいろいろと構築してきたけど
こういうちゃんとしたのはsourceから入れます。

bind-9.8.0-P4 コンパイル

cd /usr/local/src
sudo wget ftp://ftp.isc.org/isc/bind/9.8.0-P4/bind-9.8.0-P4.tar.gz
sudo tar zxvf bind-9.8.0-P4.tar.gz
cd bind-9.8.0-P4
sudo ./configure \
--enable-threads \
--with-openssl=/usr/local/ssl \
--enable-ipv6 \
--enable-option-checking
sudo make
sudo make install
おっけー(  ̄ー ̄)b
/usr/local/sbin/named -v
BIND 9.8.0-P4

bind設定の準備

続いてbindの設定します!
ちょっとめんどくさいのがnamed.confの設定。
sourceの中でfindしてみたらいくつかはサンプルある。

find . -name '*named.conf*'
ずらずら

内容はもりだくさんだけどコレを選択!

bin/tests/named.conf

では、早速ファイルを置いていきます。
何故かはわからないけど、/etc/named.confはシンボリックリンクにして
/etc/namedb/named.confに設定置く流儀が染み込んでましたw 何故だろw
きっと悪い流儀でないと信じて今回もそれに従います。

sudo mkdir /etc/namedb  ←ないから作った
sudo cp bin/tests/named.conf /etc/namedb/
sudo ln -s /etc/namedb/named.conf /etc/named.conf

ここまできたら後はnamed.confを設定して起動すればオッケー!
前回構築しようとしたときにnamedユーザ作ったからそれも活用します^^
dnsサーバ構築(bind-9.7.3-P1)

namedのログローテーション設定

暫く見ないうちにnamedのログがけっこう太ってましたw

$ ls -l /var/log/named/named.log
-rw-rw-r-- 1 named root  37M Aug 16 20:51 /var/log/named/named.log

named.confを見直してみるとログローテーションの設定がない><
ということで足しました。
設定内容は、ログファイルが10メガを超えたら別ファイルにローテーション。
ログファイルは5世代分を残す! というものです。

logging {
channel "log_default" {
file "/var/log/named/named.log" versions 5 size 10M; ←ココ!!
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category        notify          { "log_default"; };
category        queries         { "log_default"; };
category        client          { "log_default"; };
category        general         { "log_default"; };
category        default         { "log_default"; };
};

そしてrndc reload!!

$ sudo /usr/local/sbin/rndc reload
server reload successful

ちゃんとローテーションしてくれていました(≧∇≦)b

$ ls -lh /var/log/named/
total 37M
-rw-r--r-- 1 named named 2.2K Aug 16 20:54 named.log
-rw-rw-r-- 1 named root   37M Aug 16 20:51 named.log.0

1個目(named.log.0)が37Mとちょっと太りすぎましたが、
まぁ、5世代分が蓄積されることには削除されますし。
今のところディスク圧迫してることもないのでこのままにしておきます。

Linuxではlogrotateがその他のログをやってくれるようですが、
ひとまずnamedはログのメンドウも見てくれるので助かります♪

dnsサーバ構築(ムームードメイン設定)

ようやく環境が整ってきたので、
以前取得したドメインを利用し、サーバをNSに仕立てたいと思います。

取得ドメインについて

http://muumuu-domain.com/
ドメインはムームードメインで以前取得したも。
さくらVPSでbind立てて取得ドメインのNSに設定をします。

1)「コンパネ」→「ログイン」
ユーザIDとパスワード聞かれるので入力します。
f:id:kuchida123:20110719233028g:image:w360

2)左メニューのムームーDNS → 「ネームサーバ設定変更」
f:id:kuchida123:20110719233417g:image

4)取得ドメインの「ネームサーバ設定変更」
自分が設定しようとするドメインをクリック!
f:id:kuchida123:20110719233822g:image

5)「取得したドメインで使用する ※上級者向け」をクリック!
更に「取得したドメインでネームサーバを登録する場合はこちらをご利用ください。」をクリック!
f:id:kuchida123:20110719235443g:image

6)自分が構築したNS情報を登録してあげます。
f:id:kuchida123:20110719235744g:image

設定はしばらく反映されない模様。
これで恐らく、レンタルサーバ側のDNS設定さえ間違っていなければ、
問題なくレコードが引けるようになるはず!!

と、信じてひとまず。今日は寝ます!!
⊂( ⊂(´_ゝ`)

namedの統計値をnet-snmpで取得する。そしてcactiでグラフ表示。

ちょっと前に挫折したかに思わせて、密かにがんばってました(w
といってもまだ成果は出ていませんけどね。。

前回のおさらい

せっかく入れたcactiでnamedのパフォーマンス計測をしたい!
というのが全てのモチベーション。cactiでキレイにグラフ化したい。

それ用のツールを発見し、インストールするも期待通り動かず><
モノはPerlで書かれているのでひとまず中身を解析できれば
今の環境に合わせて動くのではないかっ!?という予想。

net-snmpに拡張mibを認識させる

yumで入れたnet-snmpのmibに新しいmibを追加して、
それを取得する方法によりnamedのパフォーマンス監視をします。
そのツールを見てみたところ、snmpwakなどで値を取る時に
スクリプトを実行して統計値を取得しているようす。
net-snmpはスクリプト実行してその値を返す役割。

以下を参考にしました。
4ページありますが3、4ページ目は会員登録しないと見れない。。

◆net-snmpについて(独自監視項目の追加) – 前編
http://codezine.jp/article/detail/2938

ということで、ここから察するにmib追加については
何となくテキストでファイルを追加してあげるだけの様子。

そして、もう1点気になるのが統計値を取得するスクリプト。
こちらがうまく動いている確認が取れていない。
スクリプトを実行しても応答がない。。

$ /etc/snmp/bind9-snmp-stats.pl
しーん

ということでこのスクリプトを理解して、
値を期待通りに返すようにすればcactiでレコード取得
できるようになるのではないだろうか!!

ということまで来ました!!
結果、切り分けは進みましたがまだ動作しません(w

cactiでnamed統計値を取るための今後の課題

値をちゃんと出力することを確認するための作業をやるベシ。
そのためにスクリプトを読むことが必須だろう。