ARAGO for Internet Wiki Project AkuAku

This web site is powered by Arago for Internet v7.0 UTF-8 edition on FreeBSD
SPC main menu Expand/Fold
Products 取扱商品 Expand/Fold
SouthWind  Expand/Fold
Q&A Technical support Expand/Fold
BBS 掲示板 Expand/Fold
Easy PC life Expand/Fold

Last Edit Date: 09/11/2009
 secondary DNSの設定を追加 2009/09/10
smtpでのreverse lookupの問題のため
サーバの外側のethernetのipも.revファイルに追加してください。
下のサンプルでは
ns1 IN A 61.199.237.146
の前に
ns1 IN A 61.199.237.145
を追加してください。

bindの設定

BindはDomain Name Serverです。 FQDであり、domain名が登録されるとName Serverのhost名とアドレスが登録されます。
DNSをPrimaryにするかSecondaryにするかは考え方だと思います。 ひとつでも余計なportをsecurity上あけたくないと言うのでしたらsecondaryにするのもひとつの方法ですし、余計なことにかかわりたくないと思うのでしたら、primaryもsecondaryも自前のものにするのもひとつの方法です。

ここではprimaryとしての設定であり、複数のdomainを同じipで使用する例を解説します。 この設定ファイルが理解できれば、あとは同にでもなると思います。
ここで必要になることはサーバでEhternetの設定が正しく行われていること、hostコマンドで調べて、正常にネットワークが動作していることです。
ネットワークの動作がおかしいときには、dnsの設定は不可能です。

現在の最新のbindは9です。 bind9になっていろいろと機能が拡張され、それでなくとも、解りにくい設定がより複雑そうになりました!


 ソースコードをhttp://www.bind9.net/download からダウンロードしてインストールします。

日本のように特定の企業や特定大学関連組織が特権的にipんもclass b,cを持っている状況ではipv6を考える必要はあるかと思いますが。 ここではIPv6は考えていません。 
ここでは1台のサーバーで複数のdomainをサポートする部分を紹介しています。 参考になると思います。
あとはいろいろと書かれたページがあります。 参考になるページもあるようです。 より詳しい話は他を参考にしてください。 

tarファイルは
tar -xf bind-9.5.0-p1.tar.gz で解凍します。 bind-9以下はダウンロードした最新版のバージョンに変わります。
解凍されたディレクトリで
ns1#./configure
ms1#make

ms1#make install

これでコンパイルとインストールは終了です。 もしここでerrorが出るようでしたら、 make cleanをして、もう一度やってみてください。

make installで何指定しないときには、次のようなディレクトリが作成されます。
/var/named/etc/named/
この下に
named.conf
named.root
と次のディレクトリがあります。
/master/には
.zoneと.revファイルがきます・
/slave/
/dyanmic/

/var/named/etc/named/ディレクトリは、/etc/namedbにシンボリックリンクされてあります。 編集は/var/named/で行ってください。

では設定ファイルです。 
named.conf このファイルがすべての始まりです。


<---はコメントのためのここで使いますが、実際のファイルにあるとエラーになります!
// は続く文をコメントアウトします。
/* .....*/ はその中の文をコメントアウトします。
//で記述されている内容を必ずお読みください。 キーボードの横には辞書がありますよね??



