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édentesRévision précédente
Prochaine révision
Révision précédente
informatique:linux:powerdns [2024/04/12 07:51] – [Base de données] benoitinformatique:linux:powerdns [2024/04/12 11:00] (Version actuelle) – [Installation] benoit
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 ===== ===== Configuration =====
  
 ==== Base de données ==== ==== Base de données ====
 +
 +Créer la base de données : 
   mysql   mysql
   create database powerdns;   create database powerdns;
   GRANT ALL PRIVILEGES on powerdns.* to 'pdns'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxx';   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.1712908310.txt.gz · Dernière modification : de benoit