0

PowerDNS 権威サーバーについて質問があります。PowerDNS Authoritative サーバーが最初から 4 つの場所にインストールされた 4 つの DNS サーバーがあります。バックエンドで MySQL と連携します。問題は次のとおりです。

  1. 新しいゾーンを追加するか、既存のゾーンを更新すると、エラーなしですべて正常に伝播しますが、1 つの DNS でインシデントとサービスの停止をテストすると、後でサービスを開始するときに、その間に追加したゾーンが伝播しません。問題はどこですか?

  2. 新しい DNS サーバーを追加することにした場合、どのゾーンも伝達されません。この問題を解決するにはどうすればよいですか?

一般的な質問ですが、災害や接続の問題が発生した後にゾーンを自動的に更新できない場合、powerDNS の利点は何ですか?

4

1 に答える 1

0

pdns docs でデータベースを作成しました。

データベース名powerdns.

CREATE TABLE domains (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255) NOT NULL,
  master                VARCHAR(128) DEFAULT NULL,
  last_check            INT DEFAULT NULL,
  type                  VARCHAR(6) NOT NULL,
  notified_serial       INT DEFAULT NULL,
  account               VARCHAR(40) DEFAULT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);


CREATE TABLE records (
  id                    INT AUTO_INCREMENT,
  domain_id             INT DEFAULT NULL,
  name                  VARCHAR(255) DEFAULT NULL,
  type                  VARCHAR(10) DEFAULT NULL,
  content               VARCHAR(64000) DEFAULT NULL,
  ttl                   INT DEFAULT NULL,
  prio                  INT DEFAULT NULL,
  change_date           INT DEFAULT NULL,
  disabled              TINYINT(1) DEFAULT 0,
  ordername             VARCHAR(255) BINARY DEFAULT NULL,
  auth                  TINYINT(1) DEFAULT 1,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);


CREATE TABLE supermasters (
  ip                    VARCHAR(64) NOT NULL,
  nameserver            VARCHAR(255) NOT NULL,
  account               VARCHAR(40) NOT NULL,
  PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;

CREATE TABLE comments (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  name                  VARCHAR(255) NOT NULL,
  type                  VARCHAR(10) NOT NULL,
  modified_at           INT NOT NULL,
  account               VARCHAR(40) NOT NULL,
  comment               VARCHAR(64000) NOT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);


CREATE TABLE domainmetadata (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  kind                  VARCHAR(32),
  content               TEXT,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);


CREATE TABLE cryptokeys (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  flags                 INT NOT NULL,
  active                BOOL,
  content               TEXT,
  PRIMARY KEY(id)
) Engine=InnoDB;

CREATE INDEX domainidindex ON cryptokeys(domain_id);

CREATE TABLE tsigkeys (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255),
  algorithm             VARCHAR(50),
  secret                VARCHAR(255),
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

ユーザーを作成し、データベースにすべての権限を与えます。

私はスーパーマスターに価値を置く('IP master", 'ns.slave', 'admin');

マスターサーバーの構成ファイル:

launch=gmysql
gmysql-host=localhost
gmysql-user=powerdns_user
gmysql-dbname=powerdns
gmysql-password=password

allow-recursion=0.0.0.0/0
allow-axfr-ips=IP_address_slave1/32
allow-axfr-ips=IP_address_slave2/32
allow-axfr-ips=IP_address_slave3/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
loglevel=7
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

スレーブの構成ファイル:

launch=gmysql
gmysql-host=localhost
gmysql-dbname=powerdns
gmysql-user=powerdns_user
gmysql-password=password

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
loglevel=7
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

ログに表示されるマスターにゾーンを追加すると、すべての伝播は問題なく、正しいです。しかし、スレーブ サーバーの 1 つでサービスを停止してゾーンを追加すると、アクティブなすべてのスレーブでログの伝播が見られます。スレーブのテスト (pdns の停止) で数分後に pdns を開始しても、何も起こりませんでした。そのゾーンのログに通知がありません。

于 2016-06-06T11:55:37.543 に答える