// $FreeBSD: src/etc/namedb/named.conf,v 1.26.2.1 2008/01/13 20:47:34 dougb Exp $
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
// Relative to the chroot directory, if any
directory "/etc/namedb"; <--- 関連するファイルの所在を指定
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
// listen-on { 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver. To give access to the network, specify
// an IPv6 address, or the keyword "any".
// listen-on-v6 { ::1; };
// These zones are already covered by the empty zones listed below.
// If you remove the related empty zones below, comment these lines out.
disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
forwarders {
127.0.0.1;
};
*/
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND versions 8 and later
* use a pseudo-random unprivileged UDP port by default.
*/
// query-source address * port 53;
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
// The traditional root hints mechanism. Use this, OR the slave zones below.
zone "." { type hint; file "named.root"; };
/* Slaving the following zones from the root name servers has some
significant advantages:
1. Faster local resolution for your users
2. No spurious traffic will be sent from your network to the roots
3. Greater resilience to any potential root server failure/DDoS
On the other hand, this method requires more monitoring than the
hints file to be sure that an unexpected failure mode has not
incapacitated your server. Name servers that are serving a lot
of clients will benefit more from this approach than individual
hosts. Use with caution.
To use this mechanism, uncomment the entries below, and comment
the hint zone above.
*/
///8ipのドメインです、slaveは使いません。
/*
zone "." {
type slave;
file "slave/root.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "arpa" {
type slave;
file "slave/arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "in-addr.arpa" {
type slave;
file "slave/in-addr.arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
*/
/* Serving the following zones locally will prevent any queries
for these zones leaving your network and going to the root
name servers. This has two significant advantages:
1. Faster local resolution for your users
2. No spurious traffic will be sent from your network to the roots
*/
// RFC 1912
///次の3個のファイルはbindが生成します。
zone "localhost" { type master; file "master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "master/empty.db"; };

//途中省略

// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries. It can be convenient to become
// a slave at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
// master name server.
//
// Do not forget to include the reverse lookup zone!
// This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended, or ".IP6.ARPA" for IPv6.
//
// Before starting to set up a master zone, make sure you fully
// understand how DNS and BIND work. There are sometimes
// non-obvious pitfalls. Setting up a slave zone is usually simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.

/////もし外部からこのbindを制御するのでしたら、下記をdynamicの指定を修正してコメントをはずしてください。
////sercretも勿論変更してください。
////詳しくはgoogleでrndc-confgen で検索を!

/* An example dynamic zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
/* Example of a slave reverse zone
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/
*******************************************************

zone "237.199.61.in-addr.arpa" {
type master;
file "master/midofocean.com.rev";  <--- fileでファイル名を指定、midoofocean.comの逆引き辞書 です。 内容は該当ファイルを参照
allow-transfer{
193.218.105.149; 195.234.42.1;
};};
zone "midofocean.com"{ <--- domain名を書く
type master;
file "master/midofocean.com.zone"; <--- fileでファイル名を指定、midofocean.comの正引き辞書です。 内容は該当ファイルを参照
allow-transfer{
193.218.105.149; 195.234.42.1;
};};

ここからは同じIPをnamed serverにしているdomainが続きます。
revファイルはありません。 ipで引かれても、revが複数あると、どのドメインを返すのですか???

zone "deepinthesea.com" { <--- domain名を書く
type master;
file "master/deepinthesea.com.zone"; <--- fileでファイル名を指定、deepinthesea.comの正引き辞書です。 内容は該当ファイルを参照
// allow-transfer{
// 193.218.105.149; 195.234.42.1;
// };
};

zone "hippopotamus.com" { と続けます。 サポートできるdomainの制限は知りません。
.............




TTLはこのアンプルではデイフォルトの一週間になっていますが、 bindの設定の変更してもそれぞれのcacheに残ってしまいます。
すぐに反映させるために8時間にします。
$TTL 604800 ;minimum seven days

$TTL 28800 ;minimum eight hours
に変更しておきましょう。
設定の変更のたびにserialを変更しましょう。
ここでは日付を使っています。

20081007 ; Serial


では次のファイルはnamed.rootですが、これはbindに含まれているのをお使いください。

localhost.revです。

;localhost.rev
$TTL 604800 ;minimum seven days
@ IN SOA ns1.midofocean. root@ns1.midofocean.com. (
20041007 ; Serial
28800 ;Refresh 8 hours
1800 ;30 dyas
1209600 ;Expire two weeks
3600 ) ;Minumum one hour
IN NS ns1.midofocean.com.
; IN NS xxxx.ocn.ad.jp. <--- secondaryの指定
IN PTR localhost.midofocean.
1 IN PTR localhsot.midofocean.

midoofocean.com.zoneです。

;midoofocean.com.zone
$TTL 604800 ;minimum seven days
@ IN SOA ns1.midofocean.com. root.ns1.midofocean.com. (
20041007 ; Serial
28800 ;Refresh 8 hours
1800 ;30 dyas
1209600 ;Expire two weeks
3600 ) ;Minumum one hour
IN NS ns1.midoofocean.com.
; IN NS ns-tk061.ocn.ad.jp.
;
IN MX 10 peper.midofocean.com. <--- mail server
localhost IN A 127.0.0.1
ns1 IN A 61.199.237.146
peper IN A 61.199.237.147
rawi IN A 61.199.237.148
tong IN A 61.199.237.149
prig IN A 61.199.237.150
;CNAME
www IN CNAME ns1.midofocean.com.
ftp IN CNAME ns1.midofocean.com.
mail IN CNAME peper.midofocean.com.
;news IN CNAME ns1.midofocean.com.

midoofocean.com.revです。

;midoofocean.com.rev
$TTL 604800 ;minimum seven days
@ IN SOA ns1.midoofocean.com. root@ns1.midoofocean.com. (
20041007 ; Serial
28800 ;Refresh 8 hours
1800 ;30 dyas
1209600 ;Expire two weeks
3600 ) ;Minumum one hour
IN A 255.255.255.248
IN NS ns1.midofocean.com.
IN NS xxxx.ocn.ad.jp.
;
IN PTR ns1.midofocean.com.
1 IN PTR localhost.midofocean.com.
146 IN PTR ns1.midofocean.com.
147 IN PTR peper.midofocean.com.
148 IN PTR rawi.midofocean.com.
149 IN PTR tong.midofocean.com.
150 IN PTR prig.midofocean.com.

;deepinthesea.com.zone
$TTL 604800 ;minimum seven days
@ IN SOA ns1.midofocean.com. root.ns1.midofocean.com. (
20041007 ; Serial
28800 ;Refresh 8 hours
1800 ;30 dyas
1209600 ;Expire two weeks
3600 ) ;Minumum one hour
IN NS ns1.midofocean.com.
IN NS xxxx.ocn.ad.jp.
;
; IN MX 10 ns1.deepinthesea.com.
IN A 61.199.237.146
ns1 IN A 61.199.237.146
;CNAME
www IN A 61.199.237.146
mail IN A 61.199.237.147 <--- 本家のメイルサーバ


それぞれのファイルの先頭部分はそれぞれのファイルで全く同じでなければいけません。
ns1.deepinthesea.com. などの最後の.を入れないとエラーになります。 点でおかしなことになりますから注意してください。
Serialは更新するごとに数を増やしてください。 2008年10月07日のように数字の部分を使うのが混乱が無いでしょう。 ただ内容を変更したら、 その変更に誤りが無く、きちんとと動くことが確認できたときに更新しましょう。





rc.confにこのファイルの所在を指定するので、どこにおこうとかまいません。 ここでは /etc/namedbにまとめてあります。
あちらこちらのディレクトリに撒き散らすのもいいのでしょうが、ここでは出来る限り /etcの下にまとめます。

/etc/resolv.conf
には次のようになっているか確認してください。
domain aaa.org
domain bbb.com
nameserver 61.199.237.146


起動方法

/etc/rc.confに次の行を追加します。 どこの行でもいいのですが、一般的には最後の行に追加します。
named_enable="YES"

あとはrebootして確認です。

hostやnslookupで自分のipとhostnameで確認してください。 

適当なところをhostをみて確認してください。

hostの使い方

host ipアドレス
host hostname
です。

nslookupで
>ドメイン名


nslookupの終了は
exitです。

mx レコードのチェックには、外から
nslookup
>set type=mx
>domainname
で正常に返るかどうかご確認ください。
domainnameは aaa.comのように表記します。




secondary DNSの追加
secondary DNSの設定は特殊なことはありません。
通常通りBindをインストールしてください。

named.confは基本的に同じものですが、次の箇所が違います。
masterがslaveになります。

zone "140.105.218.193.in-addr.arpa" {
type
slave;
file "
slave/140.105.218.193.in-addr.arpa"; 
allow-transfer{
193.218.105.149;
<---primaryのip
};};
zone "midofocean.com"{ <--- domain名を書く
type
slave;
file "
slave/midofocean.com.zone"; <--- fileでファイル名を指定、midofocean.comの正引き辞書です。 内容は該当ファイルを参照
allow-transfer{
193.218.105.149; 
<---primaryのip
};};

ここからは同じIPをnamed serverにしているdomainが続きます。

zone "deepinthesea.com" { <--- domain名を書く
type slave;
file "
slave/deepinthesea.com.zone"; <--- fileでファイル名を指定、deepinthesea.comの正引き辞書です。 内容は該当ファイルを参照
 allow-transfer{
 193.218.105.149 <---primaryのip
 };
};

zone "hippopotamus.com" { と続けます。 サポートできるdomainの制限は知りません。
.............


primary DNSのnamed.confには
 allow-transfer{
 193.218.105.14x <---secondaryのip
 };
};

を追加してください。

まだZONEファイルに
IN NS ns1.midofocean.com.
IN NS hey.midoofocean.com <--- secondaryを指定する。

後は再起動するだけです。


Advertisement Expand/Fold