Compartir vía


Uso de la directiva de DNS para las respuestas DNS inteligentes basadas en la hora del día

Puede usar este tema para aprender a distribuir el tráfico de la aplicación entre diferentes instancias distribuidas geográficamente de una aplicación mediante directivas DNS basadas en la hora del día.

Este escenario es útil en situaciones en las que desea dirigir el tráfico en una zona horaria a servidores de aplicaciones alternativos, como servidores web, que se encuentran en otra zona horaria. Esto le permite equilibrar la carga del tráfico entre instancias de aplicación durante períodos de tiempo máximo cuando los servidores principales se sobrecargan con el tráfico.

Ejemplo de respuestas de DNS inteligentes basadas en la hora del día

A continuación se muestra un ejemplo de cómo puede usar la directiva DNS para equilibrar el tráfico de la aplicación en función de la hora del día.

En este ejemplo se usa una empresa ficticia, Contoso Gift Services, que proporciona soluciones de regalos en línea en todo el mundo a través de su sitio web, contosogiftservices.com.

El sitio web de contosogiftservices.com se hospeda en dos centros de datos, uno en Seattle (Norteamérica) y otro en Dublín (Europa). Los servidores DNS están configurados para enviar respuestas con reconocimiento de ubicación geográfica mediante la directiva DNS. Con un aumento reciente en el negocio, contosogiftservices.com tiene un mayor número de visitantes cada día y algunos de los clientes han notificado incidencias de disponibilidad del servicio.

Contoso Gift Services realiza un análisis del sitio y detecta que cada noche entre las 6 p. m. y las 9 p. m., hora local, hay un aumento en el tráfico al servidor web de Seattle. El servidor web no puede escalar para controlar el aumento del tráfico en estas horas punta, lo que da lugar a la denegación de servicio a los clientes. La misma sobrecarga de tráfico de hora punta se produce en los centros de datos europeos y americanos. En otros momentos del día, los servidores controlan los volúmenes de tráfico que están muy por debajo de su capacidad máxima.

Para asegurarse de que los clientes de contosogiftservices.com obtengan una experiencia dinámica desde el sitio web, Contoso Gift Services quiere redirigir cierto tráfico de Dublín a los servidores de aplicaciones de Seattle entre las 6 p. m. y las 9 p. m. en Dublín; y quieren redirigir el tráfico de Seattle a los servidores de aplicaciones de Dublín entre las 6 p. m. y las 9 p. m. en Seattle.

En la ilustración siguiente se muestra este escenario.

Ejemplo de directiva DNS de hora del día

Cómo funcionan las respuestas DNS inteligentes basadas en la hora del día

Cuando el servidor DNS se configura con la directiva DNS de hora del día, entre las 6 p. m. y las 9 p. m. en cada ubicación geográfica, el servidor DNS hace lo siguiente.

  • Responde a las cuatro primeras consultas que recibe con la dirección IP del servidor web en el centro de datos local.
  • Responde a la quinta consulta que recibe con la dirección IP del servidor web en el centro de datos remoto.

Este comportamiento basado en directivas descarga veinte por ciento de la carga de tráfico del servidor web local en el servidor web remoto, lo que acelera la tensión en el servidor de aplicaciones local y mejora el rendimiento del sitio para los clientes.

Durante las horas de poca actividad, los servidores DNS realizan la administración normal del tráfico basado en ubicaciones geográficas. Además, los clientes DNS que envían consultas desde ubicaciones distintas de Norteamérica o Europa, el servidor DNS equilibra el tráfico entre los centros de datos de Seattle y Dublín.

Cuando se configuran varias directivas DNS en DNS, son un conjunto ordenado de reglas y se procesan mediante DNS de prioridad más alta a prioridad más baja. DNS usa la primera directiva que coincide con las circunstancias, incluida la hora del día. Por este motivo, las directivas más específicas deben tener mayor prioridad. Si crea directivas de hora del día y les da prioridad alta en la lista de directivas, los procesos DNS y usan estas directivas en primer lugar si coinciden con los parámetros de la consulta del cliente DNS y los criterios definidos en la directiva. Si no coinciden, DNS baja la lista de directivas para procesar las directivas predeterminadas hasta que encuentra una coincidencia.

