Compartir por


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. Captura de pantalla que muestra un ejemplo de la opción Pruébelo para Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Botón para iniciar Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Captura de pantalla que muestra el botón de Cloud Shell en 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 test-rg en la ubicación eastus.

$resourceGroup = @{
    Name = "test-rg"
    Location = "EastUS"
}
New-AzResourceGroup @resourceGroup

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

$vnet1 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    Name = "vnet-1"
    AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork1 = New-AzVirtualNetwork @vnet1

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:

$subConfig = @{
    Name = "subnet-1"
    AddressPrefix = "10.0.0.0/24"
    VirtualNetwork = $virtualNetwork1
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig

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.
$vnet2 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    Name = "vnet-2"
    AddressPrefix = "10.1.0.0/16"
}
$virtualNetwork2 = New-AzVirtualNetwork @vnet2

# Create the subnet configuration.
$subConfig = @{
    Name = "subnet-1"
    AddressPrefix = "10.1.0.0/24"
    VirtualNetwork = $virtualNetwork2
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig

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

Emparejamiento de redes virtuales

Cree un emparejamiento con Add-AzVirtualNetworkPeering. En el siguiente ejemplo se emparejan vnet-1 y vnet-2.

$peerConfig1 = @{
    Name = "vnet-1-to-vnet-2"
    VirtualNetwork = $virtualNetwork1
    RemoteVirtualNetworkId = $virtualNetwork2.Id
}
Add-AzVirtualNetworkPeering @peerConfig1

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 vnet-2 a vnet-1. Cree un emparejamiento de vnet-2 a vnet-1.

$peerConfig2 = @{
    Name = "vnet-2-to-vnet-1"
    VirtualNetwork = $virtualNetwork2
    RemoteVirtualNetworkId = $virtualNetwork1.Id
}
Add-AzVirtualNetworkPeering @peerConfig2

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

$peeringState = @{
    ResourceGroupName = "test-rg"
    VirtualNetworkName = "vnet-1"
}
Get-AzVirtualNetworkPeering @peeringState | 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 vm-1 en la red virtual vnet-1. La opción -AsJob crea la máquina virtual en segundo plano, así que puede continuar con el siguiente paso. Cuando se le solicite, introduzca el nombre de usuario y la contraseña de la máquina virtual.

$vm1 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    VirtualNetworkName = "vnet-1"
    SubnetName = "subnet-1"
    ImageName = "Win2019Datacenter"
    Name = "vm-1"
}
New-AzVm @vm1 -AsJob

Creación de la segunda máquina virtual

$vm2 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    VirtualNetworkName = "vnet-2"
    SubnetName = "subnet-1"
    ImageName = "Win2019Datacenter"
    Name = "vm-2"
}
New-AzVm @vm2

La máquina virtual tarda en crearse unos minutos. No continúe con los pasos posteriores hasta que Azure cree vm-2 y devuelva la salida 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 Azure NAT Gateway 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 vm-1:

$ipAddress = @{
    ResourceGroupName = "test-rg"
    Name = "vm-1"
}
Get-AzPublicIpAddress @ipAddress | Select IpAddress

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

mstsc /v:<publicIpAddress>

Se crea y se abre 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 vm-1, habilite el Protocolo de mensajes de control de Internet (ICMP) a través del Firewall de Windows para que pueda hacer ping a esta máquina virtual desde vm-2 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 conectarse a vm-2, escriba el siguiente comando desde un símbolo del sistema en vm-1:

mstsc /v:10.1.0.4

Ha habilitado ping en vm-1. Ahora puede hacer ping a vm-1 por dirección IP desde un símbolo del sistema en vm-2.

ping 10.0.0.4

Recibirá cuatro respuestas. Desconecte las sesiones de RDP para vm-1 y vm-2.

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 test-rg -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.