2026-07-18
Before DNS, before /etc/hosts as we know it, there was one file. RFC 608 — a two-page memo from January 1974 — announced that the Network Information Center (NIC) at SRI would maintain a single authoritative list of every host on the ARPANET, available on-line for anyone to download. This is the direct ancestor of the entire modern name-resolution stack.
The problem. By late 1973 the ARPANET had grown past the point where operators could keep host tables in their heads or in printed appendices. A user at UCLA who wanted to reach a machine at MIT needed a numeric host number (this predates dotted-quad IPv4 addressing — hosts had 8-bit numbers on the IMP subnet). Programs needed those numbers too, but nobody wanted to type 10 when they meant MIT-DMS. Every site had cobbled together its own local table, and the tables disagreed.
The design. The RFC is startlingly minimal. It says: the file lives at <NIC>HOSTS.TXT on the SRI-NIC server, host 10. Anyone can FTP it. It is updated as changes arrive. Each line is a mapping between an official host name, aliases, and a host number. That's it. No versioning protocol, no replication, no delegated authority. One file, one publisher, one truth. The mechanism was pure convention layered on FTP.
What this created. Every operating system on the ARPANET wrote a scraper. Sites polled HOSTS.TXT nightly (or weekly, or whenever they remembered) and regenerated their local host tables from it. This is where the file we still ship as /etc/hosts comes from — literally. The BSD format was designed to be easy to derive from the NIC file. When Windows put a hosts file in C:\Windows\System32\drivers\etc\, it was carrying the ghost of RFC 608 into 2026.
Why it broke. The centralized file scaled for a decade, but by the early 1980s three problems were fatal:
Paul Mockapetris's RFC 882/883 (1983), later 1034/1035, replaced the file with a distributed hierarchical database: DNS. The delegation model — you own your zone, you serve your own records — is a direct response to the RFC 608 model failing at scale.
Why it still matters. Every time you edit /etc/hosts to override a hostname during development, or push a HOSTS-file adblocker, or debug why nsswitch.conf prefers files over dns, you are using RFC 608's mechanism. The file predates DNS by nearly a decade and outlived it in daily use as a per-machine escape hatch. It's also a beautiful case study in starting with the simplest thing that works — one file, no protocol — and letting the failure modes teach you what the real protocol needs to be.
/etc/hosts, established name-to-address mapping as a first-class problem, and — through its own scaling failures a decade later — motivated the entire design of DNS.