Para obtener más información sobre los tipos de directiva y los criterios, consulte Introducción a las directivas DNS.

Cómo configurar la directiva DNS para las respuestas DNS inteligentes basadas en la hora del día

Para configurar la directiva DNS para las respuestas de consulta basadas en el equilibrio de carga de la aplicación a la hora del día, debe realizar los pasos siguientes.

Nota

Debe realizar estos pasos en el servidor DNS que sea autoritativo para la zona que desea configurar. Se requiere pertenencia a DnsAdmins, o una categoría equivalente, para realizar los siguientes procedimientos.

En las secciones siguientes se proporcionan instrucciones de configuración detalladas.

Importante

En las secciones siguientes se incluyen comandos de ejemplo Windows PowerShell que contienen valores de ejemplo para muchos parámetros. Asegúrese de reemplazar los valores de ejemplo de estos comandos por los valores adecuados para la implementación antes de ejecutar estos comandos.

Creación de las subredes de cliente DNS

El primer paso es identificar las subredes o el espacio de direcciones IP de las regiones para las que desea redirigir el tráfico. Por ejemplo, si desea redirigir el tráfico de EE. UU. y Europa, debe identificar las subredes o los espacios de direcciones IP de estas regiones.

Puede obtener esta información en los mapas de geolocalización por IP. En función de estas distribuciones de geolocalización por IP, debe crear las "subredes de cliente DNS". Una subred de cliente DNS es una agrupación lógica de subredes IPv4 o IPv6 desde las que se envían consultas a un servidor DNS.

Puede usar los siguientes comandos de Windows PowerShell para crear subredes de cliente DNS.

Add-DnsServerClientSubnet -Name "AmericaSubnet" -IPv4Subnet "192.0.0.0/24", "182.0.0.0/24"

Add-DnsServerClientSubnet -Name "EuropeSubnet" -IPv4Subnet "141.1.0.0/24", "151.1.0.0/24"

Para más información, consulte Add-DnsServerClientSubnet.

Creación de los ámbitos de zona

Una vez configuradas las subredes de cliente, debe particionar la zona cuyo tráfico desea redirigir a dos ámbitos de zona diferentes, un ámbito para cada una de las subredes de cliente DNS que ha configurado.

Por ejemplo, si desea redirigir el tráfico para el nombre DNS www.contosogiftservices.com, debe crear dos ámbitos de zona diferentes en la zona de contosogiftservices.com, uno para EE. UU. y otro para Europa.

Un ámbito de zona es una instancia única de la zona. Una zona DNS puede tener varios ámbitos de zona, cada uno de los cuales con su propio conjunto de registros DNS. El mismo registro puede estar presente en varios ámbitos, con diferentes direcciones IP o las mismas direcciones IP.

Nota

De forma predeterminada, existe un ámbito de zona en las zonas DNS. Este ámbito de zona tiene el mismo nombre que la zona y las operaciones DNS heredadas funcionan en este ámbito.

Puede usar los siguientes comandos de Windows PowerShell para crear ámbitos de zona.

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "SeattleZoneScope"

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "DublinZoneScope"

Para más información, consulte Add-DnsServerZoneScope.

Incorporación de registros a los ámbitos de zona

Ahora debe agregar los registros que representan el host del servidor web en dos ámbitos de zona.

Por ejemplo, en SeattleZoneScope, se agrega el registro www.contosogiftservices.com con la dirección IP 192.0.0.1, que se encuentra en un centro de datos de Seattle. Del mismo modo, en DublinZoneScope, se agrega el registro www.contosogiftservices.com con la dirección IP 141.1.0.3 en el centro de datos de Dublín

