GNU/Linux >> Linux の 問題 >  >> Debian

Ubuntu 18.04 /16.04およびDebian10/9でスレーブDNS(BIND)サーバーを構成する方法

DNSサーバーは、DNS要求を処理するためのマスターまたはスレーブとして機能するように構成できます。 DNSがスレーブとして構成されている場合、DNSは、ゾーン転送方式を使用してマスターからゾーンデータのコピーを取得し、DNSクエリを処理するために特定の期間キャッシュに保持します。

環境

itzgeek.local
ns1.itzgeek.local 192.168.0.10 マスターDNSサーバー
ns2.itzgeek.local 192.168.0.20 スレーブDNSサーバー。マスターサーバーがダウンしたときにDNSリクエストを処理します

ns1.itzgeek.localは、すでにitzgeek.localドメインのマスターとして構成されています。

読む :Ubuntu 18.04 /Ubuntu16.04でDNSサーバーを構成する

読む :Debian 10 /Debian9でDNSサーバーを設定する

ここで、ns2.itzgeek.localをitzgeek.localドメインのスレーブDNSサーバーとして構成します。

マスターサーバーの構成

マスターサーバー(ns1.itzgeek.local)でBINDを構成して、セカンダリサーバー(ns2.itzgeek.local)へのゾーン転送を有効にする必要があります。

ns1.itzgeek.localの/etc/named.conf.localファイルを編集します。

sudo nano /etc/bind/named.conf.local

itzgeek.local用に作成した既存のゾーンをallow-transferおよびalso-notifyパラメーターで更新する必要があります。

転送を許可すると、ゾーンをマスターサーバーからスレーブサーバーに転送できます。また、マスターサーバーのゾーンに変更があった場合に、スレーブサーバーに通知するのに役立ちます。

フォワードゾーン

zone "itzgeek.local" IN { // Domain name

     type master; // Primary DNS

     file "/etc/bind/forward.itzgeek.local.db"; // Forward lookup file

     allow-transfer  { 192.168.0.20; }; //Allow Transfer of zone from the master server

     also-notify { 192.168.0.20; }; //Notify slave for zone changes

};

逆引きゾーン

zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order

     type master; // Primary DNS

     file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file

     allow-transfer  { 192.168.0.20; }; //Allow Transfer of zone from the master server

     also-notify { 192.168.0.20; }; //Notify slave for zone changes

};

ns1.itzgeek.localでDNSサービスを再起動します。

sudo systemctl restart bind9

スレーブサーバーの構成

必ず次のパッケージをスレーブサーバーにインストールしてください。

sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils

スレーブサーバー(ns2.itzgeek.local)にスレーブゾーン宣言を追加するときが来ました。 /etc/bind/named.conf.localファイルを編集します。

sudo nano /etc/bind/named.conf.local

フォワードゾーン

以下のようにスレーブゾーンを追加します。

zone "itzgeek.local" IN { //Domain name 

     type slave; //Secondary Slave DNS

     file "/var/cache/bind/forward.itzgeek.local.db"; //Forward Zone Cache file

     masters { 192.168.0.10; }; //Master Server IP

};

逆引きゾーン

以下のようにスレーブゾーンを追加します。

zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name. Should match your network in reverse order

     type slave; // Secondary/Slave DNS

     file "/var/cache/bind/reverse.itzgeek.local.db"; //Reverse Zone Cache file

     masters { 192.168.0.10; }; //Master Server IP

};

ns2.itzgeek.localでDNSサービスを再起動します

sudo systemctl restart bind9

数分待つと、/ var / log/syslogファイルに次のようなものが表示されるようになります。

