Categorías
Servidores

Como crear un CDN con windows server 2016

Voy a ir apuntando las cosas que he realizado para tener un seguimiento

Parece ser que Windows Server ha incorporado DNS policies para gestionar el trafico.

1 Paso Crear la zona primaria

2 Paso a través de powershell crear las subredes correspondientes, parece ser que solo se pueden añadir a través de powershell.

Add-DnsServerClientSubnet -Name "America" -IPv4Subnet 192.0.0.0/24,182.0.0.0/24 
Add-DnsServerClientSubnet -Name "Europa" -IPv4Subnet 141.1.0.0/24,151.1.0.0/24

Podemos consultar las subredes con

Get-DnsServerClientSubnet

Una vez que las subredes de cliente estén en su lugar, el siguiente paso es dividir la zona «midominio.com» en dos ámbitos de zona diferentes, cada uno para América y Europa.

Un ámbito de la zona es una instancia única de la zona. Una zona DNS puede tener varios ámbitos de zona, con cada ámbito de zona que contiene su propio conjunto de registros DNS.

El mismo registro puede estar presente en múltiples ámbitos, con diferentes direcciones IP.

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 de DNS heredadas funcionan en este ámbito.

Add-DnsServerZoneScope -ZoneName "midominio.com" -Name "AmericaZoneScope"
Add-DnsServerZoneScope -ZoneName "midominio.com" -Name "EuropaZoneScope"

El siguiente paso es agregar los registros que representan el host del servidor web en los dos ámbitos de zona: AmericaZoneScope y EuropaZoneScope.

En AmericaZoneScope, se agrega el registro midominio.com con la dirección IP 192.0.0.1, que se encuentra en un datacenter americano; Y en EuropaZoneScope se agrega el mismo registro (midominio.com) con la dirección IP 141.1.0.1 en el datacenter europeo.

Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "192.0.0.1" -ZoneScope "AmericaZoneScope
Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "141.1.0.1" -ZoneScope "EuropaZoneScope"

Añadimos los siguientes registros también se agregan al ámbito de zona predeterminado para garantizar que el resto del mundo todavía puede acceder al servidor web midominio.com desde cualquiera de los dos centros de datos.

Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "192.0.0.1"
Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "141.1.0.1"

Una vez creadas las subredes y las particiones (ámbitos de zona), el siguiente paso es crear políticas que conecten estos dos, de manera que cuando la consulta proceda de una fuente en la subred de cliente de América, la respuesta se devuelve desde el ámbito de América De la zona y así sucesivamente. No se requieren directivas para asignar el ámbito de la zona predeterminada.

Add-DnsServerQueryResolutionPolicy -Name "AmericaPolicy" -Action ALLOW -ClientSubnet "eq,AmericaSubnet" -ZoneScope "AmericaZoneScope,1" -ZoneName "midominio.com"
Add-DnsServerQueryResolutionPolicy -Name "EuropaPolicy" -Action ALLOW -ClientSubnet "eq,EuropaSubnet" -ZoneScope "EuropaZoneScope,1" -ZoneName "midominio.com"

+INFO

https://blogs.technet.microsoft.com/networking/2015/05/11/geo-location-based-traffic-management-using-dns-policies/
https://docs.microsoft.com/es-es/windows-server/networking/dns/deploy/dns-policies-overview

Lo podemos comprobar a través de whatsmydns.net

Comandos del powershell para el DNS de microsoft:

  • DnsServerRecursionScope agregar. Este cmdlet crea un nuevo ámbito recursividad en el servidor DNS. Ámbitos de recursión se usan por las directivas DNS para especificar una lista de servidores de reenvío para usarse en las consultas DNS.
  • Quitar DnsServerRecursionScope. Este cmdlet quita ámbitos recursividad existentes.
  • Conjunto DnsServerRecursionScope. Este cmdlet cambia la configuración de un ámbito de recursión existente.
  • Get-DnsServerRecursionScope. Este cmdlet recupera información sobre los ámbitos de recursión existentes.
  • DnsServerClientSubnet agregar. Este cmdlet crea una nueva subred del cliente DNS. Las subredes se usan por las directivas DNS para identificar dónde se encuentra un cliente DNS.
  • Quitar DnsServerClientSubnet. Este cmdlet quita subredes existentes del cliente DNS.
  • Conjunto DnsServerClientSubnet. Este cmdlet cambia la configuración de una subred existente del cliente DNS.
  • Get-DnsServerClientSubnet. Este cmdlet recupera información sobre subredes existentes del cliente DNS.
  • DnsServerQueryResolutionPolicy agregar. Este cmdlet crea una nueva directiva de resolución de consulta DNS. Directivas de resolución de consulta DNS se usan para especificar cómo hacerlo, o si se responde una consulta, en función de distintos criterios.
  • Quitar DnsServerQueryResolutionPolicy. Este cmdlet quita las directivas existentes de DNS.
  • Conjunto DnsServerQueryResolutionPolicy. Este cmdlet cambia la configuración de una directiva existente de DNS.
  • Get-DnsServerQueryResolutionPolicy. Este cmdlet recupera información sobre las directivas existentes de DNS.
  • Habilitar DnsServerPolicy. Este cmdlet permite políticas DNS existente.
  • Deshabilitar DnsServerPolicy. Este cmdlet deshabilita las directivas existentes de DNS.
  • DnsServerZoneTransferPolicy agregar. Este cmdlet crea una nueva directiva de transferencia de zona de servidor DNS. Directivas de transferencia de zona DNS especifican si deseas denegar o pasar por alto una transferencia de zona basada en distintos criterios.
  • Quitar DnsServerZoneTransferPolicy. Este cmdlet quita directivas de transferencia de zona de servidor DNS existentes.
  • Conjunto DnsServerZoneTransferPolicy. Este cmdlet cambia la configuración de una directiva de transferencia de zona de servidor DNS existente.
  • Get-DnsServerResponseRateLimiting. Este cmdlet recupera la configuración de RRL.
  • Conjunto DnsServerResponseRateLimiting. Este cmdlet cambia RRL settigns.
  • DnsServerResponseRateLimitingExceptionlist agregar. Este cmdlet crea una lista de excepciones RRL en el servidor DNS.
  • Get-DnsServerResponseRateLimitingExceptionlist. Este cmdlet recupera RRL excception listas.
  • Quitar DnsServerResponseRateLimitingExceptionlist. Este cmdlet quita una lista de excepciones RRL existente.
  • Conjunto DnsServerResponseRateLimitingExceptionlist. Este cmdlet cambia RRL listas de excepciones.
  • DnsServerResourceRecord agregar. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido.
  • Get-DnsServerResourceRecord. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido.
  • Quitar DnsServerResourceRecord. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido.
  • Conjunto DnsServerResourceRecord. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido