Inicio rápido: Creación de una instancia de Azure DNS Private Resolver mediante Azure PowerShell
Este artículo le guiará por los pasos necesarios para crear una zona y un registro DNS privados con Azure PowerShell. Si lo prefiere, puede completar este inicio rápido mediante Azure Portal.
Nota
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para empezar, vea Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Azure DNS Private Resolver es un nuevo servicio que permite consultar zonas privadas de Azure DNS desde un entorno local y viceversa sin implementar servidores DNS basados en máquinas virtuales. Para más información, incluidas las ventajas, las funcionalidades y la disponibilidad regional, consulte Qué es Azure DNS Private Resolver.
En la siguiente ilustración, se resume la configuración usada en este artículo:
Requisitos previos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
En este artículo se supone que tiene instalado el módulo Az de Azure PowerShell.
Instalación del módulo Az.DnsResolver de PowerShell
Nota
Si instaló previamente el módulo Az.DnsResolver para la evaluación durante la versión preliminar privada, puede anular el registro y eliminar el PSRepository local que se creó. A continuación, instale la versión más reciente del módulo Az.DnsResolver siguiendo los pasos que se proporcionan en este artículo.
Instale el módulo Az.DnsResolver.
Install-Module Az.DnsResolver
Confirme que se ha instalado correctamente. La versión actual de este módulo es 0.2.1.
Get-InstalledModule -Name Az.DnsResolver
Establecimiento del contexto de la suscripción en Azure PowerShell
Conecte PowerShell a la nube de Azure.
Connect-AzAccount -Environment AzureCloud
Si hay varias suscripciones, se usará el primer identificador de suscripción. Para especificar un identificador de suscripción diferente, use el siguiente comando.
Select-AzSubscription -SubscriptionObject (Get-AzSubscription -SubscriptionId <your-sub-id>)
Registre el espacio de nombres del proveedor Microsoft.Network de la cuenta.
Para poder usar los servicios Microsoft.Network con su suscripción de Azure, debe registrar el espacio de nombres Microsoft.Network:
Use el siguiente comando para registrar el espacio de nombres Microsoft.Network.
Register-AzResourceProvider -ProviderNamespace Microsoft.Network
Cree una instancia de DNS Resolver.
Importante
Los pasos para comprobar o confirmar que los recursos se crearon correctamente no son opcionales. No omita estos pasos. Los pasos rellenan variables que se pueden usar en procedimientos posteriores.
Cree un grupo de recursos para hospedar los recursos. El grupo de recursos debe estar en una región admitida. En este ejemplo, la ubicación es westcentralus.
New-AzResourceGroup -Name myresourcegroup -Location westcentralus
Cree una red virtual en el grupo de recursos que ha creado.
New-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "10.0.0.0/8"
Cree una instancia de DNS Resolver en la red virtual que ha creado.
New-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup -Location westcentralus -VirtualNetworkId "/subscriptions/<your subs id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet"
Compruebe que la instancia se creó correctamente y que el estado es Conectado (opcional). En la salida, dnsResolverState es Conectado.
$dnsResolver = Get-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup
$dnsResolver.ToJsonString()
Creación de un punto de conexión de entrada de DNS Resolver
Creación de una subred en la red virtual
Cree una subred en la red virtual (Microsoft.Network/virtualNetworks/subnets) desde el espacio de direcciones IP que asignó anteriormente. La subred debe tener un tamaño /28 como mínimo (16 direcciones IP).
$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-inbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.0.0/28"
$virtualNetwork | Set-AzVirtualNetwork
Creación del punto de conexión entrante
Cree un punto de conexión de entrada para habilitar la resolución de nombres desde el entorno local u otra ubicación privada mediante una dirección IP que forma parte del espacio de direcciones de la red virtual privada.
Sugerencia
Con PowerShell, puede especificar la dirección IP del punto de conexión de entrada para que sea dinámica o estática.
Si la dirección IP del punto de conexión se especifica como dinámica, la dirección no cambia a menos que el punto de conexión se elimine y se vuelva a aprovisionar. Por lo general, la misma dirección IP se asignará de nuevo durante el reaprovisionamiento.
Si la dirección IP del punto de conexión es estática, se puede especificar y reutilizar si se vuelve a aprovisionar el punto de conexión. La dirección IP que elija no puede ser una dirección IP reservada en la subred.
Los siguientes comandos aprovisionan una dirección IP dinámica:
$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAllocationMethod Dynamic -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig
Use los comandos siguientes para especificar una dirección IP estática. No use ambos conjuntos de comandos dinámicos y estáticos.
Debe especificar una dirección IP en la subred que se creó anteriormente. La dirección IP que elija no puede ser una dirección IP reservada en la subred.
Los siguientes comandos aprovisionan una dirección IP estática:
$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAddress 10.0.0.4 -PrivateIPAllocationMethod Static -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig
Confirmación del punto de conexión de entrada
Confirme que se creó el punto de conexión de entrada y que asignó una dirección IP dentro de la subred asignada.
$inboundEndpoint = Get-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$inboundEndpoint.ToJsonString()
Creación de un punto de conexión de salida de DNS Resolver
Creación de una subred en la red virtual
Cree una subred en la red virtual (Microsoft.Network/virtualNetworks/subnets) desde el espacio de direcciones IP que asignó anteriormente. Esta subred debe ser diferente de la subred de entrada (snet-inbound). La subred de salida también debe tener un tamaño /28 como mínimo (16 direcciones IP).
$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-outbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.1.1.0/28"
$virtualNetwork | Set-AzVirtualNetwork
Creación del punto de conexión de salida
Un punto de conexión de salida habilita la resolución de nombres de reenvío condicional de Azure a servidores DNS externos.
New-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -Name myoutboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-outbound
Confirmación del punto de conexión de salida
Confirme que se creó el punto de conexión de salida y que asignó una dirección IP dentro de la subred asignada.
$outboundEndpoint = Get-AzDnsResolverOutboundEndpoint -Name myoutboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$outboundEndpoint.ToJsonString()
Creación del conjunto de reglas de reenvío de DNS Resolver
Cree un conjunto de reglas de reenvío de DNS para el punto de conexión de salida que ha creado.
New-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup -DnsResolverOutboundEndpoint $outboundendpoint -Location westcentralus
Confirmación del conjunto de reglas de reenvío de DNS
Confirme que se creó el conjunto de reglas de reenvío.
$dnsForwardingRuleset = Get-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup
$dnsForwardingRuleset.ToJsonString()
Creación de un vínculo de red virtual en un conjunto de reglas de reenvío de DNS
Los vínculos de red virtual habilitan la resolución de nombres para las redes virtuales vinculadas a un punto de conexión de salida con un conjunto de reglas de reenvío de DNS.
$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
$vnetlink = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink" -VirtualNetworkId $vnet.Id -SubscriptionId <your sub id>
Confirmación del vínculo de red virtual
Confirme que el vínculo de red virtual se ha creado.
$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink.ToJsonString()
Creación de una segunda red virtual y vinculación de esta al conjunto de reglas de reenvío de DNS
Cree una segunda red virtual para simular un entorno local u otro entorno.
$vnet2 = New-AzVirtualNetwork -Name myvnet2 -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "12.0.0.0/8"
$vnetlink2 = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink2" -VirtualNetworkId $vnet2.Id -SubscriptionId <your sub id>
Confirmación de la segunda red virtual
Confirme que la segunda red virtual se ha creado.
$virtualNetworkLink2 = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink2.ToJsonString()
Creación de reglas de reenvío
Cree una regla de reenvío para un conjunto de reglas en uno o varios servidores DNS de destino. Debe especificar el nombre de dominio completo (FQDN) con un punto final. El cmdlet New-AzDnsResolverTargetDnsServerObject establece el puerto predeterminado como 53, pero también puede especificar un puerto único.
$targetDNS1 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.2 -Port 53
$targetDNS2 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.3 -Port 53
$targetDNS3 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.0.0.4 -Port 53
$targetDNS4 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.5.5.5 -Port 53
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Internal" -DomainName "internal.contoso.com." -ForwardingRuleState "Enabled" -TargetDnsServer @($targetDNS1,$targetDNS2)
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "AzurePrivate" -DomainName "azure.contoso.com" -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS3
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Wildcard" -DomainName "." -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS4
En este ejemplo:
- 10.0.0.4 es el punto de conexión entrante del solucionador.
- 192.168.1.2 y 192.168.1.3 son servidores DNS locales.
- 10.5.5.5 es un servicio DNS protector.
Importante
Las reglas que se muestran en este inicio rápido son ejemplos de reglas que se pueden usar para escenarios específicos. No se requiere ninguna de las reglas de reenvío descritas en este artículo. Tenga cuidado de probar las reglas de reenvío y asegurarse de que no provocan problemas de resolución de DNS.
Si incluye una regla de caracteres comodín en el conjunto de reglas, asegúrese de que el servicio DNS de destino pueda resolver nombres DNS públicos. Algunos servicios de Azure tienen dependencias en la resolución de nombres públicos.
Prueba de la instancia de DNS Resolver
Ahora debería poder enviar tráfico DNS a la instancia de DNS Resolver y resolver registros en función de los conjuntos de reglas de reenvío, entre los que se incluyen:
- Zonas privadas de Azure DNS vinculadas a la red virtual donde se implementa la resolución.
- Zonas DNS en el espacio de nombres DNS de Internet público.
- Zonas DNS privadas que se alojan en las instalaciones.
Eliminación de una instancia de DNS Resolver
Para eliminar la instancia de DNS Resolver, los puntos de conexión de entrada de recursos creados en ella deben eliminarse primero. Una vez eliminados los puntos de conexión de entrada, se puede eliminar la instancia primaria de DNS Resolver.
Eliminación del punto de conexión de entrada
Remove-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
Eliminación del vínculo de la red virtual
Remove-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -Name vnetlink -ResourceGroupName myresourcegroup
Eliminación del conjunto de reglas de reenvío de DNS
Remove-AzDnsForwardingRuleset -Name $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
Eliminación del punto de conexión de salida
Remove-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup -Name myoutboundendpoint
Eliminación de la instancia de DNS Resolver
Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup