Implementación de una aplicación de pila doble IPv6 en Azure Virtual Network mediante CLI de Azure

En este artículo, se explica cómo se implementa en Azure una aplicación de pila doble (IPv4 + IPv6) con Standard Load Balancer que contiene una red virtual de pila doble y una subred de pila doble, una instancia de Standard Load Balancer con configuraciones de front-end duales (IPv4 + IPv6), VM con NIC que tienen una configuración de IP dual, reglas de grupo de seguridad de red dual e IP públicas duales.

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.49 de la CLI de Azure, o cualquier versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Crear un grupo de recursos

Para poder generar la red virtual de doble pila, debe crear primero un grupo de recursos con az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado DsResourceGroup01 en la ubicación eastus:

az group create \
--name DsResourceGroup01 \
--location eastus

Creación de direcciones IP públicas IPv4 e IPv6 para el equilibrador de carga

Para obtener acceso los puntos de conexión IPv4 e IPv6 en Internet, necesita direcciones IP públicas IPv4 e IPv6 para el equilibrador de carga. Cree una dirección IP pública con az network public-ip create. En el ejemplo siguiente, se crean unas direcciones IP públicas IPv4 e IPv6 denominadas dsPublicIP_v4 y dsPublicIP_v6 en el grupo de recursos DsResourceGroup01:

# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku STANDARD  \
--allocation-method static  \
--version IPv4

# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6  \
--resource-group DsResourceGroup01  \
--location eastus \
--sku STANDARD  \
--allocation-method static  \
--version IPv6

Creación de direcciones IP públicas para las VM

Para acceder de forma remota a las VM en Internet, necesita las direcciones IP públicas IPv4 de las VM. Cree una dirección IP pública con az network public-ip create.

az network public-ip create \
--name dsVM0_remote_access  \
--resource-group DsResourceGroup01 \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

az network public-ip create \
--name dsVM1_remote_access  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

Creación de Standard Load Balancer

En esta sección, configurará la dirección IP de front-end doble (IPv4 e IPv6) y el grupo de direcciones de back-end del equilibrador de carga, además de crear una instancia de Standard Load Balancer.

Creación de un equilibrador de carga

Cree una instancia de Standard Load Balancer con az network lb create denominada dsLB que incluya un grupo de servidores front-end llamado dsLbFrontEnd_v4 y un grupo de servidores back-end llamado dsLbBackEndPool_v4 que esté asociado a la dirección IP pública IPv4 dsPublicIP_v4 que creó en el paso anterior.

az network lb create \
--name dsLB  \
--resource-group DsResourceGroup01 \
--sku Standard \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4  \
--public-ip-address dsPublicIP_v4  \
--backend-pool-name dsLbBackEndPool_v4

Creación de un servidor front-end IPv6

Cree una dirección IP de front-end IPV6 con az network lb frontend-ip create. En el ejemplo siguiente, se crea una configuración de direcciones IP de front-end llamada dsLbFrontEnd_v6 y se asocia a la dirección dsPublicIP_v6:

az network lb frontend-ip create \
--lb-name dsLB  \
--name dsLbFrontEnd_v6  \
--resource-group DsResourceGroup01  \
--public-ip-address dsPublicIP_v6

Configuración del grupo de direcciones de back-end IPv6

Cree un grupo de direcciones de back-end IPv6 con az network lb address-pool create. En el ejemplo siguiente, se crean el grupo de direcciones de back-end denominado dsLbBackEndPool_v6 que va a incluir VM con configuraciones de NIC IPv6:

az network lb address-pool create \
--lb-name dsLB  \
--name dsLbBackEndPool_v6  \
--resource-group DsResourceGroup01

Creación de un sondeo de estado

Cree un sondeo de estado con az network lb probe create para supervisar el estado de las máquinas virtuales.

az network lb probe create -g DsResourceGroup01  --lb-name dsLB -n dsProbe --protocol tcp --port 3389

Creación de una regla de equilibrador de carga

Las reglas de equilibrador de carga se utilizan para definir cómo se distribuye el tráfico a las máquinas virtuales. Defina la configuración de la IP de front-end para el tráfico entrante y el grupo de IP de back-end para el tráfico entrante, junto con los puertos de origen y destino requeridos.

Cree una regla de equilibrador de carga con az network lb rule create. En el ejemplo siguiente, se crean reglas del equilibrador de carga llamadas dsLBrule_v4 y dsLBrule_v6, y se equilibra el tráfico del puerto TCP80 dirigido a las configuraciones de IP de front-end IPv4 e IPv6:

