Uso de la directiva de DNS para el equilibrio de carga de aplicación

Puede usar este tema para aprender a configurar la directiva DNS para realizar el equilibrio de carga de la aplicaciones.

Las versiones anteriores de DNS de Windows Server solo proporcionaba equilibrio de carga mediante respuestas round robin; pero con DNS en Windows Server 2016, puede configurar la directiva DNS para el equilibrio de carga de las aplicaciones.

Cuando haya implementado varias instancias de una aplicación, puede usar la directiva DNS para equilibrar la carga de tráfico entre las distintas instancias de la aplicación, lo que asigna dinámicamente la carga de tráfico en la aplicación.

Ejemplo de equilibrio de carga de aplicaciones

A continuación se muestra un ejemplo de cómo puede usar la directiva DNS para el equilibrio de carga de las aplicaciones.

En este ejemplo se usa una empresa ficticia, Contoso Gift Services, que proporciona servicios de regalos en línea y que tiene un sitio web denominado contosogiftservices.com.

El sitio web de contosogiftservices.com se hospeda en varios centros de datos, cada uno con direcciones IP diferentes.

En Norteamérica, que es el mercado principal de Contoso Gift Services, el sitio web se hospeda en tres centros de datos: Chicago, IL, Dallas, TX y Seattle, WA.

El servidor web de Seattle tiene la mejor configuración de hardware y puede controlar el doble de carga que los otros dos sitios. Contoso Gift Services quiere que el tráfico de la aplicación se dirija de la siguiente manera.

  • Dado que el servidor web de Seattle incluye más recursos, la mitad de los clientes de la aplicación se dirigen a este servidor
  • Un cuarto de los clientes de la aplicación se dirigen al centro de datos de Dallas, TX
  • Un cuarto de los clientes de la aplicación se dirigen al centro de datos de Chicago, IL

En la siguiente ilustración se muestra este escenario.

Uso de la directiva de DNS para el equilibrio de carga de aplicación DNS

Cómo funciona el equilibrio de carga en las aplicaciones

Después de configurar el servidor DNS con la directiva DNS para el equilibrio de carga de aplicaciones mediante este escenario de ejemplo, el servidor DNS responde el 50 % del tiempo con la dirección del servidor web de Seattle, el 25 % del tiempo con la dirección del servidor web de Dallas y el 25 % del tiempo con la dirección del servidor web de Chicago.

Por lo tanto, cada cuatro consultas que recibe el servidor DNS, responde con dos respuestas de Seattle y una de Dallas y Chicago.

Un posible problema con el equilibrio de carga con la directiva DNS es el almacenamiento en caché de registros DNS por parte del cliente DNS y el solucionador/LDNS, lo que puede interferir con el equilibrio de carga porque el cliente o el solucionador no envían una consulta al servidor DNS.

Puede mitigar el efecto de este comportamiento mediante un valor de Período de vida (TTL) bajo para los registros DNS que deben ir con equilibrio de carga.

Cómo configurar el equilibrio de carga de las aplicaciones

En las siguientes secciones se muestra cómo configurar la directiva DNS para el equilibrio de carga de las aplicaciones.

Creación de los ámbitos de zona

Primero debe crear los ámbitos de la zona contosogiftservices.com para los centros de datos donde se hospedan.

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 "DallasZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "ChicagoZoneScope"

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

Agregación de registros a los ámbitos de zona

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

En SeattleZoneScope, puede agregar el registro www.contosogiftservices.com con la dirección IP 192.0.0.1, que se encuentra en el centro de datos de Seattle.

En ChicagoZoneScope, puede agregar el mismo registro (www.contosogiftservices.com) con la dirección IP 182.0.0.1 en el centro de datos de Chicago.

De manera similar a lo que ocurre en DallasZoneScope, puede agregar el mismo registro (www.contosogiftservices.com) con la dirección IP 162.0.0.1 en el centro de datos de Chicago.

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 "182.0.0.1" -ZoneScope "ChicagoZoneScope"
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "162.0.0.1" -ZoneScope "DallasZoneScope"

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

Creación de las directivas DNS

Después de crear las particiones (ámbitos de zona) y agregar los registros, debe crear directivas DNS que distribuyan las consultas entrantes en estos ámbitos para que se responda al 50 % de las consultas de contosogiftservices.com con la dirección IP del servidor web del centro de datos de Seattle, y el resto se distribuyen equitativamente entre los centros de datos de Chicago y Dallas.

Puede usar los siguientes comandos de Windows PowerShell para crear una directiva DNS que equilibre el tráfico de la aplicación en estos tres centros de datos.

Nota

En el siguiente comando de ejemplo, la expresión –ZoneScope "SeattleZoneScope,2; ChicagoZoneScope,1; DallasZoneScope,1" configura el servidor DNS con una matriz que incluye la combinación de parámetros <ZoneScope>,<weight>.

Add-DnsServerQueryResolutionPolicy -Name "AmericaPolicy" -Action ALLOW -ZoneScope "SeattleZoneScope,2;ChicagoZoneScope,1;DallasZoneScope,1" -ZoneName "contosogiftservices.com"

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

Ahora ha creado correctamente una directiva DNS que proporciona equilibrio de carga de una aplicación entre servidores web de tres centros de datos diferentes.

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.