Tuesday, November 4, 2008

Development of the Domain Name System

This paper describes the architecture of DNS as well as the motivation that led to it. DNS is one of the unsung successes of the Internet - a highly scalable, highly reliable, and reasonably real-time distributed system that is used by pretty much all Internet applications. Like other big systems, it's basically a key-value store with hierarchy, a lot of caches, and not many consistency guarantees. The protocols used to access it and data stored are simple enough that the system has managed to scale and stay up as the Internet evolved.

DNS is something we take for granted today, but the historical background about hosts.txt files, etc shows how much of a problem managing a network would be without such a system, even for smaller networks (the Internet wasn't that big when DNS started). Its design provides is a good example to follow for other large distributed systems.

One surprising thing is that the paper almost doesn't mention security, other than that it "might" become a problem as PCs and LANs become more popular. DNS security is a big problem and there have been really scary attacks on it very recently. Luckily these have generally been counteracted in time (it seems). In addition, the very nature of names as in DNS may reduce security by making URLs confusing for people (e.g. you see many spamming sites with URLs that look like www.facebook.com.ahsgdhagfajdajda.adjhajdha.evil).

From a course organization point of view, it might have made sense to have this paper before the DHT ones, because DNS came before then.

No comments: