"multiple RRs of singleon type"

Here is an example syslog error message we received on a BIND 9.x nameserver when trying to perform a zone transfer from a master zone with "multiple RRs of singleton type."

Mar 18 15:36:23 host named[748]: [ID 866145 daemon.error] transfer of 'zone/IN' from name_server#53: failed while receiving responses: multiple RRs of singleton type

This error means that zone on name_server contains more than one SOA record (unlikely) or multiple CNAME records for a given name (likely). Either situation is in volation of DNS RFC's.

BIND 9.x servers cannot be forced to transfer a zone with these errors. BIND 8.x offers a multiple-cnames directive that allows multiple CNAME records for a given name.

To fix the problem, first confirm that there is not more than one SOA record for the zone:
dig @name_server zone axfr | grep SOA

If only one SOA record is returned, the problem is likely multiple CNAME records for a given name.

Generate a list of multiple CNAMEs:
for CNAME in `dig @name_server zone axfr | grep CNAME | awk '{print $1}' | sort | uniq -d`
do
dig @name_server zone axfr | grep "^$CNAME"
done

An easy way to identify multiple CNAMES is with the h2n utility:
h2n -V zone 2>&1 | grep "already exists as a CNAME"

Example:
host.example.com.     14400   IN      CNAME   host1.example.com.
host.example.com.     14400   IN      CNAME   host2.example.com.

These multiple CNAME records can be rewritten as multiple A records (using IP addresses instead of hostnames) to achieve "load-balancing" and RFC compliance:

host.example.com.     14400   IN      A   IP_address_of_host1.example.com.
host.example.com.     14400   IN      A   IP_address_of_host2.example.com.

The records have to be modified on name_server's zone file in order to fix the "multiple RRs of singleton type" errors.

Back to brandonhutchinson.com.
Last modified: 09/20/2004