Hi Azzam,
thank you for very detailed and perfect description of what you do :)
Could you please focus on SOA serial numbers? In the section "Steps I use to create zones", you have the serial 2018070410 on both master and slave, which would effectively prevent the transfer. Please avoid having different zone versions with the same serial. However, in the section "Problems", you have already 2018070411 at the master, which makes me more puzzled.
Anyway, you shall check the logs on both master and slave to see what is going on (the logs are in syslog according to our conf). You would see there all the notifies sent by the master and recvd by the slave, all the transfer attempts and reasons why they gave up, and also your knotc commands. Everything with timestamps. I hope it will be clear to you immediately.
Don't hestitate to write again if still clueless,
Libor
Setting up slave zone (slave DNS server)
I’ve asked the previous question Setting up slave zone (slave DNS server).
And I’ve followed Libor Peltan’s advice to also configure the zone in the slave
side. But It still didn’t work for me.Config
knot.conf in master server
# This is a sample of a minimal configuration file for Knot DNS. # See knot.conf(5) or refer to the server documentation. server: rundir: "/run/knot" user: knot:knot listen: [ 127.0.0.1@53, ::1@53 ] log: - target: syslog any: info database: storage: "/var/lib/knot" remote: - id: slave1 address: 111.11.11.111@53 acl: - id: slave1_acl address: 111.11.11.111 action: transfer template: - id: default storage: "/var/lib/knot" file: "%s.zone" zone: # # Master zone # - domain: example.com # notify: slave # acl: acl_slave # # Slave zone # - domain: example.net # master: master # acl: acl_master
knot.conf in my slave server
# This is a sample of a minimal configuration file for Knot DNS. # See knot.conf(5) or refer to the server documentation. server: rundir: "/run/knot" user: knot:knot listen: [ 127.0.0.1@53, ::1@53 ] log: - target: syslog any: info database: storage: "/var/lib/knot" remote: - id: master1 address: 222.22.22.222@53 acl: - id: master1_acl address: 222.22.22.2222 action: notify template: - id: default storage: "/var/lib/knot" file: "%s.zone" zone: # # Master zone # - domain: example.com # notify: slave # acl: acl_slave # # Slave zone # - domain: example.net # master: master # acl: acl_master
conf-read result
conf-read in master server
[root@knot-master-1 centos]# knotc conf-read server.rundir = /run/knot server.user = knot:knot server.listen = 127.0.0.1@53 ::1@53 log.target = syslog log[syslog].any = info database.storage = /var/lib/knot acl.id = slave1_acl acl[slave1_acl].address = 222.22.22.222 acl[slave1_acl].action = transfer remote.id = slave1 remote[slave1].address = 222.22.22.222@53 template.id = default template[default].storage = /var/lib/knot template[default].file = %s.zone zone.domain = namadomain.com. zone[namadomain.com.].file = namadomain.com.zone zone[namadomain.com.].notify = slave1 zone[namadomain.com.].acl = slave1_acl
conf-read in slave server
[root@knot-slave-1 centos]# knotc conf-read server.rundir = /run/knot server.user = knot:knot server.listen = 127.0.0.1@53 ::1@53 log.target = syslog log[syslog].any = info database.storage = /var/lib/knot acl.id = master1_acl acl[master1_acl].address = 111.11.11.111 acl[master1_acl].action = notify remote.id = master1 remote[master1].address = 111.11.11.111@53 template.id = default template[default].storage = /var/lib/knot template[default].file = %s.zone zone.domain = namadomain.com. zone[namadomain.com.].master = master1 zone[namadomain.com.].acl = master1_acl
Zone Read
zone-read in master server
[root@knot-master-1 centos]# knotc zone-read -- [namadomain.com.] namadomain.com. 86400 TXT "hello" [namadomain.com.] namadomain.com. 86400 SOA ns1.biz.net.id. hostmaster.biz.net.id. 2018070411 3600 3600 604800 38400
zone-read in slave server
[root@knot-slave-1 centos]# knotc zone-read -- [namadomain.com.] namadomain.com. 86400 SOA ns1.biz.net.id. hostmaster.biz.net.id. 2018070410 3600 3600 604800 38400
Steps I use to create a zone
in master server
knotc conf-begin knotc conf-set 'zone[namadomain.com]' knotc conf-set 'zone[namadomain.com].file' 'namadomain.com.zone' knotc conf-set 'zone[namadomain.com].notify' 'slave1' knotc conf-set 'zone[namadomain.com].acl' 'slave1_acl' knotc conf-commit
knotc zone-begin namadomain.com knotc zone-set namadomain.com. @ 86400 SOA ns1.biz.net.id. hostmaster.biz.net.id. 2018070410 3600 3600 604800 38400 knotc zone-set namadomain.com. @ 86400 TXT "hello" knotc zone-commit namadomain.com
in slave server
knotc conf-begin knotc conf-set 'zone[namadomain.com]' knotc conf-set 'zone[namadomain.com].master' 'master1' knotc conf-set 'zone[namadomain.com].acl' 'master1_acl' knotc conf-commit
knotc zone-begin namadomain.com knotc zone-set namadomain.com. @ 86400 SOA ns1.biz.net.id. hostmaster.biz.net.id. 2018070410 3600 3600 604800 38400 knotc zone-commit namadomain.com
Problems
If we look closely. I’ve crated the configuration of
namadomain.com
in
both master and slave servers. Also I’ve created the SOA record of of
namadomain.com
in both master and slave servers. But I only createfile
config in master server andTXT
record in master server (to test if AXFR zone transfer worked).Unfortunately, the
file
config and theTXT
record is not created by slave,
even though I’ve waited for more than hour (1 day actually). Am I missing
something here? (I never put the zone directly inzone:
section of knot.conf,
I always use knotc since I will use libknot control.py to manage zones with our
app)Also am I able to see if the knot in master emit the transfer ‘signal’ and check
if knot in slave receive that signal? So It will make me easier to debug.I’ve tried to trigger
knotc zone-notify namadomain.com
in master side,
andknotc zone-retransfer namadomain.com
in slave side. But nothing
changed.
[root@knot-master-1 centos]# knotc zone-notify namadomain.com OK [root@knot-master-1 centos]# knotc zone-read -- [namadomain.com.] namadomain.com. 86400 TXT "hello" [namadomain.com.] namadomain.com. 86400 SOA ns1.biz.net.id. hostmaster.biz.net.id. 2018070411 3600 3600 604800 38400
[root@knot-slave-1 centos]# knotc zone-retransfer namadomain.com OK [root@knot-slave-1 centos]# knotc zone-read -- [namadomain.com.] namadomain.com. 86400 SOA ns1.biz.net.id. hostmaster.biz.net.id. 2018070410 3600 3600 604800 38400
Machine
# knotc --version knotc (Knot DNS), version 2.9.1 OS: CentOS 7.5
Thank you in advance.