저는 최신 CentOS 7 x64에서 PowerDNS를 실행하는 작업을 해왔습니다.
저는 Apache를 사용하고 있으므로 Nginx를 제외한 모든 항목에 대해 이 가이드를 따르세요.https://www.rosehosting.com/blog/install-powerdns-and-on-a-centos-7-vps/
방화벽이 비활성화되었습니다. SELinux는 모니터링 전용으로 설정되어 있습니다.
아래는 내 데이터베이스입니다. PowerDNS의 웹 관리는 제대로 작동합니다.
dig
하지만 어떤 시도에서도 서비스 실패가 발생합니다. 아래의 데이터베이스 출력과 pdns conf를 참조하세요.
문제를 파악하도록 도와주세요!
나는 잘 작동하는 BIND를 사용하고 있지만 데이터베이스 기반 DNS 시스템을 원하므로 PDNS를 작동시키려고 노력하고 있습니다. netstat 출력에서 볼 수 있듯이 이 테스트 중에 BIND가 정지되었습니다.
버전:
# pdns_control version
3.4.7
데이터베이스 정보:
MariaDB [powerdns]> show tables;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| domains |
| migrations |
| perm_items |
| perm_templ |
| perm_templ_items |
| records |
| records_zone_templ |
| supermasters |
| users |
| zone_templ |
| zone_templ_records |
| zones |
+--------------------+
MariaDB [powerdns]> select * from domains;
+----+----------------------+--------+------------+--------+-----------------+---------+
| id | name | master | last_check | type | notified_serial | account |
+----+----------------------+--------+------------+--------+-----------------+---------+
| 2 | example.com | NULL | NULL | MASTER | NULL | NULL |
+----+----------------------+--------+------------+--------+-----------------+---------+
MariaDB [powerdns]> select * from records;
+----+-----------+------------------+------+--------------------------------------------------------------------------+-------+------+-------------+
| id | domain_id | name | type | content | ttl | prio | change_date |
+----+-----------+------------------+------+--------------------------------------------------------------------------+-------+------+-------------+
| 5 | 2 | example.com | SOA | ns1.example.com [email protected] 2016012205 28800 7200 604800 86400 | 86400 | 0 | 1453430301 |
| 6 | 2 | example.com | A | | 86400 | 0 | 1453430985 |
| 7 | 2 | mail.example.com | A | 123.123.123.123 | 86400 | 0 | 1453430985 |
| 8 | 2 | ns1.example.com | A | 123.123.123.123 | 86400 | 0 | 1453430985 |
+----+-----------+------------------+------+--------------------------------------------------------------------------+-------+------+-------------+
모든 레코드 마이닝을 위한 DIG 출력:
# dig @127.0.0.1
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.1 <<>> @127.0.0.1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 3023
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1680
;; QUESTION SECTION:
;. IN NS
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jan 22 18:10:21 EST 2016
;; MSG SIZE rcvd: 28
PDNS 구성:
# nano /etc/pdns/pdns.conf:
setuid=pdns
setgid=pdns
launch=gmysql
gmysql-host=localhost
gmysql-user=powerdns
gmysql-password=lolololol
gmysql-dbname=powerdns
NETSTAT 출력:
# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:cslistener 0.0.0.0:* LISTEN 950/php-fpm: master
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 1783/mysqld
tcp 0 0 0.0.0.0:ndmp 0.0.0.0:* LISTEN 2561/perl
tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN 12283/pdns_server
tcp 0 0 0.0.0.0:8822 0.0.0.0:* LISTEN 1233/sshd
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 1826/master
tcp6 0 0 [::]:http [::]:* LISTEN 900/httpd
tcp6 0 0 [::]:8821 [::]:* LISTEN 15532/vsftpd
tcp6 0 0 [::]:8822 [::]:* LISTEN 1233/sshd
tcp6 0 0 localhost:smtp [::]:* LISTEN 1826/master
# netstat -uap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:ndmp 0.0.0.0:* 2561/perl
udp 0 0 0.0.0.0:domain 0.0.0.0:* 12283/pdns_server
udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 1028/dhclient
udp 0 0 localhost:323 0.0.0.0:* 621/chronyd
udp 0 0 0.0.0.0:13651 0.0.0.0:* 1028/dhclient
udp6 0 0 localhost:323 [::]:* 621/chronyd
udp6 0 0 [::]:50691 [::]:* 1028/dhclient
답변1
로그를 보기 위해 syslog 서버를 설정했고 다음을 발견했습니다. Jan 23 18:15:09 s01 pdns[27536]: 백엔드 오류: GSQLBackend Lookup query:Failed to 실행 mysql_query, Maybe 연결이 끊어졌나요? 필드 목록의 "비활성화" 열
이로 인해 권장 데이터베이스 스키마가 잠재적으로 올바르지 않을 수 있습니다. 모든 테이블을 삭제하고 아래 두 페이지에서 MySQL 스키마의 일부를 가져온 다음 pdns 서비스를 다시 시작했는데 작동했습니다! https://github.com/poweradmin/poweradmin/blob/master/sql/poweradmin-mysql-db-struct.sql https://doc.powerdns.com/md/authoritative/installation/