Outils pour utilisateurs

Outils du site


informatique:linux:powerdns

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:linux:powerdns [2024/04/12 09:49]
benoit [Configuration]
informatique:linux:powerdns [2024/04/12 13:00] (Version actuelle)
benoit [Installation]
Ligne 11: Ligne 11:
 Installation :  Installation : 
  
-  apt-get install pdns-server pdns-tools pdns-backend-mysql ​pdns-recursor+  apt-get install pdns-server ​pdns-recursor dnsdist ​pdns-tools pdns-backend-mysql ​mariadb-client mariadb-server lua-sql-mysql
  
 +Description des composants installés : 
 +  * **pdns-server** : Serveur DNS privé
 +  * **pdns-recursor** : Serveur DNS pour les requêtes recursives vers internet
 +  * **dnsdist** : Loadbalancer DNS pouvant utiliser des ACL
 +  * **pdns-tools** : Utilitaire pour PowerDNS
 +  * **pdns-backend-mysql** : Module pour utiliser MariaDB en backend
 +  * **mariadb-client,​ mariadb-server** : Client et Serveur de base de données MariaDB
 +  * **lua-sql-mysql**
  
 + 
 +===== Configuration =====
 +
 +==== Base de données ====
 +
 +Créer la base de données : 
 +  mysql
 +  create database powerdns;
 +  GRANT ALL PRIVILEGES on powerdns.* to '​pdns'​@'​localhost'​ IDENTIFIED BY '​xxxxxxxxxxxx';​
 +  FLUSH PRIVILEGES;
 +  QUIT;
 +
 +Créer le fichier de structure de base de données : 
 +  vim schema_powerdns.sql
 +
 +Insérer le contenu suivant : 
 +  CREATE TABLE domains (
 +    id                    INT AUTO_INCREMENT,​
 +    name                  VARCHAR(255) NOT NULL,
 +    master ​               VARCHAR(128) DEFAULT NULL,
 +    last_check ​           INT DEFAULT NULL,
 +    type                  VARCHAR(8) NOT NULL,
 +    notified_serial ​      INT UNSIGNED DEFAULT NULL,
 +    account ​              ​VARCHAR(40) CHARACTER SET '​utf8'​ DEFAULT NULL,
 +    options ​              ​VARCHAR(64000) DEFAULT NULL,
 +    catalog ​              ​VARCHAR(255) DEFAULT NULL,
 +    PRIMARY KEY (id)
 +  ) Engine=InnoDB CHARACTER SET '​latin1';​
 +  ​
 +  CREATE UNIQUE INDEX name_index ON domains(name);​
 +  CREATE INDEX catalog_idx ON domains(catalog);​
 +  ​
 +  ​
 +  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,
 +    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,
 +    published ​            BOOL DEFAULT 1,
 +    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);
 +
 +==== PowerDNS ====
 +
 +Sauvegarde le fichier de conf par défaut, créer un nouveau et l'​éditer :
 +  mv /​etc/​powerdns/​pdns.conf /​etc/​powerdns/​pdns.conf.orig
 +  touch /​etc/​powerdns/​pdns.conf
 +  chown root:pdns /​etc/​powerdns/​pdns.conf
 +  vim /​etc/​powerdns/​pdns.conf
 +
 +Insérer le contenu suivant : 
 +  # Backend MySQL
 +  launch=gmysql
 +  # Listening IP
 +  local-address=127.0.0.1
 +  # Listening IP (pdns-recursor will forward DNS queries du this port)
 +  local-port=54
 +  # MariaDB Backend Config
 +  gmysql-host=127.0.0.1
 +  gmysql-port=3306
 +  gmysql-dbname=powerdns
 +  gmysql-user=pdns
 +  gmysql-group=client
 +  gmysql-password=eiur546fTEd6gEaFr
 +  gmysql-dnssec=no
 +  gmysql-innodb-read-committed=yes
 +  gmysql-timeout=10
 +
 +===== pdnsutil =====
 +
 +==== Zone/​Domaine ====
 +
 +Créer une zone : 
 +  pdnsutil create-zone domain.local
 +
 +Ajouter un enregistrement Type A :   
 +  pdnsutil add-record domain.local www A 60 127.0.0.1
informatique/linux/powerdns.1712908160.txt.gz · Dernière modification: 2024/04/12 09:49 par benoit