Datenbank für PowerDNS erstellen (Version 4.1.X): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „== Datenbank anlegen == Datenbank ''powerdns'' erstellen - siehe MySQL Die Zugangsdaten für die Datenbank in der Datei <…“) |
|||
Zeile 115: | Zeile 115: | ||
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm); | CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm); | ||
</pre> | </pre> | ||
== Testen == | |||
=== Testdaten einfügen === | |||
<pre> | |||
# mysql pdnstest | |||
mysql> INSERT INTO domains (name, type) values ('example.com', 'NATIVE'); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'example.com','localhost admin.example.com 1 10380 3600 604800 3600','SOA',86400,NULL); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'example.com','dns-us1.powerdns.net','NS',86400,NULL); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'example.com','dns-eu1.powerdns.net','NS',86400,NULL); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'www.example.com','192.0.2.10','A',120,NULL); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'mail.example.com','192.0.2.12','A',120,NULL); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'localhost.example.com','127.0.0.1','A',120,NULL); | |||
INSERT INTO records (domain_id, name, content, type,ttl,prio) | |||
VALUES (1,'example.com','mail.example.com','MX',120,25); | |||
</pre> | |||
=== Server starten === | |||
<pre> | |||
sudo /usr/sbin/pdns_server --daemon=no --guardian=no --loglevel=9 | |||
</pre> | |||
=== Testabfragen === | |||
<pre> | |||
pi@server1:~ $ dig +short www.example.com @127.0.0.1 | |||
192.0.2.10 | |||
pi@server1:~ $ dig +short example.com MX @127.0.0.1 | |||
25 mail.example.com. | |||
</pre> | |||
== Links == | |||
[https://doc.powerdns.com/authoritative/guides/basic-database.html https://doc.powerdns.com/authoritative/guides/basic-database.html] | |||
[https://github.com/PowerDNS/pdns/blob/rel/auth-4.1.x/modules/gmysqlbackend/schema.mysql.sql https://github.com/PowerDNS/pdns/blob/rel/auth-4.1.x/modules/gmysqlbackend/schema.mysql.sql] |
Version vom 22. Januar 2020, 00:25 Uhr
Datenbank anlegen
Datenbank powerdns erstellen - siehe MySQL
Die Zugangsdaten für die Datenbank in der Datei
sudo vi /etc/powerdns/pdns.conf
am Ende hinzufügen:
################################# # database connection launch=gmysql gmysql-host=127.0.0.1 gmysql-user=powerdns gmysql-dbname=powerdns gmysql-password=<password>
Tabellen anlegen
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) CHARACTER SET 'utf8' DEFAULT NULL, PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE UNIQUE INDEX name_index ON domains(name); CREATE TABLE records ( id BIGINT 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 CHARACTER SET 'latin1'; CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX ordername ON records (ordername); CREATE TABLE supermasters ( ip VARCHAR(64) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) CHARACTER SET 'utf8' NOT NULL, PRIMARY KEY (ip, nameserver) ) Engine=InnoDB CHARACTER SET 'latin1'; 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) CHARACTER SET 'utf8' DEFAULT NULL, comment TEXT CHARACTER SET 'utf8' NOT NULL, PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; 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 CHARACTER SET 'latin1'; 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 CHARACTER SET 'latin1'; 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 CHARACTER SET 'latin1'; CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
Testen
Testdaten einfügen
# mysql pdnstest mysql> INSERT INTO domains (name, type) values ('example.com', 'NATIVE'); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'example.com','localhost admin.example.com 1 10380 3600 604800 3600','SOA',86400,NULL); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'example.com','dns-us1.powerdns.net','NS',86400,NULL); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'example.com','dns-eu1.powerdns.net','NS',86400,NULL); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'www.example.com','192.0.2.10','A',120,NULL); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'mail.example.com','192.0.2.12','A',120,NULL); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'localhost.example.com','127.0.0.1','A',120,NULL); INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'example.com','mail.example.com','MX',120,25);
Server starten
sudo /usr/sbin/pdns_server --daemon=no --guardian=no --loglevel=9
Testabfragen
pi@server1:~ $ dig +short www.example.com @127.0.0.1 192.0.2.10 pi@server1:~ $ dig +short example.com MX @127.0.0.1 25 mail.example.com.
Links
https://doc.powerdns.com/authoritative/guides/basic-database.html
https://github.com/PowerDNS/pdns/blob/rel/auth-4.1.x/modules/gmysqlbackend/schema.mysql.sql