しいしせねっとわーく
[しいしせねっと] [Linuxメモ]

BINDで構築するDNS

もくじ

  1. インストール/設定編
  2. Dynamic DNS(DDNS)

今の標準はBIND8だと思うのですが、9はどんなところが違うんでしょう。
BIND9 は、スレッド対応というか、まるちCPU対応してるのかな? JPNICには日本語ドメイン対応パッチもあるようですな。
IPv6対応もしてるらしい。う〜ん、設定ファイルとか、BIND8と同じなのかな・・・。
ここでは、Linuxメモなので概念を省略してインストール的なメモにします。

バージョンの選択

IPv6 等を利用する、またはその予定があるのなら9 にしましょう。
まだまだ8が利用されることが多いので、8でもかまいません。今から4にするのは、やめましょう。

インストール

RedHat系のLinux であれば、rpm を使ってインストールすることができます。
インストールすると、ユーザ named が作られます。
BINDは、ソースからインストールするとややこしいようです。

ファイル構成

基本的に知っておけばいいのは次のようなものです。標準的な環境以外ではファイルの場所等が違うことももちろんあります。

/etc/rc.d/init.d/named 起動用ファイル -> chkconfig 等で設定できます。
/etc/named.conf 基本設定ファイルです。
/var/named/各種ファイル ドメイン別のファイルがあります。
/etc/resolv.conf クライアント用のDNS指定のためのファイル

BINDの基本的な設定

バージョンは8系 9系でもそう違わないかな。
/etc/named.conf と /var/named/ 配下のファイルを更新します。

外向きと内向き、

ドメイン名を調べる各種ツールの名前は、悪さする人がいるので教えませんが、DNSの設定方法は、結構詳しくなりましたかもしれず。

というわけで、ファイルの書き方

/etc/named.conf

zone でいろいろ記述します。
(略)

siisise.net ドメインに関することが記述されたファイル
/var/named/db.siisise.net

@  IN SOA dns1.siisise.net. root.siisise.net. (
2001040301 ; serial  ; 更新したシリアル番号を書きます。毎回変えないとslaveサーバなどに伝わりません 年月日を元にするとよいようです
36800      ;refresh ; slave サーバがmaster サーバに問い合わせする間隔 (秒) 最近のは大きくしても問題ありません retry の10倍以上が目安
3600       ; retry ; 失敗したときのリトライ (秒)
604800     ; expire ; 時間切れ slaveは、これ以上masterサーバにアクセスできないと、なくなったものとして破棄する
86400 ; default TTL ; キャッシュサーバに記憶される時間 (秒) 約1日
)
      IN NS  dns1.siisise.net. ; レジストラに登録しているDNSサーバ名
      IN NS  dns2.siisise.net. ; レジストラに登録しているDNSサーバ名 まぁ、登録してなくてもいいけど・・・・。
      IN NS  dns3.siisise.net. ; レジストラに登録しているDNSサーバ名 登録してないと更新されるのが遅くなります。
      IN MX 10 okome.siisise.net. ; このドメイン宛のメールは、このサーバへ
okome IN A 192.168.0.1 ; このサーバの名前はこれね。
www   IN CNAME okome.siisise.net. ; こういう名前でも使うね。
ftp   IN CNAME okome.siisise.net. ; こういう名前でも使うね。

というふうに指定します。(IPアドレスは例です)

参考文献

UNIX USER に、 djbdns ? だったかな? qmail と同じ作者の作ったDNSについての解説が載ってました。
DNS & BIND 第4版 (オライリー) やっぱりひととおり書かれてるのは本かもしれなかった。 

DynamicDNS(DDNS) っていうもの?

とりあえずサーバ機能を設定してみようか。
と思ってみる。
BIND8.1以降で可能らしい。

BINDをDynamicDNSで更新可能にする

更新可能なクライアントを限定することからはじめよう
1)IPアドレスによる制限
2)暗号鍵による制限
3)アカウント、パスワードによる制限
が可能なのかな?
とりあえず、基本は zone に更新可能な設定をします。

1)IPアドレスによる制限
allow-update を記述することで制限可能
2)暗号鍵による制限
dnskeygen というコマンドを使います

[しいしせねっと]