Jan  4 23:18:49 ns2 named[2637]: zone itzgeek.local/IN: Transfer started.
Jan  4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: connected using 192.168.0.20#54333
Jan  4 23:18:49 ns2 named[2637]: zone itzgeek.local/IN: transferred serial 3
Jan  4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: Transfer status: success
Jan  4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: Transfer completed: 1 messages, 8 records, 228 bytes, 0.004 secs (57000 bytes/sec)
Jan  4 23:18:49 ns2 named[2637]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: key now trusted
Jan  4 23:18:49 ns2 named[2637]: resolver priming query complete
Jan  4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: Transfer started.
Jan  4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: connected using 192.168.0.20#55105
Jan  4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: transferred serial 3
Jan  4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: Transfer status: success
Jan  4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: Transfer completed: 1 messages, 6 records, 210 bytes, 0.007 secs (30000 bytes/sec)
Jan  4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: sending notifies (serial 3)

DNSレコードの更新

マスターサーバー上の任意のゾーンのレコードを変更するときは、シリアル番号を現在よりも大きい乱数に更新してください。また、マスターサーバーで次のコマンドを実行してゾーンをリロードし、スレーブゾーンが更新されたレコードを取得できるようにします。

itzgeek.localと0.168.192.in-addr.arpaをゾーン名に変更します。

### Forward Zone ###

sudo rndc reload itzgeek.local 

### Reverse Zone ###

sudo rndc reload 0.168.192.in-addr.arpa

スレーブDNSサーバーの確認

クライアントマシンで、/ etc/resolv.confファイルにスレーブDNSサーバーのIPアドレスを追加します。

sudo nano /etc/resolv.conf

既存のエントリとともに、以下のようなDNSエントリを追加します。

nameserver 192.168.0.20

または

以下のチュートリアルを読んで、LinuxでDNSサーバーのIPを設定してください。

読む: CentOS/FedoraでDNSIPアドレスを設定する方法

読む: Ubuntu / DebianでDNSIPアドレスを設定する方法– ifupdown

読む: Ubuntu 18.04でDNSIPアドレスを設定する方法– Netplan

nslookupまたはdigコマンドを使用して、DNSサーバーを確認できます。

/etc/resolv.confにエントリを作成できない場合に備えて、digコマンドを使用して、@とともに前方参照を確認します。

ns2.itzgeek.local(192.168.0.20)を使用してwww.itzgeek.localのルックアップを確認します

dig www.itzgeek.local @192.168.0.20

出力:

; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> www.itzgeek.local @192.168.0.20
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29076
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 0ff4fbeabbfe6d45cf28f0e85e11725b14943fb073203e78 (good)
;; QUESTION SECTION:
;www.itzgeek.local.             IN      A

;; ANSWER SECTION:
www.itzgeek.local.      604800  IN      A       192.168.0.100

;; AUTHORITY SECTION:
itzgeek.local.          604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 0 msec
;; SERVER: 192.168.0.20#53(192.168.0.20)
;; WHEN: Sun Jan 05 10:51:26 IST 2020
;; MSG SIZE  rcvd: 124

これで、スレーブサーバーがDNSクエリに応答することがわかります。

結論

それで全部です。 Ubuntu 18.04 /Ubuntu16.04およびDebian10/Debian9でスレーブDNSサーバーを正常に構成しました。コメントセクションでフィードバックを共有してください。


Debian
  1. CentOS 5 /RHEL5でDNSサーバーを構成する方法

  2. CentOS 7 / Ubuntu 18.04 / 16.04 /Debian9でDHCPサーバーを構成する方法

  3. Ubuntu 18.04 /Ubuntu16.04およびDebian9にPuppet6.xをインストールする方法

  1. Ubuntu / DebianにDNSサーバー(バインド9)をインストールして構成する方法

  2. CentOS 7 / RHEL 7でスレーブDNS(BIND)を構成する方法

  3. Debian9にSimpleDNS(BIND)サーバーをインストールして設定する方法

  1. Debian 9 /Ubuntu16.04サーバーでHAProxyを設定する方法

  2. Ubuntu 18.04 /Debian9にNginxをインストールして構成する方法

  3. Ubuntu16.04でBaculaサーバーを構成する方法