'rec_control reload-zones' command ignores 'export-etc-hosts=off' and imports zones based on /etc/hosts #225

Closed
Habbie opened this Issue Apr 26, 2013 · 1 comment

Projects

None yet

1 participant

@Habbie
Member
Habbie commented Apr 26, 2013

Firstly I have populated /etc/hosts with a dummy record and restarted pdns-recursor without explictly disabling export-etc-hosts; however it seems the default value is honoured from a clean start:


[root@cac01 ~]# grep test.example.com /etc/hosts
192.0.2.1       test.example.com

[root@cac01 ~]# grep "export-etc-hosts" /etc/pdns-recursor/recursor.conf 
# export-etc-hosts      If we should serve up contents from /etc/hosts
# export-etc-hosts=off

[root@cac01 ~]# service pdns-recursor restart
Stopping pdns-recursor:                                    [  OK  ]
Starting pdns-recursor:                                    [  OK  ]

[root@cac01 ~]# dig @127.0.0.1 test.example.com

; <<>> DiG 9.3.4-P1 <<>> @127.0.0.1 test.example.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61632
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;test.example.com.              IN      A

;; AUTHORITY SECTION:
example.com.            3498    IN      SOA     dns1.icann.org. hostmaster.icann.org. 2007051703 7200 3600 1209600 86400

;; Query time: 7 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 23 18:09:12 2009
;; MSG SIZE  rcvd: 95

But when we issue 'rec_control reload-zones it seems to ignore the default value and inserts the contents of /etc/hosts:


[root@cac01 ~]# grep test.example.com /etc/hosts
192.0.2.1       test.example.com

[root@cac01 ~]# grep "export-etc-hosts" /etc/pdns-recursor/recursor.conf 
# export-etc-hosts      If we should serve up contents from /etc/hosts
# export-etc-hosts=off

[root@cac01 ~]# rec_control reload-zones
ok

[root@cac01 ~]# tail -f /var/log/pdns 
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Reloading zones, purging data from cache
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Inserting forward zone 'localhost.localdomain.' based on hosts file
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Inserting forward zone 'localhost.' based on hosts file
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Inserting reverse zone '1.0.0.127.in-addr.arpa.' based on hosts file
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Inserting forward zone 'test.example.com.' based on hosts file
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Inserting reverse zone '1.2.0.192.in-addr.arpa.' based on hosts file
Feb 23 18:25:40 cac01 pdns_recursor[5927]: Inserting rfc 1918 private space zones


[root@cac01 ~]# dig @127.0.0.1 test.example.com

; <<>> DiG 9.3.4-P1 <<>> @127.0.0.1 test.example.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32722
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.example.com.              IN      A

;; ANSWER SECTION:
test.example.com.       86400   IN      A       192.0.2.1

;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 23 18:27:17 2009
;; MSG SIZE  rcvd: 50

Then if we explicetly set the export-etc-hosts to off then repeat the above it seems to honour it:


[root@cac01 ~]# grep test.example.com /etc/hosts
192.0.2.1       test.example.com

[root@cac01 ~]# grep "export-etc-hosts" /etc/pdns-recursor/recursor.conf 
# export-etc-hosts      If we should serve up contents from /etc/hosts
export-etc-hosts=off

[root@cac01 ~]# service pdns-recursor restart
Stopping pdns-recursor:                                    [  OK  ]
Starting pdns-recursor:                                    [  OK  ]

[root@cac01 ~]# dig @8127.0.0.1 test.example.com

; <<>> DiG 9.3.4-P1 <<>> @127.0.0.1 test.example.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 52900
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;test.example.com.              IN      A

;; AUTHORITY SECTION:
example.com.            3586    IN      SOA     dns1.icann.org. hostmaster.icann.org. 2007051703 7200 3600 1209600 86400

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 23 18:32:22 2009
;; MSG SIZE  rcvd: 95


[root@cac01 ~]# rec_control reload-zones
ok

[root@cac01 ~]# tail -f /var/log/pdns
Feb 23 18:33:39 cac01 pdns_recursor[5966]: Reloading zones, purging data from cache
Feb 23 18:33:39 cac01 pdns_recursor[5966]: Inserting rfc 1918 private space zones

[root@cac01 ~]# dig @127.0.0.1 test.example.com

; <<>> DiG 9.3.4-P1 <<>> @127.0.0.1 test.example.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20906
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;test.example.com.              IN      A

;; AUTHORITY SECTION:
example.com.            86400   IN      SOA     dns1.icann.org. hostmaster.icann.org. 2007051703 7200 3600 1209600 86400

;; Query time: 18 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 23 18:34:23 2009
;; MSG SIZE  rcvd: 95


So at least there is a work arround; however while I havent looked through the code to see if I can see where its going wrong, hopefully it can be reproduced and resolved :)

Paul Cairney

@Habbie Habbie was assigned Apr 26, 2013
@Habbie Habbie closed this Apr 26, 2013
@Habbie
Member
Habbie commented Apr 26, 2013

Author: ahu
Fixed in revision 1348, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment