¿Qué es DNS? Introducción al sistema de nombres de dominio – Diseño del sistema 06

diseño-de-sistema-diseño-de-sistema 06-componentes-de-diseño-de-sistema-que-es-dns-hogantech-hoganblab

Origen del DNS

Primero, usemos un teléfono móvil como ejemplo, donde cada contacto tiene un número de teléfono móvil único. Si necesitamos llamar a un amigo hoy, simplemente podemos ingresar el número de teléfono y realizar la llamada. Sin embargo, a medida que aumenta el número de contactos, nos resulta imposible recordar todos los números de teléfono, por lo que almacenaremos la libreta de direcciones en el teléfono móvil. Cuando necesitemos realizar una llamada, solo necesitamos encontrar la información de contacto correspondiente. Puedes hacer una llamada.

Bueno, en el campo de la información, las computadoras usan direcciones IP como números de contacto, por ejemplo: 140.112.0.0 Es solo una dirección IP. Podemos utilizar direcciones IP para acceder a sitios web alojados en nuestros ordenadores. Sin embargo, como en el ejemplo anterior, resulta inconveniente para los humanos identificar tantas direcciones IP compuestas por números, por eso tenemos nombres de dominio. Por ejemplo:google.com Es una web de Google, y su IP correspondiente es 142.250.191.78. También necesitamos un lugar similar a una libreta de direcciones para registrar direcciones IP y nombres de dominio.

¿Qué es DNS?

El Sistema de nombres de dominio (DNS) es un servicio de nombres de Internet (Sistema de nombres de dominio). Este sistema DNS asigna nombres de dominio legibles por humanos a direcciones IP legibles por máquinas, como:google.com La IP correspondiente es 142.250.191.78. Cuando un usuario ingresa un nombre de dominio en el navegador, el navegador debe convertir el nombre de dominio en una dirección IP a través de DNS. Una vez que se obtiene la dirección IP requerida, la solicitud del usuario se reenvía al servidor de destino.

Términos DNS que necesitas saber

Nombre del servidor

De hecho, DNS no es un servidor único, sino un bloque compuesto por una gran cantidad de servidores. El servidor DNS que responde a las consultas de los usuarios se denomina servidor de nombres.

Registro de recursos

La base de datos DNS almacena la asignación de nombres de dominio a direcciones IP en forma de registros de recursos. RR es la unidad más pequeña de información solicitada por un usuario a un servidor de nombres y existen diferentes tipos de registros de recursos. Los siguientes registros de recursos diferentes se proporcionan aquí para proporcionar referencia a los lectores.

diseño-de-sistema-06-mesa

cache(Almacenamiento en caché)

DNS utiliza diferentes capas de almacenamiento en caché para reducir la latencia de las solicitudes de los usuarios. El almacenamiento en caché desempeña un papel importante a la hora de aliviar la carga del DNS, ya que debe satisfacer las consultas de toda la Internet global.

Jerarquía

Los servidores de nombres DNS están estructurados en una jerarquía. La estructura jerárquica hace que DNS sea altamente escalable a medida que su tamaño y carga de consultas continúan aumentando.

¿Cómo funciona DNS?

Diagrama y descripción de AWS

proporcionado primero AWS A continuación se explicarán las ilustraciones y las descripciones del texto original con algunos nombres propios.

diseño-de-sistema-06-que-es-dns
  1. El usuario abre un navegador web e ingresa en la barra de direcciones. www.ejemplo.comy luego presione Entrar.
  2. bien www.ejemplo.com Las solicitudes se enrutan a un solucionador de DNS, que generalmente es administrado por el proveedor de servicios de Internet (ISP) del usuario, como un proveedor de Internet por cable, un proveedor de banda ancha DSL o una red corporativa.
  3. El solucionador de DNS del ISP www.ejemplo.com Las solicitudes se reenvían a los servidores de nombres raíz DNS.
  4. El solucionador de DNS del ISP reenvía nuevamente www.ejemplo.com Esta vez la solicitud se reenvía a uno de los servidores de nombres de TLD para el dominio .com. Los servidores de nombres para el dominio .com utilizan el mismo ejemplo.com Los nombres de los cuatro servidores de nombres de Amazon Route 53 asociados con el dominio responden a las solicitudes.
  5. El solucionador de DNS del ISP selecciona los servidores de nombres de Amazon Route 53 y www.ejemplo.com Las solicitudes se reenvían a este servidor de nombres.
  6. Los servidores de nombres de Amazon Route 53 están en ejemplo.com Buscar en el área de hosting www.ejemplo.com registre, obtenga el valor asociado (por ejemplo, la dirección IP del servidor web 192.0.2.44) y pase la dirección IP nuevamente al solucionador de DNS.
  7. El solucionador de DNS del ISP finalmente obtiene la dirección IP requerida por el usuario. El analizador devuelve este valor al navegador web. Los solucionadores de DNS también ejemplo.com La dirección IP se almacena en caché (almacenada) durante un período de tiempo que usted especifica para la próxima vez que alguien la vea. ejemplo.com Puede responder más rápido. Para obtener más información, consulte Tiempo de vida (TTL).
  8. El navegador web envía una solicitud a la dirección IP obtenida del solucionador de DNS. www.ejemplo.com pedido. Por ejemplo, su contenido podría ser un servidor web que se ejecuta en una instancia de Amazon EC2 o un depósito de Amazon S3 configurado como punto final de un sitio web.
  9. Un servidor web u otro recurso ubicado en 192.0.2.44 www.ejemplo.com La página web se devuelve al navegador web y el navegador web muestra la página.

Jerarquía DNS

Como se describió anteriormente, DNS no es un servidor único que acepta solicitudes y responde a las consultas de los usuarios, sino que está compuesto por muchos servidores combinados en un gran sistema con diferentes jerarquías de servidores de nombres.

Jerarquía DNS cuatro tipos de servidores

Resolución de DNS (Rsolucionador)

El analizador se utiliza para convertir la cadena de consulta en una secuencia de consulta y reenviar la solicitud a otros servidores de nombres DNS. Normalmente, el solucionador de DNS existe en la red del usuario.

Servidores de nombres de nivel raíz (Servidor de nombres de nivel raíz)

Estos servidores reciben solicitudes de servidores locales. Los servidores de nombres raíz mantienen servidores de nombres basados en dominios de nivel superior,Por ejemplo.com, .edu, .us, etc. Por ejemplo, cuando un usuario solicita educativo.io , el servidor de nombres raíz devolverá una lista de servidores de dominio de nivel superior (TLD) que contienen la dirección IP del dominio .io.

Servidor de dominio de nivel superior

Estos servidores almacenan las direcciones IP de servidores de nombres autorizados. Las partes que realicen consultas recibirán una lista de direcciones IP que pertenecen a los servidores autorizados de la organización.

Servidor de nombres autorizado (Servidor de nombres autorizado)

Estos son los servidores de nombres DNS de algunas grandes empresas que proporcionan las direcciones IP de servidores web o de aplicaciones.

Consultas iterativas y recursivas.

Hay dos métodos para realizar consultas de DNS. El diagrama de flujo de DNS simplificado de CloudFlare también se adjunta aquí. Si observa de cerca, puede encontrar que es muy similar al diagrama de AWS.

consulta iterativa

El servidor local solicita una dirección IP del servidor raíz, el servidor de nombres de dominio de nivel superior (TLD) y el servidor de nombres autorizado (Servidor de nombres autorizado).

consulta recursiva

El usuario final solicita un servidor local. El servidor local solicita además el servidor de nombres de nivel raíz. Los servidores de nombres de nivel raíz reenvían solicitudes a otros servidores de nombres.

diseño-de-sistema-06-cómo-funciona-dns

cache

¿Qué es el caché? El almacenamiento en caché se refiere al almacenamiento de datos solicitados con frecuencia en un lugar determinado para que puedan recuperarse rápidamente cuando sea necesario.

¡En DNS también habrá caché! El almacenamiento en caché puede reducir significativamente los tiempos de respuesta de los usuarios y reducir el tráfico de la red. Cuando utilizamos el almacenamiento en caché en diferentes jerarquías, también puede reducir la carga de consultas grandes en la infraestructura DNS. El caché también se puede ver en el navegador, el sistema operativo, los servidores de nombres locales dentro de la red del usuario o el solucionador de DNS del ISP.

