CNAME for domain.tld failing

I'm sure this has been documented _somewhere_ but i've been unable to
find this, and every one i have talked to about has told me they just
use a wildcard, but this would also break some of my sites.

I want to point mirrorhosts.com to shared002.accesshost.us, and this
worked fine in nsd2, but after upgrading to nsd3 i get this error:

primary/vmp/mirrorhosts.com:15: error: CNAME and other data at the same name

if i was to use a wildcard such as:
* IN CNAME shared002.accesshost.us.

i would be unable to point example.com at shared002.accesshost.us. and
non explicitly specified names at shared003.accesshost.us

this is my current zone file for mirrorhosts.com:

$TTL 3600 ;authoritative data for mirrorhosts.com
@ IN SOA ns.o-line.net. hostmaster.o-line.net. (
        2010041401 ;Serial Number: YYYYMMDDxx
        3600 ;Refresh time
        600 ;Retry Time
        3600 ;Time
        600 ;Minimum TTL
        )
    IN NS ns1.accesshost.us.
    IN NS ns2.accesshost.us.
    IN NS ns3.accesshost.us.

    IN MX 10 shared001.accesshost.us.

    IN CNAME shared002.accesshost.us.
www IN CNAME shared002.accesshost.us.
webmail IN CNAME shared001.accesshost.us.
master IN A 208.94.246.114

;nodes
dist001 IN A 66.90.110.163
dist002 IN A 208.53.136.68

I'm sure this has been documented _somewhere_ but i've been unable to

"If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different. This rule also insures that a cached CNAME can be
used without checking with an authoritative server for other RR types."

RFC1034, section 3.6.2. What you are trying to do is illegal, and has
been so as long as DNS has existed.

HTH, HAND

Hi Bobb,

What're you're trying to do is not allowed by the DNS protocol. When you
define a CNAME record for a name, you're aliasing that name to another
name. Since you're aliasing it, you can't also have other data for that
name.

Regards,

Anand Buddhdev
RIPE NCC

Is there any way to tell nsd that i dont care about section 3.6.2 of
the RFC and to do what i say?

while technically wrong, it's worked as intended on many of my domains...
and it really simplifies moving a node from one DC to another...

I think you might want to use DNAME instead of CNAME?

http://www.rfc-archive.org/getrfc.php?rfc=2672

5.1. Organizational Renaming

    If an organization with domain name FROBOZZ.EXAMPLE became part of an
    organization with domain name ACME.EXAMPLE, it might ease transition
    by placing information such as this in its old zone.

        frobozz.example. DNAME frobozz-division.acme.example.

Paul

Hi Bobb,

Is there any way to tell nsd that i dont care about section 3.6.2 of
the RFC and to do what i say?

while technically wrong, it's worked as intended on many of my domains...
and it really simplifies moving a node from one DC to another...

What you want is indeed not allowed, specifically this one line in the
zonefile:
@ IN CNAME bla.bla.bla
You could comment that one line and keep the other CNAMEs below the zone
apex.

If you really want NSD to ignore section 3.6.2, use the attached patch.
I have not tested the patch, but in code it looks like it may do what
you want (return positive answers and otherwise the CNAME).

There is no support for this patch :slight_smile:

Best regards,
   Wouter

(attachments)

patch.ignore_1034_362_CNAME (481 Bytes)

* Bobb Voigt:

Is there any way to tell nsd that i dont care about section 3.6.2 of
the RFC and to do what i say?

If the parent zone is DNSSEC-signed, this will break resolution of
your zone by some resolvers. (It might even do so without DNSSEC, but
I haven't tried very hard.)

I haven't setup DNSSEC signing yet, but i did end up just using the IP
I found a few reason's that i _should_ do it the correct way

it just makes a LOT more work when i change where the shared boxes point...