Conexión de redes virtuales con emparejamiento de redes virtuales con la CLI de Azure

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 de Azure antes de empezar.

Requisitos previos

  • En este artículo se necesita la versión 2.0.28 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

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 az group create. En el ejemplo siguiente se crea un grupo de recursos denominado test-rg en la ubicación eastus.

az group create \
    --name test-rg \
    --location eastus

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

az network vnet create \
  --name vnet-1 \
  --resource-group test-rg \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.0.0.0/24

Cree una red virtual denominada vnet-2 con el prefijo de dirección 10.1.0.0/16:

az network vnet create \
  --name vnet-2 \
  --resource-group test-rg \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.1.0.0/24

Emparejamiento de redes virtuales

Los emparejamientos se establecen entre identificadores de red virtual. Obtenga el identificador de cada red virtual con az network vnet show y almacene el identificador en una variable.

# Get the id for vnet-1.
vNet1Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-1 \
  --query id --out tsv)

# Get the id for vnet-2.
vNet2Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-2 \
  --query id \
  --out tsv)

Cree un emparejamiento de vnet-1 a vnet-2 con az network vnet peering create. Si el parámetro --allow-vnet-access no se especifica, se establece un emparejamiento, pero no fluye la comunicación.

az network vnet peering create \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --remote-vnet $vNet2Id \
  --allow-vnet-access

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.

az network vnet peering create \
  --name vnet-2-to-vnet-1 \
  --resource-group test-rg \
  --vnet-name vnet-2 \
  --remote-vnet $vNet1Id \
  --allow-vnet-access

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 az network vnet peering show.

az network vnet peering show \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --query 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 la máquina virtual con az vm create. En el ejemplo siguiente se crea una máquina virtual llamada vm-1 en la red virtual vnet-1. Si las claves SSH no existen en la ubicación de claves predeterminada, el comando las crea. Para utilizar un conjunto específico de claves, utilice la opción --ssh-key-value. La opción --no-wait crea la máquina virtual en segundo plano, así que puede continuar con el siguiente paso.

az vm create \
  --resource-group test-rg \
  --name vm-1 \
  --image Ubuntu2204 \
  --vnet-name vnet-1 \
  --subnet subnet-1 \
  --generate-ssh-keys \
  --no-wait

Creación de la segunda máquina virtual

Cree una máquina virtual en la red virtual vnet-2.

az vm create \
  --resource-group test-rg \
  --name vm-2 \
  --image Ubuntu2204 \
  --vnet-name vnet-2 \
  --subnet subnet-1 \
  --generate-ssh-keys

La máquina virtual tarda en crearse unos minutos. Después de crear la máquina virtual, la CLI de Azure muestra información similar a la del ejemplo siguiente:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.1.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "test-rg"
}

Anote el valor de publicIpAddress. En un paso posterior, usaremos esta dirección para obtener acceso a la máquina virtual desde Internet.

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

Use el siguiente comando para crear una sesión de SSH con la máquina virtual vm-2. Reemplace <publicIpAddress> con la dirección IP pública de la máquina virtual. En el ejemplo anterior, la dirección IP pública es 13.90.242.231.

ssh <publicIpAddress>

Haga ping a la máquina virtual en vnet-1.

ping 10.0.0.4 -c 4

Recibirá cuatro respuestas.

Cierre la sesión de SSH en la máquina virtual vm-2.

Limpieza de recursos

Cuando ya no se necesiten, use az group delete para quitar el grupo de recursos y todos los recursos que contenga.

az group delete \
    --name test-rg \
    --yes

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.