En primer lugar, los clientes DNS (p. Ej., Software de usuario final como los navegadores web) no tienen una razón para hablar con los servidores DNS (p. Ej .: ns1.google.com para Google).
De hecho, el software del usuario final a menudo ni siquiera son clientes DNS puros. Solo necesitan resolución de nombre (es decir, traducir un nombre a una dirección de máquina) que también se puede lograr a través de otras técnicas como el llamado archivo “host”, NIS, etc., además de DNS. Para la resolución de nombres, el sistema operativo host proporciona una biblioteca / servicio de resolución (con características adicionales como el almacenamiento en caché, etc.) que es lo que consulta el software del usuario final. Aunque el software muy complejo podría incluir sus propias bibliotecas de resolución, que de hecho podrían admitir solo DNS (en casos de uso donde otras resoluciones no tienen sentido; por ejemplo, cierto software relacionado con el correo electrónico).
Ahora, incluso después de que la biblioteca de resolución determina que una resolución de nombre particular necesita DNS, todavía no se consultan los servidores DNS. Hay otra capa entre las llamadas cachés DNS. Los cachés de DNS son operados por red, a menudo por empresas, ISP y otros agregadores (usuarios domésticos también; la mayoría de los dispositivos Wifi, etc., contienen soporte de caché DNS rudimentario. Yo mismo ejecuto un caché en mi computadora portátil Linux). Las consultas de DNS de los resolutivos llegan primero a los cachés. Recuerde que el protocolo DNS tiene soporte incorporado para el almacenamiento en caché (atributo TTL de los registros), por lo que con bastante frecuencia el caché sirve la respuesta de la información almacenada localmente, evitando consultar el servidor DNS por completo.
- ¿Cuál es la diferencia con UDP implementando el protocolo de enlace de tres vías y TCP?
- ¿Por qué deberíamos usar el protocolo TCP en un cliente / servidor de programación de juegos Tic-tac-toe?
- Cuando dos PC en la misma red desean comunicarse, ¿cómo descubren cuál es la dirección IP de las otras PC? ¿Es DNS interno o transmiten su dirección IP para que puedan ser descubiertos?
- ¿Debe la tabla de enrutamiento contener la dirección IP o la dirección MAC de la próxima máquina? ¿Por qué?
- Cómo solucionar problemas de una PC que tiene problemas de red al acceder al servidor web remoto
Si el caché tampoco tiene información aún no obsoleta sobre un nombre, las consultas se envían a los servidores DNS. Hay una gran cantidad de mensajes de ida y vuelta para determinar cuáles son los servidores autorizados para un nombre de pila.
Entonces, el protocolo DNS hace su entrada cuando ocurre la consulta / respuesta resolutor-caché. Si hay un golpe de caché, cada consulta generará una respuesta de inmediato. Si la respuesta contiene nombres adicionales que deben resolverse, se producen más mensajes de consulta / respuesta. Este es el caso si la consulta original resultó en un registro CNAME, por ejemplo.
La comunicación del servidor de caché es mucho más complicada y, a menudo, tiene una secuencia muy larga de mensajes de consulta / respuesta involucrados (cualquiera de los cuales ya podría estar disponible en el caché y, por lo tanto, podría omitirse). El caché tiene un conjunto de direcciones IP codificadas para los 13 servidores DNS “raíz”. Se inicia un algoritmo de consulta recursivo que comienza con uno de estos (seleccionados aleatoriamente) y finalmente da como resultado una respuesta (dirección IP) para el nombre en cuestión en el caso de éxito, o un error NXDOMAIN / SRVFAIL (comunes; podría haber otro errores) en el caso de falla. Muchos expertos explican mejor este proceso; Siempre encontré que la explicación de DNS de DJB es la más corta y dulce. Está aquí: http://cr.yp.to/djbdns/intro-dns…