Duplicate records?

Chris Buxton clists at buxtonfamily.us
Fri Dec 21 17:59:53 UTC 2012


On Dec 21, 2012, at 8:45 AM, Marek Kozlowski wrote:
> As I can see BIND allows duplicate A:
> 
> pikus    IN A 192.168.1.1
> pikus    IN A 192.168.1.2

Those aren't duplicates. They are a record set of two records. If they had the same data, we would call them duplicates.

A record set is a set of records that all have the same name, class, and type. Also called an rrset, short for "resource record set".

> and PTR:
> 
> 192.168.1.1.    IN PTR pikus.somedomain.com.
> 192.168.1.1.    IN PTR filemon.somedomain.com.

Again, an rrset of PTR records.

> and disallows duplicate CNAMEs in the same way.

CNAME is a singleton type. Each rrset of type CNAME must have exactly one record, no more. Furthermore, a CNAME record cannot coexist with any other record type of the same name, except for a couple of DNSSEC record types (RRSIG and NSEC).

> For A and PTR both
> records are returned. My questions are:
> 
> 1. Is using duplicate A and PTR a standard (RFC...?) supported by all
> named implementations?

Yes.

> 2. Is using this duplicate A / PTR a good practice?

That depends on the use case. Multiple PTR records in an rrset is typically a bad idea (won't achieve the desired effect), but that is not always the case. Putting multiple A records in an rrset is common.

> 3. If A can be duplicated and CNAME cannot -- what's the reason for
> using CNAMEs (A-s are better).

A CNAME record creates an alias. If the target of that alias changes (gets a new address, gets a new MX record, or whatever), the alias need not change to gain the same benefit. Deciding when to use a CNAME record in place of one or more other records is a matter of taste, management tools, and use cases.

Chris Buxton
BlueCat Networks


More information about the bind-users mailing list