Репликация PowerDNS иногда не работает?
У меня есть вопрос о PowerDNS полномочный сервер. У меня есть четыре DNS-сервера с установленным сервером PowerDNS Authoritative с нуля в четырех местах. Они работают с MySQL в бэкэнде. Проблема в следующем:
Когда я добавляю новую зону или обновляю существующую зону, все распространяются нормально, без ошибок, но если я проверяю инцидент и останавливаю службу на одном DNS, позже, когда я запускаю службу, зона, которую я добавляю, тем временем не распространяется. Где проблема?
Если я решу добавить новый DNS-сервер, ни одна зона не будет размножена. Как я могу решить эту проблему?
Общий вопрос: в чем преимущество powerDNS, если он не может автоматически обновить зону после какой-либо аварии или проблемы с подключением?
1 ответ
Я создал базу данных по документам pdns.
имя базы данных 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
Когда я добавляю зону в мастер, я вижу в журнале, все распространение в порядке, и это правильно. Но если я остановлю службу на одном из подчиненных серверов и добавлю зону, я увижу в журнале распространение на всех активных подчиненных. Когда я запускаю pdns через несколько минут на тестировании (остановке pdns) рабов, ничего не происходит. Не нужно уведомлять в журнале для этой зоны.