Puede usar los siguientes comandos de Windows PowerShell para agregar registros a los ámbitos de zona.

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.0.0.1" -ZoneScope "SeattleZoneScope"

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "141.1.0.3" -ZoneScope "DublinZoneScope"

El parámetro ZoneScope no se incluye al agregar un registro en el ámbito predeterminado. Es lo mismo que agregar registros a una zona DNS estándar.

Para más información, consulte Add-DnsServerResourceRecord.

Creación de las directivas DNS

Una vez que haya creado las subredes, las particiones (ámbitos de zona) y haya agregado registros, debe crear directivas que conecten las subredes y las particiones, de modo que, cuando una consulta proceda de un origen en una de las subredes del cliente DNS, la respuesta de consulta se devuelva desde el ámbito correcto de la zona. No se requieren directivas para asignar el ámbito de zona predeterminado.

Después de configurar estas directivas DNS, el comportamiento del servidor DNS es el siguiente:

  1. Los clientes DNS europeos reciben la dirección IP del servidor web en el centro de datos de Dublín en su respuesta de consulta DNS.
  2. Los clientes DNS estadounidenses reciben la dirección IP del servidor web en el centro de datos de Seattle en su respuesta de consulta DNS.
  3. Entre las 6 p. m. y las 9 p. m. en Dublín, el 20 % de las consultas de los clientes europeos reciben la dirección IP del servidor web en el centro de datos de Seattle en su respuesta de consulta DNS.
  4. Entre las 6 p. m. y las 9 p. m. en Seattle, el 20 % de las consultas de los clientes estadounidenses reciben la dirección IP del servidor web en el centro de datos de Dublín en su respuesta de consulta DNS.
  5. La mitad de las consultas del resto del mundo reciben la dirección IP del centro de datos de Seattle y la otra mitad reciben la dirección IP del centro de datos de Dublín.

Puede usar los siguientes comandos de Windows PowerShell para crear una directiva DNS que vincule las subredes de cliente DNS y los ámbitos de zona.

Nota

En este ejemplo, el servidor DNS se encuentra en la zona horaria GMT, por lo que los períodos de hora máxima deben expresarse en la hora GMT equivalente.

Add-DnsServerQueryResolutionPolicy -Name "America6To9Policy" -Action ALLOW -ClientSubnet "eq,AmericaSubnet" -ZoneScope "SeattleZoneScope,4;DublinZoneScope,1" -TimeOfDay "EQ,01:00-04:00" -ZoneName "contosogiftservices.com" -ProcessingOrder 1

Add-DnsServerQueryResolutionPolicy -Name "Europe6To9Policy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "SeattleZoneScope,1;DublinZoneScope,4" -TimeOfDay "EQ,17:00-20:00" -ZoneName "contosogiftservices.com" -ProcessingOrder 2

Add-DnsServerQueryResolutionPolicy -Name "AmericaPolicy" -Action ALLOW -ClientSubnet "eq,AmericaSubnet" -ZoneScope "SeattleZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 3

Add-DnsServerQueryResolutionPolicy -Name "EuropePolicy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "DublinZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 4

Add-DnsServerQueryResolutionPolicy -Name "RestOfWorldPolicy" -Action ALLOW -ZoneScope "DublinZoneScope,1;SeattleZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 5

Para más información, consulte Add-DnsServerQueryResolutionPolicy.

Ahora, el servidor DNS está configurado con las directivas DNS necesarias para redirigir el tráfico en función de la ubicación geográfica y hora del día.

Cuando el servidor DNS recibe consultas de resolución de nombres, el servidor DNS evalúa los campos de la solicitud DNS con respecto a las directivas DNS configuradas. Si la dirección IP de origen de la solicitud de resolución de nombres coincide con cualquiera de las directivas, el ámbito de zona asociado se usa para responder a la consulta y el usuario se dirige al recurso que esté más cercano geográficamente.

Puede crear miles de directivas DNS según los requisitos de administración del tráfico y todas las directivas nuevas se aplicarán dinámicamente, sin reiniciar el servidor DNS, en las consultas entrantes.