Praktikum 2 - Das DNS ausfragen mit dig
Dieses Praktikum beschäftigt sich mit einem der wichtigsten Dienste des Internets: DNS. Wenn DNS nicht funktioniert, dann funktioniert effektiv das Internet für den Endanwender nicht. DNS wird aber mitterweile für weit mehr als die einfache Namensauflösung benutzt, z.B. für Lastverteilung, Content Distribution Networks und vieles mehr. Da DNS eine so zentrale Rolle spielt, ist es wichtig DNS zu verstehen und Werkzeuge zu kennen, um DNS-Probleme zu debuggen. Das ist das Ziel dieses Praktikums. Wir werden auch wieder Wireshark
einsetzen, um uns die DNS Pakete genau anzuschauen, aber das primäre (Kommandozeilen-)Tool heute heißt dig
(domain information groper).
Das “Problem” an DNS ist, dass DNS typischerweise im Hintergrund passiert. Anwendungen nutzen APIs um die DNS-Auflösung zu starten (für C bietet Posix z.B. getaddrinfo()
) und der Nutzer sieht und merkt nicht, dass der eingegebene Name in eine IP-Adresse umgewandelt wird. Im ersten Praktikum haben wir aber Wireshark kennengelernt, und damit lässt sich dieser Vorgang zumindest sichbar machen. Auch kann man so z.B. sehen, ob der lokale Cache auf dem Host die Antwort geliefert hat, wenn keine DNS Pakete gesendet werden, die Anwendung aber dennoch funktioniert. Man kann auch in die DNS-Pakete schauen, um Details über den Auflösungsprozess aus dem DNS Header zu erfahren. Was Wireshark aber nicht leistet, ist dass man DNS Pakete selbst erstellen und senden kann und den Auflösungsprozess steuern kann. Dafür gibt es aber ein Werkzeug, dass wir heute besser kennenlernen: dig
.