DNS para sistemas descentralizados

El artículo anterior introdujo el concepto de sistemas distribuidos y también presentó las características de un buen sistema de software. Entonces, hablemos de las partes de DNS relacionadas con abstracciones, características y requisitos.

De hecho, el DNS en sí es un sistema descentralizado y estas características descentralizadas tienen las siguientes ventajas:

  1. Evita convertirse en un punto único de falla (SPOF).
  2. Logra una baja latencia de consulta para que los usuarios puedan obtener respuestas de servidores cercanos.
  3. Logra un mayor grado de flexibilidad durante el mantenimiento y las actualizaciones o mejoras. Por ejemplo, si un servidor DNS falla o está sobrecargado, otro servidor DNS puede responder a las consultas de los usuarios.

Aquí también explicamos cómo DNS mejora la escalabilidad (Scalability), la confiabilidad (Reliability) y la consistencia (Consistency).

Escalabilidad

DNS es un sistema altamente escalable. de acuerdo a Llamarada de nube Según el artículo, actualmente hay 13 servidores de nombres de nivel raíz en el mundo, y instancias adicionales copiadas de estos servidores raíz se distribuyen por todo el mundo para manejar las consultas de los usuarios. Estas solicitudes se distribuyen a los servidores raíz y de TLD para manejar la consulta y, finalmente, a los servidores autorizados administrados por las propias grandes empresas para mantener todo el sistema funcionando correctamente.

Fiabilidad

cache

El almacenamiento en caché se realiza en el navegador, el sistema operativo y los servidores de nombres locales, y los solucionadores de DNS del ISP también mantienen cachés enriquecidos de los servicios a los que se accede con frecuencia. Incluso si algunos servidores DNS están temporalmente inactivos, se pueden proporcionar registros de caché, lo que hace que DNS sea un sistema confiable.

Replicación del servidor

DNS replica sistemáticamente cada servidor réplica en todo el mundo para reducir la latencia en el procesamiento de solicitudes de los usuarios y mejorar la confiabilidad de todo el sistema.

Consistencia

DNS utiliza varios protocolos para actualizar y transferir información entre servidores replicados en una jerarquía. DNS compromete la coherencia para lograr un alto rendimiento. Porque los datos se leen de la base de datos DNS con más frecuencia de los que se escriben. Sin embargo, DNS proporciona coherencia eventual y retrasa la actualización de registros en servidores replicados.

La coherencia también se ve afectada debido al mecanismo de almacenamiento en caché mencionado anteriormente. Debido a que el servidor autorizado está ubicado dentro de la organización, algunos registros de recursos en el servidor autorizado pueden actualizarse en caso de una falla del servidor en la organización. Como resultado, los registros de caché en los servidores predeterminados/locales y de ISP pueden volverse obsoletos. Para mitigar este problema, cada registro de caché tiene un tiempo de vencimiento llamado tiempo de vida (TTL).

posdata

Este artículo dista mucho del anterior. Introducción al bloque de construcción de componentes de diseño de sistemas: diseño de sistemas 05 Me tomó un tiempo, principalmente porque dediqué más tiempo a comprender los principios de DNS, y también creo que DNS es un conocimiento esencial que debe conocerse ya sea en entrevistas o en el trabajo diario, así que dediqué mucho espacio y lo expliqué en profundidad.

Si es un tema más amplio en el futuro, todavía dedicaré mucho espacio a explicarlo. ¡Gracias por leer!

Cita

Diseño DNS: escalabilidad, rendimiento, robustez

Cloudflare: ¿Qué es un servidor raíz DNS?

AWS: ¿Qué es DNS?

IBM: ¿Qué es el protocolo DNS?

Artículos relacionados

Introducción al bloque de construcción de componentes de diseño de sistemas: diseño de sistemas 05

Cálculo del reverso del sobre: diseño del sistema 04

Características no funcionales del diseño de software – Diseño de sistemas 03

Aplicación de la abstracción en el diseño de sistemas – Diseño de sistemas 02

Introducción al diseño de sistemas modernos – Diseño de sistemas 01

es_ESEspañol