Bonjour à tous !
Je viens vous demander votre aide parce que je ne trouve vraiment pas de solution à mon problème.
J'ai installé PDNS (powerdns) sur ma machine (linux debian lenny) et cela ne fonctionne pas du tout.
J'ai choisi PDNS parce qu'il permet de gérer les NDD de manière dynamique directement sur un SGBD ce qui en temps normal simplifie la vie![]()
Je vais donc vous exposer toutes les configurations établies, je suis sûr d'avoir loupé quelque chose, mais quoi ?
Pour info, je ne donne pas le NDD concerné, je vais utiliser ceci :
vhost.monndd.tld = 3w.domaine.com
Registar (gandi):
DNS1: ns1.monndd.tld
DNS2: ns2.monndd.tld
OVH :
DNS secondaire : monndd.tld ipfailover ns.kimsufi.com
Reverse ipv4 :
ipprincipale normal nommachine.monndd.tld
ipfailover normal xxx-xxx-xxx-xxx.kimsufi.com
Power DNS :
Fichier config (pdns.conf) :
Fichier config (recursor.conf) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 allow-recursion=127.0.0.1 cache-ttl=300 config-dir=/etc/powerdns daemon=yes disable-axfr=no guardian=yes launch=gmysql lazy-recursion=yes local-address=0.0.0.0 local-port=53 logging-facility=0 module-dir=/usr/lib/powerdns out-of-zone-additional-processing=yes query-cache-ttl=300 recursive-cache-ttl=150 recursor=127.0.0.1:54 setgid=pdns setuid=pdns socket-dir=/var/run version-string=powerdns include=/etc/powerdns/pdns.d
Fichier requetes (pdns.local)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 allow-from=127.0.0.1 dont-query= local-address=127.0.0.1 local-port=54 logging-facility=1 quiet=yes setgid=pdns setuid=pdns
Les ndd en bdd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 gmysql-socket=/var/run/mysqld/mysqld.sock gmysql-dbname=pdns_db gmysql-user=pdns_user gmysql-password=pdns_pass gmysql-basic-query=select content,ttl,prio,type,domain_id,name from record where type='%s' and name='%s' gmysql-id-query=select content,ttl,prio,type,domain_id,name from record where type='%s' and name='%s' and domain_id=%d gmysql-any-query=select content,ttl,prio,type,domain_id,name from record where name='%s' gmysql-any-id-query=select content,ttl,prio,type,domain_id,name from record where name='%s' and domain_id=%d gmysql-list-query=select content,ttl,prio,type,domain_id,name from record where domain_id=%d gmysql-master-zone-query=select master from domainDNS where name='%s' and type='SLAVE' gmysql-info-zone-query=select domain_id AS id,name,master,last_check,notified_serial,type from domainDNS where name='%s' gmysql-info-all-slaves-query=select domain_id AS id,name,master,last_check,type from domainDNS where type='SLAVE' gmysql-supermaster-query=select account from supermaster where ip='%s' and nameserver='%s' gmysql-insert-slave-query=insert into domainDNS (type,name,master,account) values('SLAVE','%s','%s','%s') gmysql-insert-record-query=insert into record (content,ttl,prio,type,domain_id,name) values ('%s',%d,%d,'%s',%d,'%s') gmysql-update-serial-query=update domainDNS set notified_serial=%d where id=%d gmysql-update-lastcheck-query=update domainDNS set notified_serial=%d where id=%d gmysql-info-all-master-query=select domain_id,name,master,last_check,notified_serial,type from domainDNS where type='MASTER' gmysql-delete-zone-query=delete from record where domain_id=%d gmysql-wildcard-query=select content,ttl,prio,type,domain_id,name from record where type='%s' and name like '%s' gmysql-wildcard-id-query=select content,ttl,prio,type,domain_id,name from record where type='%s' and name like '%s' and domain_id=%d gmysql-wildcard-any-query=select content,ttl,prio,type,domain_id,name from record where name like '%s' gmysql-wildcard-any-id-query=select content,ttl,prio,type,domain_id,name from record where name like '%s' and domain_id=%d
Table domain
id = 1, name = monndd.tld
Table domainDNS
domain_id = 1, master = NATIVE, last_check = NULL, type = , notified_serial = NULL, account = NULL
Table record
domain_id = 1, name = monndd.tld, type = SOA, content = ns1.monndd.tld. admin.monndd.tld, ttl = 86400, prio = NULL, change_date = NULL
domain_id = 1, name = monndd.tld, type = NS, content = ns1.monndd.tld, ttl = 86400, prio = NULL, change_date = NULL
domain_id = 1, name = monndd.tld, type = NS, content = ns2.monndd.tld, ttl = 86400, prio = NULL, change_date = NULL
domain_id = 1, name = monndd.tld, type = MX, content = mail.monndd.tld, ttl = 86400, prio = 25, change_date = NULL
domain_id = 1, name = monndd.tld, type = A, content = ip principale du serveur, ttl = 120, prio = NULL, change_date = NULL
domain_id = 1, name = www.monndd.tld, type = A, content = ip principale du serveur, ttl = 120, prio = NULL, change_date = NULL
Apache 2 :
Je met ce qui concerne apache 2 compte tenu qu'il est directement lié au fonctionnement des ndd & vhosts.
Fichier config (apache2.conf)
Fichier vhost (www)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 ServerRoot "/etc/apache2" LockFile /var/lock/apache2/accept.lock PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> DefaultType text/plain HostnameLookups Off ErrorLog /var/log/apache2/error.log LogLevel warn Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf Include /etc/apache2/httpd.conf Include /etc/apache2/ports.conf LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined Include /etc/apache2/conf.d/ Include /home/apache2/*.conf
Fichier vhost (admin)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <VirtualHost *:80> ServerName monndd.tld ServerAlias <a href="http://3w.monndd.tld" target="_blank">3w.monndd.tld</a> DocumentRoot /home/sites/0/www/ <Directory /home/sites/0/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride All </Directory> ErrorLog /var/log/apache2/0_www_error.log CustomLog /var/log/apache2/0_www_access.log combined </VirtualHost>
Complément d'infos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <VirtualHost *:443> ServerName admin.monndd.tld # Activation du support SSL GnuTLSEnable on GnuTLSPriorities NORMAL GnuTLSCertificateFile /home/sites/0/ssl/certs/admin.crt GnuTLSKeyFile /home/sites/0/ssl/private/admin.key <location /> AuthUserFile /home/sites/0/www/admin/ AuthGroupFile /dev/null AuthName "Restricted Area" AuthType Basic <Limit GET POST> require valid-user </Limit> </Location> DocumentRoot /home/sites/0/www/admin/ ErrorLog /var/log/apache2/0_admin_error.log CustomLog /var/log/apache2/0_admin_access.log combined </VirtualHost>
Pour installer mon serveur j'ai suivi ce tutoriel je l'ai relu maintes fois sans comprendre pourquoi PDNS ne fonctionne pas alors que tout le reste en plus de mes autres services fonctionnent nickel
Je trouve que la structure pour la bdd de PDNS est brouillons, je la travaillerai une fois que le système fonctionnera.
Les configurations contenues dans les fichiers .conf et .ini ne sont pas mises en entières pour économiser de la place, ce qui n'est pas affiché est sous forme de commentaire dans le fichier concerné.
Je cherche également un moyen pour que les fichiers de configurations des vhosts puissent être mis en place dans les dossiers des sites membres en amont du répertoire /www.
l'arborescence est /home/sites/membre_id/config/apache2/vhost.conf j'ai éssayé différentes méthodes d'inclusion qui m'ont toutes retournées un failed qui m'indique que les wildcards ne sont pas autorisés.
Les répertoires ftp des sites membres sont /home/sites/membre_id/www/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Include /home/sites/%1/config/apache2/*.conf Include /home/sites/*/config/apache2/*.conf
Merci d'avance pour votre aide, cordialement, Bloody-wave
Partager