2016-06-06 2 views
0

У меня вопрос о полномочном сервере PowerDNS. У меня есть четыре DNS-сервера с установленным PowerDNS Автономным сервером с нуля на четырех местах. Они работают с MySQL в бэкэнд. Проблема:Репликация PowerDNS иногда не работает?

  1. Когда я добавить новую зону или обновить существующую зону все распространяются нормально, без ошибок, но если я испытываю падающее и останавливая обслуживание на одном DNS, позже, когда я запуска службы, зону, добавить в то время не распространяются. Где проблема?

  2. Если я решил добавить новый DNS-сервер, ни одна зона не будет распространена. Как я могу решить эту проблему?

Общий вопрос: что является преимуществом powerDNS, если он не может автоматически обновлять зону после некоторой проблемы с бедствием или связностью?

+0

PowerDNS наиболее определенно может обновлять зоны после сбоев. В вашей настройке должно быть что-то не так. Тем не менее, вы дали почти нулевую информацию - пожалуйста, покажите конфигурацию, содержимое базы данных, лог-файлы вокруг проблемы и т. Д. – Habbie

ответ

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); 

Я создал пользователь и отдав все разрешения в базу данных.

я ставлю значение в supermaster ('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), ничего не происходит. Не сообщайте в журнал для этой зоны.

+0

Возможно, легкий вопрос. :) Как я могу начать ручную репликацию? Знает ли enyone? – Petar

 Смежные вопросы

  • Нет связанных вопросов^_^