Ubuntu14.04のスレーブPowerDNSサーバーでDNSレプリケーションを構成する方法
序章
このチュートリアルでは、マスターDNSサーバーからスレーブへの自動レプリケーションを使用してマスター/スレーブ構成でPowerDNSをセットアップする方法を学習します。 このチュートリアルは、Ubuntu用のPowerDNSシリーズの2番目のチュートリアルです。
マスター/スレーブ構成は、追加の信頼性を提供します。 PowerDNSサーバーの1つがダウンした場合、要求を処理するためのセカンダリサーバーがあります。
これらのサーバーを別々のデータセンターにプロビジョニングすることをお勧めします。 それらが2つの物理的な場所にある場合は、データセンターが停止してもDNSサービスに影響はありません。
このチュートリアルの終わりまでに、マスター/スレーブレプリケーションを使用する2つの機能するPowerDNSサーバーができあがります。
前提条件
次の要件を満たしてください。
- Ubuntu14.0464ビットの512MBドロップレット2つ以上。 適度な数のゾーン/レコードでPowerDNSサーバーを実行するには512MBで十分です。
- sudoユーザー
- Ubuntu 14.04にMariaDBバックエンドを使用してPowerDNSをインストールおよび構成する方法(詳細はステップ1を参照)
- レジストラで構成されたドメインの接着レコードとネームサーバー設定
前のチュートリアルでは、3つのサブドメインが1つのPowerDNSサーバーを指していました。 これらのサブドメインの1つを使用して、スレーブサーバーをポイントします。 この例では、マスターサーバーIPは次のようになります。 111.111.111.111
、およびスレーブサーバーIPは 222.222.222.222
.
それに応じて、プロバイダーで接着剤レコードを更新する必要があります。 以下の情報をガイドとして使用してください。 DNSレコードの構成の詳細については、前のPowerDNSチュートリアルを参照してください。
- hostmaster.example-dns.com
111.111.111.111
(マスターサーバー) - ns1.example-dns.com
111.111.111.111
(マスターサーバー) - ns2.example-dns.com
222.222.222.222
(スレーブサーバー)
ネームサーバー自体に使用されるドメインについては、レジストラでグルーレコードとSOAレコードの両方を設定する必要があることに注意してください。 一方、カスタムネームサーバーでゾーンファイルをホストする他のドメインのSOAレコードのみが必要です。
ステップ1—両方のサーバーにPowerDNSをインストールする
まず、2つの機能するPowerDNSサーバーが必要です。 1台のサーバーがマスターサーバーになり、2台目のサーバーがスレーブサーバーになります。
まだ行っていない場合は、前のチュートリアル Ubuntu14.04でMariaDBバックエンドを使用してPowerDNSをインストールおよび構成する方法に従ってください。
マスターサーバーの完全なチュートリアルに従う必要があります。
セカンダリサーバーにPoweradminは必要ないため、スレーブサーバーで手順1〜7を実行できます。
2つの機能するPowerDNSサーバーがあり、そのうちの少なくとも1つがPoweradminを実行している場合は、次の手順に進むことができます。
手順2—マスターサーバーを構成する( ns1.example-dns.com )
これで、マスターPowerDNSサーバーを構成する準備が整いました。
これは、Poweradminがインストールされているサーバーである必要があり、プライマリDNSサーバーと見なされます。 Poweradminが両方のサーバーにインストールされている場合は、どちらか一方を使用できます。 この例に従っている場合、これはns1.example-dns.comである必要があります。
元の構成ファイルをバックアップします。
- cd /etc/powerdns
- sudo mv pdns.conf pdns.conf.orig
新しい構成ファイルを作成します。
- sudo nano pdns.conf
以下の詳細は、単一のスレーブサーバーを使用する標準のマスターサーバー構成に関するものです。 スレーブサーバーのIPアドレスを入力して、このマスターサーバーと通信できるようにします。 以下の独自のスレーブサーバーのIPアドレスに置き換えることを忘れないでください。
注:/ 32は単一のIPサブネットであり、この構成に必要です。
allow-recursion=0.0.0.0/0
allow-axfr-ips=222.222.222.222/32
config-dir=/etc/powerdns
daemon=yes
disable-axfr=no
guardian=yes
local-address=0.0.0.0
local-port=53
log-dns-details=on
log-failed-updates=on
loglevel=3
module-dir=/usr/lib/powerdns
master=yes
slave=no
setgid=pdns
setuid=pdns
socket-dir=/var/run
version-string=powerdns
include-dir=/etc/powerdns/pdns.d
変更を有効にするには、PowerDNSサービスを再起動します。
- sudo service pdns restart
手順3—スレーブサーバーを構成する( ns2.example-dns.com )
これで、スレーブサーバーを構成する準備が整いました。 このサーバーは、構成したマスターサーバーからDNSゾーンを複製します。 例に従っている場合、これはns2.example-dns.comである必要があります。
元の構成ファイルをバックアップします。
- cd /etc/powerdns
- sudo mv pdns.conf pdns.conf.orig
新しい構成ファイルを作成します。
- sudo nano pdns.conf
以下の詳細は、60秒の更新間隔を持つ標準のスレーブサーバー構成に関するものです。 構成を正確にコピーできます。
allow-recursion=0.0.0.0/0
config-dir=/etc/powerdns
daemon=yes
disable-axfr=yes
guardian=yes
local-address=0.0.0.0
local-port=53
log-dns-details=on
log-failed-updates=on
loglevel=3
module-dir=/usr/lib/powerdns
master=no
slave=yes
slave-cycle-interval=60
setgid=pdns
setuid=pdns
socket-dir=/var/run
version-string=powerdns
include-dir=/etc/powerdns/pdns.d
60秒ごとに、スレーブサーバーはマスターサーバーにゾーンの更新を問い合わせます。 通常、ゾーンが更新されると、マスターサーバーはそのゾーンに割り当てられたスレーブサーバーに通知を送信します。 ただし、ゾーンの更新中に接続の問題が発生した場合、これにより、更新が再びオンラインになったときに、最終的にスレーブサーバーに伝播されます。
次に、PowerDNSにマスターサーバーとの通信方法を指示する必要があります。
前のチュートリアルで作成したPowerDNSのユーザー名とパスワードを使用してMariaDBにログインします。 使用した例 powerdns_user
.
- mysql -u powerdns_user -p
プロンプトでパスワードを入力します。
OutputEnter password:
前のチュートリアルで構成したPowerDNSデータベースに変更します。 私たちの推薦は powerdns
.
- USE powerdns;
次に、新しい行を作成します supermasters
テーブル。 この行は、マスターサーバーのIP アドレスと、現在構成しているスレーブサーバーの完全修飾ドメイン名(FQDN)を指定します。
- insert into supermasters values ('111.111.111.111', 'ns2.example-dns.com', 'admin');
これで、MariaDBシェルを終了できます。
- exit;
変更を有効にするには、PowerDNSサービスを再起動します。
- sudo service pdns restart
ステップ4—マスター/スレーブ接続をテストする
この手順では、 ns1.example-dns.com がマスターサーバーを指し、ns2.example-dns.comがスレーブサーバーを指している必要があります。
グルーレコード、SOAレコード、およびAレコードがまだ伝播されていない場合は、オーバーライドを追加できます。 /etc/hosts
ファイル。 これは、両方のサーバーで実行する必要があります。
を開きます /etc/hosts
nanoを使用します。
- sudo nano /etc/hosts
エントリをに追加します /etc/hosts
ファイル。
111.111.111.111 ns1.example-dns.com
222.222.222.222 ns2.example-dns.com
2台のサーバーが通信できることを確認しましょう。
マスターサーバーから、両方のホスト名にpingを実行します。
- ping ns1.example-dns.com
結果は次のようになります。
Output64 bytes from ns1.example-dns.com (111.111.111.111): icmp_seq=1 ttl=64 time=0.061 ms
スレーブサーバーにpingを実行します。
- ping ns2.example-dns.com
期待される結果:
Output64 bytes from ns2.example-dns.com (222.222.222.222): icmp_seq=1 ttl=64 time=48.8 ms
次に、同じコマンドを使用して、スレーブサーバーから両方のホスト名にpingを実行します。 両方のサーバーから両方のサーバーにpingを実行できるようになったら、続行します。
ステップ5—レプリケーションを使用してDNSゾーンを構成する
両方のサーバーが適切に通信している場合、マスター/スレーブレプリケーションを使用して最初のDNSゾーンを作成する準備ができています。
訪問してマスターサーバーのPoweradminにログインします http://111.111.111.111/poweradmin/
ブラウザで。
以前に設定した管理者の資格情報を使用してログインします。
マスターゾーンの追加リンクをクリックして、新しいゾーンファイルを作成します。 これは、元の名前または新しいドメインtest.comでテストできます。
トップレベルドメイン名を入力し、ゾーンの追加ボタンをクリックしてゾーンを作成します。
ネームサーバーのNSエントリを作成します。
レプリケーションをテストするために、少なくとも1つのAレコードを作成します。
注:スレーブサーバーがゾーンのネームサーバーとしてリストされていない場合、ゾーンは複製されません。
数秒後、新しいエントリがスレーブサーバーに伝播するはずです。
ns1.example-dns.comに保存されているDNSレコードを使用してテストします dig
.
- dig test.com A @ns1.example-dns.com
以下のような結果で応答するはずです。
Outputroot@ns1:/etc/powerdns# dig test.com A @ns1.example-dns.com
; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> test.com A @ns1.example-dns.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44833
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;test.com. IN A
;; ANSWER SECTION:
test.com. 86400 IN A 104.131.174.138
;; Query time: 2 msec
;; SERVER: 45.55.217.94#53(45.55.217.94)
;; WHEN: Tue Apr 28 18:06:54 EDT 2015
;; MSG SIZE rcvd: 53
ns2.example-dns.comに保存されているDNSレコードを使用してテストします dig
.
- dig test.com A @ns2.example-dns.com
以下のような結果で応答するはずです。
Outputroot@ns1:/etc/powerdns# dig test.com A @ns2.example-dns.com
; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> test.com A @ns2.example-dns.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11530
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;test.com. IN A
;; ANSWER SECTION:
test.com. 86400 IN A 104.131.174.138
;; Query time: 3 msec
;; SERVER: 45.55.217.132#53(45.55.217.132)
;; WHEN: Tue Apr 28 18:08:06 EDT 2015
;; MSG SIZE rcvd: 53
test.com の設定は、ネームサーバーをns1.example-dns.comおよびns2.example-dns.comに設定した後にのみアクティブになることに注意してください。レジストラで。
結論
これで、マスター/スレーブ構成でMariaDBバックエンドを使用する2つの機能するPowerDNSサーバーができました。
マスターサーバー上のマスターゾーンに変更が加えられると、独自のNSレコードでリストされているすべてのスレーブサーバーに通知されます。
スレーブサーバーは、最近更新されていないレコードをマスターサーバーに自動的に照会し、DNSレコードがPowerDNSノード間で同期されていることを確認します。