Inicio rápido: Creación de una zona DNS privada de Azure mediante Azure PowerShell
Este artículo le guiará por los pasos necesarios para crear una zona y un registro DNS privados con Azure PowerShell.
Nota:
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte 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.
Una zona DNS se usa para hospedar los registros DNS de un dominio concreto. Para iniciar el hospedaje de su dominio en DNS de Azure, debe crear una zona DNS para ese nombre de dominio. Cada registro DNS del dominio se crea luego en esta zona DNS. Para publicar una zona DNS privada en la red virtual, especifique la lista de redes virtuales que pueden resolver registros en ella. Se denominan redes virtuales vinculadas. Cuando se habilita el registro automático, Azure DNS también actualiza los registros de zona cuando se crea una máquina virtual, se cambia su dirección IP o se elimina.
Requisitos previos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Si lo prefiere, puede completar este inicio rápido mediante la CLI de Azure.
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción | Ejemplo o vínculo |
---|---|
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. | |
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | |
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Creación del grupo de recursos
En primer lugar, cree un grupo de recursos que contenga la zona DNS:
New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"
Crear una zona DNS privada
Una zona DNS se crea mediante el cmdlet New-AzPrivateDnsZone
.
En el ejemplo siguiente se crea una red virtual denominada myAzureVNet. Luego, se crea una zona DNS denominada private.contoso.com en el grupo de recursos MyAzureResourceGroup, se vincula esa zona DNS a la red virtual MyAzureVnet y se habilita el registro automático.
Install-Module -Name Az.PrivateDns -force
$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.0.0/24"
$vnet = New-AzVirtualNetwork `
-ResourceGroupName MyAzureResourceGroup `
-Location eastus `
-Name myAzureVNet `
-AddressPrefix 10.2.0.0/16 `
-Subnet $backendSubnet
$zone = New-AzPrivateDnsZone -Name private.contoso.com -ResourceGroupName MyAzureResourceGroup
$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Name "mylink" `
-VirtualNetworkId $vnet.id -EnableRegistration
Si quiere crear una zona únicamente para la resolución de nombres (sin registro de nombre de host automático), puede omitir el parámetro -EnableRegistration
.
Listado de zonas privadas de DNS
Si se omite el nombre de la zona de Get-AzPrivateDnsZone
, puede enumerar todas las zonas en un grupo de recursos. Esta operación devuelve una matriz de objetos de la zona.
$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones
Si se omite tanto el nombre de zona como el nombre del grupo de recursos de Get-AzPrivateDnsZone
, puede enumerar todas las zonas de la suscripción de Azure.
$zones = Get-AzPrivateDnsZone
$zones
Creación de las máquinas virtuales de prueba
Ahora, cree dos máquinas virtuales para poder probar su zona DNS privada:
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM01" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM02" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
La creación de la máquina virtual tardará unos minutos en completarse.
Creación de un registro de DNS adicional
Los conjuntos de registros se crean mediante el cmdlet New-AzPrivateDnsRecordSet
. En el ejemplo siguiente se crea un registro con el nombre relativo db en la zona DNS private.contoso.com del grupo de recursos MyAzureResourceGroup. El nombre completo del conjunto de registros es db.private.contoso.com. El tipo de registro es "D", con la dirección IP 10.2.0.4 y el valor de TTL es de 3600 segundos.
New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")
Visualización de registros DNS
Para enumerar los registros DNS de su zona, ejecute:
Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup
Prueba de la zona privada
Ya puede probar la resolución de nombres de la zona privada private.contoso.com.
Configuración de máquinas virtuales para permitir ICMP de entrada
Puede usar el comando ping para probar la resolución de nombres. Por tanto, configure el firewall en ambas máquinas virtuales para permitir paquetes ICMP entrantes.
Conectar a myVM01 con el nombre de usuario y la contraseña que usó al crear la máquina virtual.
Abra la ventana de Windows PowerShell con privilegios de administrador.
Ejecute el siguiente comando:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Repita la operación con myVM02.
Realización de ping en las máquinas virtuales por nombre
En el símbolo del sistema de Windows PowerShell de myVM02, haga ping a myVM01 con el nombre de host registrado automáticamente:
ping myVM01.private.contoso.com
Debería ver una salida similar a la que se muestra a continuación:
PS C:\> ping myvm01.private.contoso.com Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time=1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PS C:\>
Ahora haga ping en el nombre de la base de datos que creó anteriormente:
ping db.private.contoso.com
Debería ver una salida similar a la que se muestra a continuación:
PS C:\> ping db.private.contoso.com Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milliseconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
Limpieza de recursos
Cuando no lo necesite, elimine el grupo de recursos MyAzureResourceGroup para eliminar los recursos que ha creado en este artículo.
Remove-AzResourceGroup -Name MyAzureResourceGroup