az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v4  \
--resource-group DsResourceGroup01  \
--frontend-ip-name dsLbFrontEnd_v4  \
--protocol Tcp  \
--frontend-port 80  \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4


az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v6  \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6  \
--protocol Tcp  \
--frontend-port 80 \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6

Crear recursos de red

Para poder implementar algunas VM, debe crear recursos de red que lo permitan: un conjunto de disponibilidad, un grupo de seguridad de red, una red virtual y varias NIC virtuales.

Crear un conjunto de disponibilidad

Para mejorar la disponibilidad de la aplicación, coloque las VM en un conjunto de disponibilidad.

Cree el conjunto de disponibilidad con az vm availability-set create. En el ejemplo siguiente se crea un conjunto de disponibilidad denominado dsAVset:

az vm availability-set create \
--name dsAVset  \
--resource-group DsResourceGroup01  \
--location eastus \
--platform-fault-domain-count 2  \
--platform-update-domain-count 2  

Creación de un grupo de seguridad de red

Cree un grupo de seguridad de red para las reglas que controlan la comunicación entrante y saliente de la red virtual.

Crear un grupo de seguridad de red

Cree un grupo de seguridad de red con az network nsg create.

az network nsg create \
--name dsNSG1  \
--resource-group DsResourceGroup01  \
--location eastus

Creación de una regla de grupo de seguridad de red para las conexiones entrantes y salientes

Cree una regla de grupo de seguridad de red para permitir las conexiones RDP a través del puerto 3389, la conexión a Internet a través del puerto 80 y las conexiones salientes con az network nsg rule create.

# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 100  \
--description "Allow Remote Desktop In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges 3389

# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 200  \
--description "Allow HTTP In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges 80  \
--destination-address-prefixes "*"  \
--destination-port-ranges 80

# Create outbound rule

az network nsg rule create \
--name allowAllOut  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 300  \
--description "Allow All Out"  \
--access Allow  \
--protocol "*"  \
--direction Outbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges "*"

Creación de una red virtual

Cree la red virtual con el comando az network vnet create. En el ejemplo siguiente se crea una red virtual denominada dsVNET con las subredes dsSubNET_v4 y dsSubNET_v6:

# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus  \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"

# Create a single dual stack subnet

az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1

Creación de tarjetas NIC

Cree NIC virtuales para cada VM con az network nic create. El ejemplo siguiente crea una NIC virtual para cada VM. Cada NIC tiene dos configuraciones IP (una configuración IPv4 y una configuración IPv6). Debe crear la configuración IPV6 con az network nic ip-config create.

# Create NICs
az network nic create \
--name dsNIC0  \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1  \
--vnet-name dsVNET  \
--subnet dsSubNet  \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4  \
--lb-name dsLB  \
--public-ip-address dsVM0_remote_access

az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access

# Create IPV6 configurations for each NIC

az network nic ip-config create \
--name dsIp6Config_NIC0  \
--nic-name dsNIC0  \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

Creación de máquinas virtuales

Cree las máquinas virtuales con az vm create. En el ejemplo siguiente, se crean dos máquinas virtuales y los componentes de red virtual necesarios, si aún no existen.

Cree la máquina virtual dsVM0 de la siguiente manera:

 az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest  

Cree la máquina virtual dsVM1 de la siguiente manera:

az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest 

Visualización de la red virtual de doble pila IPv6 en Azure Portal

Para ver la red virtual de doble pila IPv6 en Azure Portal, siga estos pasos:

  1. En la barra de búsqueda del portal, escriba dsVnet.
  2. Cuando aparezca la opción myVirtualNetwork en los resultados de la búsqueda, selecciónela. De este modo, se abrirá la página de información general de la red virtual de doble pila llamada dsVnet. En la red virtual de doble pila, se muestran las dos NIC con las configuraciones IPv4 e IPv6 en una subred de pila doble denominada dsSubnet.

IPv6 dual stack virtual network in Azure

Limpieza de recursos

Cuando ya no se necesiten, puede usar el comando az group delete para quitar el grupo de recursos, la máquina virtual y todos los recursos relacionados.

 az group delete --name DsResourceGroup01

Pasos siguientes

En este artículo, ha creado una instancia de Standard Load Balancer con una configuración IP de front-end doble (IPv4 e IPv6). También ha creado dos máquinas virtuales que contienen NIC con configuraciones de IP duales (IPV4 + IPv6) que se agregaron al grupo de back-end del equilibrador de carga. Para más información sobre la compatibilidad de IPv6 en las redes virtuales de Azure, consulte ¿Qué es IPv6 para Azure Virtual Network?