Subject: Wild Card DNAMEs

From: Edward Lewis <[email-masked]>
Date: Fri, 15 Apr 2005 10:02:31 -0400

Once again with the wild cards...

 From RFC 2672 which proposes changes to 1034/4.3.2/Step 3 like this...

#      c. If at some label, a match is impossible (i.e., the
#         corresponding label does not exist), look to see whether the
#         last label matched has a DNAME record.

... text on what to do for an exact DNAME application...

#         If there was no DNAME record, look to see if the "*" label
#         exists.

The impact of "* DNAME" would only be felt in two ways.

One is if the QNAME had a "*" in the middle of it, running across the 
* DNAME along the way.   In this case, it's not a wild card 
(synthesis) situation.

The other way is if the QTYPE is "DNAME" or "ANY" and the QNAME leads 
to a source of synthesis.

Thinking of the latter I have to question the elided text from the quote above:

#         If a DNAME record exists at that point, copy that record into
#         the answer section.  If substitution of its <target> for its
#         <owner> in QNAME would overflow the legal size for a <domain-
#         name>, set RCODE to YXDOMAIN [DNSUPD] and exit; otherwise
#         perform the substitution and continue.  If the query was not
#         extended [EDNS0] with a Version indicating understanding of the
#         DNAME record, the server SHOULD synthesize a CNAME record as
#         described above and include it in the answer section.  Go back
#         to step 1.

What if the QTYPE was DNAME?  Why continue?  Why include the CNAME if 
it's the DNAME I want?

Once again, I find so many holes with RFC 2672...how do you clarify 
it?  (Yes, I know that DNAME's "work."  But I am beginning to think 
that there are too many rough edges in the definition - what makes 
rough edges acceptable here but not in other applications?)

-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Edward Lewis                                                +1-571-434-5468
NeuStar

If you knew what I was thinking, you'd understand what I was saying.

--
to unsubscribe send a message to [email-masked] with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/namedroppers/>

---

From: Edward Lewis <[email-masked]>
Date: Fri, 15 Apr 2005 14:25:16 -0400

At 21:07 +0300 4/15/05, Andreas Gustafsson wrote:
>Could you please define the term "leads to", or give an example of a
>query and some zone data illustrating this case?

"Leads to" means - there is no exact match, and results in looking to 
the domain *.<closest-encloser> for a possible answer.

For zone:

example.      900 IN SOA     ns1.example. edlewis.example. 1 1200 300 3600 900
example.      900 IN NS      ns1.example.
*.example.    900 IN DNAME   sub.example.
bus.example.  900 IN NS      ns1.example.
sub.example.  900 IN NS      ns1.example.

Three digs at a BIND 9.3.1 server (authoritative for the zones).

; <<>> DiG 9.3.1 <<>> @127.0.0.1 +norec www.letter.example. a
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31041
;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.letter.example.            IN      A

;; AUTHORITY SECTION:
example.                900     IN      SOA     ns1.example. ...

; <<>> DiG 9.3.1 <<>> @127.0.0.1 +norec www.letter.example. any
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41054
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.letter.example.            IN      ANY

;; ANSWER SECTION:
www.letter.example.     900     IN      DNAME   sub.example.

;; AUTHORITY SECTION:
example.                900     IN      NS      ns1.example.

; <<>> DiG 9.3.1 <<>> @127.0.0.1 +norec www.letter.example. dname
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4520
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.letter.example.            IN      DNAME

;; ANSWER SECTION:
www.letter.example.     900     IN      DNAME   sub.example.

;; AUTHORITY SECTION:
example.                900     IN      NS      ns1.example.