Tuesday, November 4, 2008

Summar: DNS

I think we often trivialize the DNS, partly because the basic lookup service it provides is so simple, and partly because it has been the subject of so many exploits.  Its weak, time-based consistency semantics make it difficult to reason about the system's behavior: an administrator is supposed to tune the TTL to adjust the tradeoff between stale data and performance, without any clear guidelines for which values to choose.  It is easy to ignore the fact that the DNS was deliberately designed to be a system that can accomodate massive growth while dividing responsibility and accountability evenly among the stakeholders in the namespace, and that it has been tremendously successful in meeting these goals.   The loose structure and variable hierarchy of the zone mechanism gives a level of  extensibility and "responsibility indirection" appropriate to the real internet: organizations can and should host their own name servers, but need not: high-gravity internet entities like ASs can provide this as a service to their customers.  The simplicity of the current protocol is largely the effect of usage and not design: the extensibility features of the DNS type system are mostly unused.

This paper has one my favorite quotes from a CS paper ever: 

"Distributing authority for a database does no distribute a corresponding amount of expertise.  Maintainers fix things until they work, rather than until they work well, and want to use, not understand, the systems they are provided."



No comments: