Symptoms

DNS zone not transferred from Parallels Plesk Panel (master DNS) to POA (slave DNS) or some particular parameter is not being added/changed - for example value of SOA.

[root@POAnameserver1 ~]# dig domain.tld @POAnamesrverIP
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> domain.tld @POAnamesrverIP
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4801
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 5, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.tld.  IN  A

;; AUTHORITY SECTION:
...
...

While ask Plesk Panel directly the answer is correct:

[root@POAnameserver1 ~]# dig -t axfr domain.tld @PleskPanleIP
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> -t axfr domain.tld @PleskPanleIP
;; global options:  printcmd
domain.tld.   86400   IN  SOA POAnameserver1. info.domain.tld. 1383201773 10800 3600 604800 10800
domain.tld.   86400   IN  MX  10 mail.komne.ru.
domain.tld.   86400   IN  TXT "v=spf1 +a +mx -all"
domain.tld.   86400   IN  NS  POAnameserver1.
domain.tld.   86400   IN  NS  POAnameserver2.
domain.tld.   86400   IN  A   PleskPanleIP
subdomain.domain.tld. 86400   IN  A   PleskPanleIP
ftp.domain.tld.   86400   IN  CNAME   domain.tld.
ipv4.domain.tld.  86400   IN  A   PleskPanleIP
mail.domain.tld.  86400   IN  A   PleskPanleIP
webmail.domain.tld.   86400   IN  A   PleskPanleIP
*.webmail.domain.tld. 86400   IN  CNAME   domain.tld.
www.domain.tld.   86400   IN  CNAME   domain.tld.
domain.tld.   86400   IN  SOA POAnameserver1. info.domain.tld. 1383201773 10800 3600 604800 10800
;; Query time: 0 msec
;; SERVER: PleskPanleIP#53(PleskPanleIP)
;; WHEN: Thu Oct 31 14:42:19 2013
;; XFR size: 14 records (messages 1)

Cause

[root@POAnameserver1 ~]# grep domain.tld /var/named/run-root/var/pem_zones
[root@POAnameserver1 ~]#

Zone is not propagated to POA nameservers.

Also there is need to check iptables if connection to port 53 allowed on both servers is possible.

[root@POAnameserver1 ~]# telnet PleskPanelIP   53
[root@PleskPanelIP   ~]# telnet POAnameserver1 53

Resolution

If zone is not propagated to POA nameservers, use pem.syncNameServers API method to re-add zone to OA nameservers.

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>pem.syncNameServers</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>domain_name</name>
            <value><string>domain.tld</string></value>
          </member>
         </struct>
      </value>
    </param>
  </params>
</methodCall>
  1. Place content above in sync.xml file replacing domain.tld with actual domain name.

  2. Issue the following command from OA management node:

    curl -k -d@sync.xml http://localhost:8440
    
  3. Make sure that Update named POAnameserver1 task completes successfully
  4. Check that record appeared in pem_zones file

    [root@POAnameserver1 ~]# grep domain.tld /var/named/run-root/var/pem_zones
    zone "domain.tld." { type slave; masters { PleskPanelIP; }; notify yes; file "slave/domain.tld."; };
    

Internal content