Subject: [dnsext] Philosophy: On the question of "sameness" in the DNS

From: Harald Alvestrand <[email-masked]>
Date: Tue, 09 Nov 2010 16:18:09 +0800

This is a piece I wrote some time ago, with the intent of getting my own 
thoughts clear on the question of DNS "sameness".
Others might find it interesting to read. Apologies for the formatting.
---------------------------------------------------------------------------------------------------------------------------------------
The DNS is a system that, among other things, maps sequences of strings 
onto data elements; the most visible version is where a domain name 
(www.example.com) gets mapped to an IP address (123.45.67.89).

This mapping is used by higher level protocols, such as HTTP, which 
again supports the World Wide Web and other applications. This section 
will use WWW as an example, because many readers will be familiar with 
it, but similar considerations exist for many other protocols.

For the World Wide Web, the question of "sameness" has a reasonably 
straightforward answer: If an user hands two different strings to a Web 
browser, in the form of URLs, and get back what appears to the user to 
be exactly the same Web page, and the functions that are reachable from 
that Web page behave exactly the same way, the user is likely to 
consider that the two URLs "are the same".

The resolution of a Web page is a multistep process:

    * First, the hostname is extracted from the URL and presented to the
      DNS for lookup.
    * After the normal processing of a DNS lookup, including the
      traversal of NS records, CNAMEs, DNAMEs and other types of
      records, an A (or AAAA) record is produced.
    * The client's browser (or a proxy acting on behalf of the client's
      browser) then uses the address from that record to contact a Web
      server using TCP.
    * The client's browser then presents a query to the Web server,
      presenting the domain name he extracted from the URL again, this
      time as a Host: header.
    * The server then performs some appropriate action in response,
      which may include "302 redirects" to some other URL, an error
      response, or return of some Web page content.

>From the above, it should be clear that "sameness", as defined earlier, 
cannot be achieved without the active cooperation of the Web server's 
operator. If the Web server's operator wishes two hostnames to resolve 
to different pages, no mechanism in the DNS can prevent him.

However, there are a number of ways in which a site operator can be 
*prevented* from achieving "sameness". The most obvious one is that one 
of the string for which the operator desires "sameness" is either 
delegated to another operator, or not delegated at all.

The question of "sameness using DNS mechanisms" should therefore be 
focused on this question:

Given that some (non-DNS) entity has declared that two domain names 
should always be available to an operator in order for the operator to 
be able to configure "sameness" if he so desires, what are the 
appropriate DNS mechanisms to support that desire?