In einem typischen Setup gibt sich der Router als DNS-Server aus. Dieser kommuniziert dann mit dem Internetprovider, der einen eigenen DNS-Server betreibt, der sich regelmäßig mit einem Top-Level-Server synchronisiert. So werden die Zugriffszeiten beschleunigt. Auf verschiedenen Ebenen wird außerdem gepuffert. D.h. falls du die IP noch nicht kennst, fragst den Router, der fragt dann ggf. den Provider und der kennt den Namen dann oder nicht.
Außerdem kann man im Browser/ in den Netzwerkeinstellungen von Windows/ im Router/ ... einen alternativen DNS-Server festlegen, bzw. selbst einen DNS-Server hosten.
Beantwortet jetzt zwar nicht alle Fragen, aber...