DNS, das Domain Name System, sorgt für menschenlesbare Adressierung in IP-basierten Netzwerken. Das DNS ist hierarchisch aufgebaut, und erlaubt deswegen die verteilte Speicherung riesiger Datenmengen. DNS ist ein relativ komplexes Protokoll, wobei die Komplexität durch Kombination vieler simpler Elemente erreicht wird.
Damals[tm], als ich und meine Grossmutter noch kleine Mädchen waren, gab es das ARPANET. Und im ARPANET gab es eine Datei, /etc/hosts, (Ja, damals hat man noch überall anständige Betriebsysteme verwendet). Diese Datei wurde mittels FTP zwischen den verschiedenen Rechnern hin und her kopiert, und beinhaltete sämtliche Rechner, die am ARPANET teilnahmen. Natürlich wurde diese Datei von Monat zu Monat grösser, und irgendwann wurde klar, das dieser Ansatz nicht mehr ausreichen wuerde.
Also kam die Idee auf, ein verteiltes Datenbanksystem für diese Auflösung zu benutzen. Es sollte hierarchisch sein, um auch International noch flexibel zu bleiben, und um Konflikte zu vermeiden. Wo man gerade sowieso schon dabei war, das Rad neu (und runder ;) zu erfinden, kam man auf die Idee, dieses neue System auch flexibel und erweiterbar zu machen, und diverse Spezialfälle zu regeln. Man schuf eine Implementation, die halbwegs funktionierte. Diese Implementation hiess BIND. Zu diesem Zeitpunkt existierte noch kein Standard, also fing man an, einen Standard zu verfassen. Man nam die momentane Funktionsweise von BIND, und definierte diese als Standard. Dies hatte zur Folge, das DNS einiges an Altlasten mit sich trägt, die sich damals in Bind befanden.
ACHTUNG: DNS ist ein enorm flexibles Protokoll. Nachher folgende Beispiele zeigen die gängige Praxis, nicht alles was theoretisch möglich ist.
Das Verfassen dieses Dokumentes wurde von der Firma Huber+Monsch gesponsert