PowerDNS Authoritative Server (Ubuntu): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 21: Zeile 21:
=== Datenbank ===
=== Datenbank ===


==== Datenbank anlegen ====
[[Datenbank für PowerDNS erstellen (Version 4.1.X)|Datenbank für PowerDNS erstellen]]
 
Datenbank ''powerdns'' erstellen - siehe [[MySQL#Neue_Datenbank_anlegen:|MySQL]]
 
 
Die Zugangsdaten für die Datenbank in der Datei
 
<pre>
sudo vi /etc/powerdns/pdns.conf
</pre>
 
am Ende hinzufügen:
 
<pre>
#################################
# database connection
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=powerdns
gmysql-dbname=powerdns
gmysql-password=<password>
</pre>
 
==== Tabellen anlegen ====
 
<pre>
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);
</pre>


=== Testdaten einfügen ===
=== Testdaten einfügen ===

Version vom 22. Januar 2020, 00:21 Uhr

Allgemein

https://www.powerdns.com/

Voraussetzungen

SQL-Datenbank => siehe MariaDB

Installation

Binaries

sudo apt-get -y install pdns-server pdns-backend-mysql

Links

https://doc.powerdns.com/authoritative/installation.html

Datenbank

Datenbank für PowerDNS erstellen

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

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

Links

https://doc.powerdns.com/authoritative/installation.html

https://www.linux.com/tutorials/how-install-powerdns-dns-server-ubuntu/

https://clouding.io/kb/en/how-to-install-powerdns-on-ubuntu-18-04/

https://www.debacher.de/wiki/Mein_eigenes_DynDNS

Konfiguration

Master / Slave

https://www.claudiokuenzler.com/blog/844/powerdns-master-slave-dns-replication-mysql-backend

Benutzeroberfläche

Poweradmin

Download

https://sourceforge.net/projects/poweradmin/

Links

https://www.poweradmin.org/

https://blog.jonaharagon.com/installing-powerdns-admin-on-ubuntu-18-04/

PowerDNS-Admin

Download

https://github.com/ngoduykhanh/PowerDNS-Admin

Links

https://blog.jonaharagon.com/installing-powerdns-admin-on-ubuntu-18-04/

Links allgemein

[https://github.com/PowerDNS/pdns/wiki/WebFrontends https://github.com/PowerDNS/pdns/wiki/WebFrontend


Zurück zu Domain selbst verwalten