Conexión de redes virtuales con emparejamiento de redes virtuales usando PowerShell

Puede conectar redes virtuales entre sí con el emparejamiento de redes virtuales. Una vez que las redes virtuales están emparejadas, los recursos de ambas se pueden comunicar entre sí con el mismo ancho de banda y la misma latencia que si estuvieran en la misma red virtual. En este artículo aprenderá a:

  • Crear dos redes virtuales
  • Conectar dos redes virtuales con el emparejamiento de redes virtuales
  • Implementar una máquina virtual (VM) en cada red virtual
  • Comunicarse entre máquinas virtuales

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

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. Screenshot that shows an example of Try It for Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Button to launch Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. 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.

  4. Seleccione Enter para ejecutar el código o comando.

Si decide instalar y usar PowerShell de forma local, para realizar los pasos de este artículo necesita la versión 1.0.0 del módulo de Azure PowerShell o cualquier versión posterior. Ejecute Get-Module -ListAvailable Az para buscar la versión instalada. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount para crear una conexión con Azure.

Creación de redes virtuales

Antes de crear una red virtual, cree un grupo de recursos para ella y los demás recursos que se crearon en este artículo. Cree un grupo de recursos con New-AzResourceGroup. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.

New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS

Cree una red virtual con New-AzVirtualNetwork. En el ejemplo siguiente se crea una red virtual denominada myVirtualNetwork1 con el prefijo de dirección 10.0.0.0/16.

$virtualNetwork1 = New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroup `
  -Location EastUS `
  -Name myVirtualNetwork1 `
  -AddressPrefix 10.0.0.0/16

Cree una configuración de subred con Add-AzVirtualNetworkSubnetConfig. En el ejemplo siguiente se crea una configuración de subred con un prefijo de dirección 10.0.0.0/24:

$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
  -Name Subnet1 `
  -AddressPrefix 10.0.0.0/24 `
  -VirtualNetwork $virtualNetwork1

Escriba la configuración de subred en la red virtual con ASet-AzVirtualNetwork, que crea la siguiente subred:

$virtualNetwork1 | Set-AzVirtualNetwork

Cree una red virtual con un prefijo de dirección 10.1.0.0/16 y una subred:

# Create the virtual network.
$virtualNetwork2 = New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroup `
  -Location EastUS `
  -Name myVirtualNetwork2 `
  -AddressPrefix 10.1.0.0/16

# Create the subnet configuration.
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
  -Name Subnet1 `
  -AddressPrefix 10.1.0.0/24 `
  -VirtualNetwork $virtualNetwork2

# Write the subnet configuration to the virtual network.
$virtualNetwork2 | Set-AzVirtualNetwork

Emparejamiento de redes virtuales

Cree un emparejamiento con Add-AzVirtualNetworkPeering. El siguiente ejemplo empareja myVirtualNetwork1 con myVirtualNetwork2.

Add-AzVirtualNetworkPeering `
  -Name myVirtualNetwork1-myVirtualNetwork2 `
  -VirtualNetwork $virtualNetwork1 `
  -RemoteVirtualNetworkId $virtualNetwork2.Id

En la salida que se devuelve al ejecutarse el comando anterior, verá que PeeringState está en estado Iniciado. El emparejamiento permanece en estado Iniciado hasta que cree el emparejamiento de myVirtualNetwork2 con myVirtualNetwork1. Cree un emparejamiento de myVirtualNetwork2 con myVirtualNetwork1.

Add-AzVirtualNetworkPeering `
  -Name myVirtualNetwork2-myVirtualNetwork1 `
  -VirtualNetwork $virtualNetwork2 `
  -RemoteVirtualNetworkId $virtualNetwork1.Id

En la salida que se devuelve al ejecutarse el comando anterior, verá que PeeringState está en estado Conectado. Azure también cambia el estado del emparejamiento myVirtualNetwork1-myVirtualNetwork2 a Conectado. Confirme que el estado del emparejamiento myVirtualNetwork1-myVirtualNetwork2 cambia a Conectado con Get-AzVirtualNetworkPeering.

Get-AzVirtualNetworkPeering `
  -ResourceGroupName myResourceGroup `
  -VirtualNetworkName myVirtualNetwork1 `
  | Select PeeringState

Los recursos de una red virtual no se comunican con los de la otra hasta que el estado PeeringState de los emparejamientos de ambas redes virtuales es Conectado.

Creación de máquinas virtuales

Cree una máquina virtual en cada red virtual para que puedan comunicarse entre ellas en un paso posterior.

Creación de la primera máquina virtual

Cree una máquina virtual con New-AzVM. En el ejemplo siguiente se crea una máquina virtual llamada myVm1 en la red virtual myVirtualNetwork1. La opción -AsJob crea la máquina virtual en segundo plano, así que puede continuar con el siguiente paso. Cuando se le solicite, escriba el nombre de usuario y la contraseña con los que quiere iniciar sesión en la máquina virtual.

New-AzVm `
  -ResourceGroupName "myResourceGroup" `
  -Location "East US" `
  -VirtualNetworkName "myVirtualNetwork1" `
  -SubnetName "Subnet1" `
  -ImageName "Win2016Datacenter" `
  -Name "myVm1" `
  -AsJob

