BIND 構築 (スレーブ)

2021-06-18

概要

目的:BINDのスレーブサーバを構築して、BINDの冗長化をはかる
前提条件:マスターサーバにBINDは構築済みの事
構築方法は以下を参照
ex-lab内:BIND構築
マスターサーバ:192.168.24.100
スレーブサーバ:192.168.24.101

マスター側の操作

(1)共有鍵作成

# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST example.jp

※ コマンド 補足
-a アルゴリズム
-b 鍵長
-n 所有者タイプ
引数は、鍵の名前

(2)鍵が作成されている事を確認

# ls
Kexample.jp.+157+02769.key Kexample.jp.+157+02769.private

(3)共有秘密鍵を確認

# cat Kexample.jp.+157+02769.key
example.jp. IN KEY 512 3 157 lTHmpkaiQjx2lyNXCn35r1wJqPozqQYJjDqSRSkj
RLc1w0UQz7BGNPv3 hwZka1YwdAXGmYp44P9GyvG1EzbXLw==

※ lTHmpkaiQjx2lyNXC…(省略) の部分が共有秘密鍵

(4)named.conf を編集

# cp -p /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.201007010
# vi /var/named/chroot/etc/named.conf

変更箇所のみ追記

key "example.jp" {
algorithm hmac-md5;
secret "lTHmpkaiQjx2lyNXCn35r1wJqPozqQYJjDqSRSkjRLc1w0UQz7BGNPv3 hwZka1YwdAXGmYp44P9GyvG1EzbXLw==";
};

view "internal" {
match-clients { localnets; };
match-destinations { localnets; };
include "/etc/named.rfc1912.zones";
zone "example.jp" {
type master;
file "example.jp.zone";
allow-transfer {
key exampl.jp;
# スレーブのIPアドレス
192.168.24.101;
};
notify yes;
# スレーブのIPアドレス
also-notify { 192.168.24.101; };
};
};

スレーブ側の操作

(1)bind,bind-chroot, caching-nameserverインストール

# yum -y install bind bind-chroot caching-nameserver

(2)マスター側から named.conf をコピー

マスター側から、必要なファイル(named.conf, XXXX.zone)などをコピーする。
自分の環境では、SCPを利用してファイルを転送しています。
+ マスター側で実施

# scp /var/named/chroot/etc/named.conf ex-adm@ex-ns2:/var/tmp
# scp /var/named/chroot/var/named/example.jp.zone ex-adm@ex-ns2:/var/tmp

+ スレーブ側で実施

# cp /var/tmp/named.conf /var/named/chroot/etc/named.conf
# cp /var/tmp/example.jp.zone /var/named/chroot/var/named/example.jp.zone

(3)ルートゾーン最新化

# dig . ns @198.41.0.4 > /var/named/chroot/var/named/named.ca

(4)named.conf を編集

# cp -p /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.201007010
# vi /var/named/chroot/etc/named.conf

変更箇所のみ追記
key "example.jp" {
algorithm hmac-md5;
secret "lTHmpkaiQjx2lyNXCn35r1wJqPozqQYJjDqSRSkjRLc1w0UQz7BGNPv3 hwZka1YwdAXGmYp44P9GyvG1EzbXLw==";
};

# マスター側のIPアドレス
server 192.168.24.100 {
keys "example.jp";
};

view "internal" {
match-clients { localnets; };
match-destinations { localnets; };
include "/etc/named.rfc1912.zones";
zone "example.jp" {
type slave;
# マスター側のIPアドレス
masters { 192.168.24.100; };
file "example.jp.zone";
};
};

(5)BIND自動起動設定

# chkconfig named on

(6)BIND自動起動設定確認

# chkconfig --list named

named 0:off 1:off 2:on 3:on 4:on 5:on 6:off

(7)設定ファイルのパーミッション変更

# chown -R named:named /var/named/chroot/etc/*
# chown -R named:named /var/named/chroot/var/named/*

マスター・スレーブ 共通

(1)BIND起動

# /etc/init.d/named restart
named を停止中: [ OK ]
named を起動中: [ OK ]

エラーの対処

以下のように、failed while receiving responses: permission denied …. と表示され、スレーブ側で同期ができない場合は、以下の対処方法で解決

# tail /var/log/messages
Jul 10 20:03:01 localhost named[12585]: zone example.jp/IN/internal: Transfer started.
Jul 10 20:03:01 localhost named[12585]: transfer of 'example.jp/IN' from 192.168.24.100#53: connected using 192.168.24.101#49775
Jul 10 20:03:01 localhost named[12585]: dumping master file: tmp-IogzPeUwuX: open: permission denied
Jul 10 20:03:01 localhost named[12585]: transfer of 'example.jp/IN' from 192.168.24.100#53: failed while receiving responses: permission denied
Jul 10 20:03:01 localhost named[12585]: transfer of 'example.jp/IN' from 192.168.24.100#53: end of transfer

(1)スレーブ側でパーミッションを変更

パーミッションは変更しているが、念のため再実行

# chown named:named /var/named/chroot/var/named/

(2)マスターサーバ側で対象の zone ファイルのシリアル値を上げる
zone ファイルを再読込

# /usr/sbin/rndc reload

再読込を実施すると、ログから、permission denied は消えます

# tail /var/log/messages
Jul 10 20:18:46 localhoex-ns2 named[12585]: zone example.jp/IN/internal: Transfer started.
Jul 10 20:18:46 localhoex-ns2 named[12585]: transfer of 'example.jp/IN' from 192.168.24.100#53: connected using 192.168.24.101#42342
Jul 10 20:18:46 localhoex-ns2 named[12585]: zone example.jp/IN/internal: transferred serial 2010071005: TSIG 'example.jp'
Jul 10 20:18:46 localhoex-ns2 named[12585]: transfer of 'example.jp/IN' from 192.168.24.100#53: end of transfer
Jul 10 20:18:46 localhoex-ns2 named[12585]: zone example.jp/IN/internal: sending notifies (serial 2010071005)
Jul 10 20:18:46 localhoex-ns2 named[12585]: client 192.168.24.101#16785: view localhost_resolver: received notify for zone 'example.jp': not authoritative

LinuxBIND,Linux

Posted by admin