draft-bellis-enum-send-n-00

Jim Reid <[email protected]>
Newsgroups gmane.ietf.enum
Message-ID <[email protected]>
On Apr 3, 2008, at 08:05, Duane wrote:
> If not ENUM, then where does this best fit?

IMO the issue of putting numbering plan information in the DNS is  
best solved with a new DNS RR type that's designed for that specific  
purpose and probably not with a NAPTR. So that probably means writing  
up something for the dnsext 2929bis process. How that hypothetical  
new RRtype could be used in e164.arpa is something that this WG could  
pick up.

However this draft is deeply flawed. There are many problems:

[1] It is simply unacceptable to say this NAPTR service type MUST NOT  
be used with a wildcard. This violates DNS fundamentals: all RRtypes  
are the same and the same semantics apply to them wrt wildcard  
processing and the likes. [Well, let's not go down the wildcard SOA  
and NS ratholes.] In fact it's worse than that because the  
restriction on whether a wildcard can be used or not depends on a  
*subtype* of an RRtype. This is very bad.

Although I am no fan of wildcard DNS labels, it makes no sense to say  
"wildcards are OK for this RRtype but not that RRtype". It's even  
worse to say "wildcards can be used for these NAPTR service types,  
but not for these other ones". It's also exceptionally bad protocol  
design to make that a requirement.

[2] The draft says nothing about how a client should behave when  
there are many of these proposed send-n (sub) service types and what  
they would mean. Suppose a lookup returns:

	.... NAPTR 10 10 "E2U+pstndata:send-n" !^.*$!pstndata:send-n/5-6!" .
	.... NAPTR 10 20 "E2U+pstndata:send-n" !^.*$!pstndata:send-n/3-9!" .
	.... NAPTR 20 10 "E2U+pstndata:send-n" !^.*$!pstndata:send-n/1-5!" .
	.... NAPTR 20 20 "E2U+pstndata:send-n" !^.*$!pstndata:send-n/4-7!" .
	.... NAPTR 20 30 "E2U+pstndata:send-n" !^.*$!pstndata:send-n/6-9!" .

What does this mean and how are clients and applications expected to  
behave? For extra bonus points, add in funky regexp substitutions  
instead of a boring "!^.*$!". :-)

And what if there are other E2U+pstndata:send-n NAPTRs higher up the  
tree that conflict with these entries? Does a E2U+pstndata:send-n  
NAPTR for e164.arpa covering a 15 digit number over-ride one at  
1.2.3.4.5.6.7.8.9.e164.arpa? Which is definitive?

[3] The hierarchical structuring of E.164 numbers and the DNS means  
the scheme as proposed is vulnerable to all sorts of nasties. IIUC  
introducing one of these "E2U+pstndata:send-n" at the apex of the  
tree could nuke all the others at any leaf nodes in the tree. Suppose  
someone puts "E2U+pstndata:send-n" ""!^.*$!pstndata:send-n/1-15!" at  
the zone apex. It's game over. Any local or national dialling plan  
info that was submitted will never be found even though it's in the  
DNS because clients would have picked up the entry at the apex which  
tells them not to go looking for more localised dialling information.

And if one of these NAPTRs gets inserted at a higher node of the  
tree, it can break clients who depend on local dial plan info that  
was stored lower down. That violates another DNS fundamental. Apart  
from delegations and maybe DNSSEC, nothing that goes into a parent  
zone should have any impact on what's in a child zone or on the  
responses from the DNS. And when we're not talking about delegations,  
an RR for some domain should have no impact on any RRs at any  
subdomains.

[4] The concept of using the DNS to store numbering plan information  
is a good one. How it's been proposed here is broken. As is the  
application of that proposal IMO. For ENUM, the lookup is done on a  
complete digit string. Hitting the call button on a mobile phone is  
analagous in ENUM to "lookup the number that's just been typed". An  
ENUM lookup only takes place once the full number -- for some  
definition of full number -- has been dialled and translated into a  
domain name. To do the equivalent for overlapped dialling, a DNS  
lookup would be done for each digit in the number as it was typed or  
dialled until the client hits one of these n-send service types that  
has info about the number that's being dialled. I just don't see the  
point. Any device that has the intelligence to do a DNS lookup  
probably already has some sort of directory/call routing/address book  
capability and would be able to do The Right Thing when something  
dialled 3 or 4 digits on a steam phone or whatever.


To my mind, a cleaner scenario would be for numbering plan info to be  
stored in the DNS using an RRtype that was designed for that purpose.  
Clients like SIP servers and SBCs could query for this at start up  
and maybe have to navigate through a bunch of these RRs at different  
points of the tree. Once that's been done, they can configure  
themselves with information about any local dialling plans that are  
revelant.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.