Creación de la segunda máquina virtual

New-AzVm `
  -ResourceGroupName "myResourceGroup" `
  -Location "East US" `
  -VirtualNetworkName "myVirtualNetwork2" `
  -SubnetName "Subnet1" `
  -ImageName "Win2016Datacenter" `
  -Name "myVm2"

La máquina virtual tarda en crearse unos minutos. No continúe con los pasos siguientes hasta que Azure cree la máquina virtual y devuelve el resultado a PowerShell.

Nota:

Azure proporciona una dirección IP de acceso de salida predeterminada para las máquinas virtuales que no tienen asignada una dirección IP pública o están en el grupo back-end de un equilibrador de carga de Azure básico interno. El mecanismo de dirección IP de acceso de salida predeterminado proporciona una dirección IP de salida que no se puede configurar.

La dirección IP de acceso de salida predeterminada está deshabilitada cuando se produce uno de los siguientes eventos:

  • Se asigna una dirección IP pública a la máquina virtual.
  • La máquina virtual se coloca en el grupo back-end de un equilibrador de carga estándar, con o sin reglas de salida.
  • Se asigna un recurso de puerta de enlace de Azure Virtual Network NAT a la subred de la máquina virtual.

Las máquinas virtuales creadas mediante conjuntos de escalado de máquinas virtuales en modo de orquestación flexible no tienen acceso de salida predeterminado.

Para más información sobre las conexiones de salida en Azure, vea Acceso de salida predeterminado en Azure y Uso de traducción de direcciones de red (SNAT) de origen para conexiones de salida.

Comunicarse entre máquinas virtuales

Puede conectarse a la dirección IP pública de una máquina virtual desde Internet. Use Get-AzPublicIpAddress para devolver la dirección IP pública de una máquina virtual. En el siguiente ejemplo se devuelve la dirección IP pública de la máquina virtual myVm1:

Get-AzPublicIpAddress `
  -Name myVm1 `
  -ResourceGroupName myResourceGroup | Select IpAddress

Ejecute el comando siguiente en el equipo local para crear una sesión de Escritorio remoto con la máquina virtual myVm1 desde sus sistema local. Reemplace <publicIpAddress> con la dirección IP que devolvió el comando anterior.

mstsc /v:<publicIpAddress>

A continuación se crea, se descarga y se abre en el equipo un archivo de Protocolo de Escritorio remoto (.rdp). Escriba el nombre de usuario y la contraseña (puede que tenga que seleccionar More choices [Más opciones] y luego Use a different account [Usar una cuenta diferente], para especificar las credenciales que escribió cuando creó la máquina virtual). A continuación, seleccione Aceptar. Puede recibir una advertencia de certificado durante el proceso de inicio de sesión. Haga clic en o Conectar para continuar con la conexión.

En la máquina virtual myVm1, habilite el Protocolo de mensajes de control de Internet (ICMP) a través del Firewall de Windows para que pueda hacer ping en esta máquina virtual desde myVm2 en un paso posterior, mediante PowerShell:

New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4

Aunque en este artículo se usa ping para comunicarse entre máquinas virtuales, no se recomienda permitir ICMP mediante el Firewall de Windows para las implementaciones de producción.

Para conectar con la máquina virtual myVm2, escriba el siguiente comando desde el símbolo del sistema en la máquina virtual myVm1:

mstsc /v:10.1.0.4

Como ha habilitado ping en myVm1, ahora puede hacer ping en él mediante una dirección IP desde un símbolo del sistema en la máquina virtual myVm2:

ping 10.0.0.4

Recibirá cuatro respuestas. Desconecte las sesiones RDP para ambos myVm1 y myVm2.

Limpieza de recursos

Cuando ya no lo necesite, utilice Remove-AzResourcegroup para quitar el grupo de recursos y todos los recursos que contiene.

Remove-AzResourceGroup -Name myResourceGroup -Force

Pasos siguientes

En este artículo, ha aprendido a conectar dos redes, de la misma región de Azure, con el emparejamiento de redes virtuales. También puede emparejar redes virtuales de distintas regiones compatibles y en distintas suscripciones de Azure, además de crear diseños de red de concentrador y radio con emparejamiento. Para más información sobre el emparejamiento de redes virtuales, consulte los artículos sobre el emparejamiento de redes virtuales y la administración de emparejamientos de redes virtuales.

Puede conectar su equipo a una red virtual mediante VPN e interactuar con recursos en una red virtual, o en redes virtuales emparejadas. En el caso de los scripts reutilizables para completar muchas de las tareas descritas en los artículos sobre las redes virtuales, consulte los ejemplos de script.