¿Por qué no podemos hacer llamadas DNS directas?

Podría, de hecho, eso es exactamente lo que hacen muchas variantes Linux / BSD / otras * nix. La razón por la que la mayoría de los usuarios domésticos no lo hacen es porque no están ejecutando un demonio de servidor de nombres local (software). La mayoría de las personas ejecuta alguna versión de Windows e históricamente Windows solo ofrecía un servidor de nombres como parte de sus líneas de servidor y no su estación de trabajo o versiones de computación personal de Windows. Esto significaba, especialmente al principio, que era mucho más fácil para los ISP simplemente ejecutar servidores de nombres de almacenamiento en caché (también conocido como recursivo) para que los clientes limitados no tuvieran que hacer nada más que señalar esos servidores para DNS.

Hoy en día, casi todas las PC tienen la potencia para ejecutar un servidor de nombres local, pero ahora tenemos que pensar en muchos clientes que no son de PC. ¿Realmente desea ejecutar un proceso de servidor de nombres en caché en un iPad, un teléfono Android o una Xbox? En resumen, nada (en la mayoría de los casos) le impedirá hacer su propio servidor de nombres local, al menos en las PC, pero los ISP continuarán en el negocio de proporcionar el servicio de almacenamiento en caché en el futuro previsible.

La mayoría de las implementaciones de servidores DNS ofrecen esta característica, pero al implementarlas se omiten las búsquedas en caché que están disponibles en los servidores DNS públicos / ISP. El almacenamiento en caché acelera el proceso de resolución de nombres, ya que no es necesario pasar por el proceso recursivo de los nombres buscados recientemente.

En cambio, muchos entornos utilizan su servidor DNS interno para la resolución interna de nombres y reenvían otras solicitudes a servidores públicos / ISP.