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. | |
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.
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 Sí 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.