En este tutorial, aprenderá a integrar una puerta de enlace NAT con Azure Firewall en una red hub-and-spoke para mejorar la conectividad saliente y la escalabilidad.
Azure Firewall proporciona 2496 puertos SNAT por IP pública configurada por instancia de conjunto de escalado de máquinas virtuales de back-end (mínimo dos instancias). Puede asociar hasta 250 IP públicas con Azure Firewall. En función de los requisitos de arquitectura y los patrones de tráfico, es posible que necesite más puertos SNAT que los que puede proporcionar Azure Firewall. También puede requerir el uso de menos direcciones IP públicas, mientras que también requiere más puertos SNAT. El mejor método para la conectividad saliente es usar NAT Gateway. NAT Gateway proporciona 64 512 puertos SNAT por IP pública y se puede usar con hasta 16 IP públicas.
La puerta de enlace NAT se puede integrar con Azure Firewall mediante la configuración de la puerta de enlace NAT directamente en la subred de Azure Firewall. Esta asociación proporciona un método más escalable de conectividad saliente. Para las implementaciones de producción, se recomienda una red en estrella tipo hub-and-spoke, en la que el firewall está en su propia red virtual. Los servidores de cargas de trabajo son redes virtuales emparejadas en la misma región que la red virtual de centro donde reside el firewall. En esta configuración de la arquitectura, NAT Gateway puede proporcionar conectividad saliente desde la red virtual de centro para todas las redes virtuales de radio emparejadas.
Nota:
Azure NAT Gateway no se admite actualmente en arquitecturas de red virtual protegida (vWAN). Debe realizar la implementación mediante una arquitectura de red virtual de centro de conectividad, tal como se describe en este tutorial. Para más información sobre las opciones de la arquitectura de Azure Firewall, consulte Opciones de arquitectura de Azure Firewall Manager.
En este tutorial, aprenderá a:
- Crear una red virtual de centro e implementar una instancia de Azure Firewall y Azure Bastion durante la implementación
- Crear una instancia de NAT Gateway y asociarla con la subred de firewall en la red virtual de centro
- Crear una red virtual de radio
- Creación de un emparejamiento de redes virtuales
- Crear una tabla de rutas para la red virtual de radio
- Crear una directiva de firewall para la red virtual de centro
- Crear una máquina virtual para probar la conectividad saliente mediante NAT Gateway
Requisitos previos
Azure Cloud Shell
Azure hospeda Azure Cloud Shell, un entorno de shell interactivo que puede usar a través del explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con 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 el entorno local.
Para iniciar Azure Cloud Shell:
Opción |
Ejemplo o vínculo |
Seleccione Pruébelo en la esquina superior derecha de un código o bloque de comandos. Al seleccionar Inténtalo, no se copia automáticamente el código o el 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 en la parte superior derecha del 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 seleccionando Ctrl+Mayús+V en Windows y Linux o seleccionando 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 actualizar, 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.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
- En este artículo se necesita la versión 2.0.28 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, la versión más reciente ya está instalada.
Creación de una red virtual de centro
La red virtual de centro contiene la subred de firewall que está asociada con Azure Firewall y NAT Gateway. Use el ejemplo siguiente para crear la red virtual de centro.
Inicie sesión en Azure Portal.
En el cuadro de búsqueda de la parte superior del portal, escriba Red virtual. En los resultados de la búsqueda, seleccione Redes virtuales.
Seleccione + Create (+ Crear).
En la pestaña Aspectos básicos de Crear red virtual, escriba o seleccione la siguiente información:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Selecciona tu suscripción. |
Grupo de recursos |
Seleccione Crear nuevo.
Introducir test-rg.
Seleccione . |
Detalles de instancia |
|
Nombre |
Escriba vnet-hub. |
Región |
Seleccione Centro-sur de EE. UU. (EE. UU.) . |
Seleccione Siguiente para ir a la pestaña Seguridad.
Seleccione Habilitar Azure Bastion en la sección Azure Bastion de la pestaña Seguridad.
Azure Bastion usa el explorador para conectarse a las máquinas virtuales de la red virtual a través del shell seguro (SSH) o el protocolo de escritorio remoto (RDP) mediante sus direcciones IP privadas. Las máquinas virtuales no necesitan direcciones IP públicas, software cliente ni configuración especial. Para más información sobre Azure Bastion, consulte Azure Bastion
Nota:
Los precios por hora comienzan desde el momento en que se implementa Bastion, independientemente del uso de datos salientes. Para más información, consulte Precios y SKU. Si va a implementar Bastion como parte de un tutorial o prueba, se recomienda eliminar este recurso una vez que haya terminado de usarlo.
Escriba o seleccione la información siguiente en Azure Bastion:
Configuración |
Valor |
Nombre de host de Azure Bastion |
Escriba bastión. |
Dirección IP pública de Azure Bastion |
Seleccione Crear una dirección IP pública.
Escriba public-ip-bastion en Nombre.
Seleccione . |
Seleccione Habilitar Azure Firewall en la sección Azure Firewall de la pestaña Seguridad.
Azure Firewall es un servicio de seguridad de red administrado y basado en la nube que protege los recursos de Azure Virtual Network. Se trata de un firewall como servicio con estado completo que incorpora alta disponibilidad y escalabilidad a la nube sin restricciones. Para más información acerca de Azure Firewall, consulte Azure Firewall.
Escriba o seleccione la información siguiente en Azure Firewall:
Configuración |
Valor |
Nombre de Azure Firewall |
Escriba firewall. |
Nivel |
Seleccione Estándar. |
Directiva |
Seleccione Crear nuevo.
Escriba firewall-policy en Nombre.
Seleccione . |
IP pública de Azure Firewall |
Seleccione Crear una dirección IP pública.
Escriba public-ip-firewall en Nombre.
Seleccione . |
Seleccione Siguiente para continuar a la pestaña Direcciones IP.
Seleccione Revisar + crear.
Seleccione Crear.
El host bastión y el firewall tarda unos minutos en implementarse. Cuando se cree la red virtual como parte de la implementación, puede continuar con los pasos siguientes.
Use New-AzResourceGroup para crear un grupo de recursos.
# Create resource group
$rgParams = @{
Name = 'test-rg'
Location = 'South Central US'
}
New-AzResourceGroup @rgParams
Utiliza New-AzVirtualNetwork para crear la red virtual del hub.
# Create hub virtual network
$vnetParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'vnet-hub'
AddressPrefix = '10.0.0.0/16'
}
$hubVnet = New-AzVirtualNetwork @vnetParams
Use Add-AzVirtualNetworkSubnetConfig para crear una subred para Azure Firewall y Azure Bastion.
# Create default subnet
$subnetParams = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
VirtualNetwork = $hubVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
# Create subnet for Azure Firewall
$subnetParams = @{
Name = 'AzureFirewallSubnet'
AddressPrefix = '10.0.1.64/26'
VirtualNetwork = $hubVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
# Create subnet for Azure Bastion
$subnetParams = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.0.1.0/26'
VirtualNetwork = $hubVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
Actualice la red virtual mediante el comando Set-AzVirtualNetwork.
# Create the virtual network
$hubVnet | Set-AzVirtualNetwork
Use New-AzPublicIpAddress para crear una dirección IP pública para Azure Bastion.
# Create public IP for Azure Bastion
$publicIpBastionParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'public-ip-bastion'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1, 2, 3
}
$publicIpBastion = New-AzPublicIpAddress @publicIpBastionParams
Use New-AzBastion para crear Azure Bastion.
# Create Azure Bastion
$bastionParams = @{
ResourceGroupName = "test-rg"
Name = "bastion"
VirtualNetworkName = "vnet-hub"
PublicIpAddressName = "public-ip-bastion"
PublicIPAddressRgName = "test-rg"
VirtualNetworkRgName = "test-rg"
}
New-AzBastion @bastionParams
Use New-AzPublicIpAddress para crear una dirección IP pública para Azure Firewall.
# Create public IP for Azure Firewall
$publicIpFirewallParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'public-ip-firewall'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1, 2, 3
}
$publicIpFirewall = New-AzPublicIpAddress @publicIpFirewallParams
Use New-AzFirewallPolicy para crear una directiva de firewall.
# Create firewall policy
$firewallPolicyParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'firewall-policy'
}
$firewallPolicy = New-AzFirewallPolicy @firewallPolicyParams
Use New-AzFirewall para crear Azure Firewall.
# Create Azure Firewall
$firewallParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'firewall'
VirtualNetworkName = 'vnet-hub'
PublicIpName = 'public-ip-firewall'
FirewallPolicyId = $firewallPolicy.Id
}
$firewall = New-AzFirewall @firewallParams
Use az group create para crear un grupo de recursos.
# Variables
RESOURCE_GROUP="test-rg"
LOCATION="southcentralus"
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Utilice az network vnet create para crear la red virtual del concentrador.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
VNET_HUB_ADDRESS_PREFIX="10.0.0.0/16"
SUBNET_1_NAME="subnet-1"
SUBNET_1_PREFIX="10.0.0.0/24"
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_HUB_NAME \
--address-prefix $VNET_HUB_ADDRESS_PREFIX \
--subnet-name $SUBNET_1_NAME \
--subnet-prefix $SUBNET_1_PREFIX
Use az network vnet subnet create para crear una subred para Azure Bastion.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
BASTION_SUBNET_NAME="AzureBastionSubnet"
BASTION_SUBNET_PREFIX="10.0.1.0/26"
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $BASTION_SUBNET_NAME \
--address-prefix $BASTION_SUBNET_PREFIX
Use az network vnet subnet create para crear una subred para Azure Firewall.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
FIREWALL_SUBNET_NAME="AzureFirewallSubnet"
FIREWALL_SUBNET_PREFIX="10.0.1.64/26"
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $FIREWALL_SUBNET_NAME \
--address-prefix $FIREWALL_SUBNET_PREFIX
Use az network public-ip create para crear una dirección IP pública para Azure Bastion.
# Variables
RESOURCE_GROUP="test-rg"
BASTION_PUBLIC_IP_NAME="public-ip-bastion"
ALLOCATION_METHOD="Static"
SKU="Standard"
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name $BASTION_PUBLIC_IP_NAME \
--allocation-method $ALLOCATION_METHOD \
--sku $SKU
Use az network bastion create para crear Azure Bastion.
# Variables
RESOURCE_GROUP="test-rg"
BASTION_NAME="bastion"
BASTION_PUBLIC_IP_NAME="public-ip-bastion"
VNET_HUB_NAME="vnet-hub"
az network bastion create \
--resource-group $RESOURCE_GROUP \
--name $BASTION_NAME \
--public-ip-address $BASTION_PUBLIC_IP_NAME \
--vnet-name $VNET_HUB_NAME
Use az network public-ip create para crear una dirección IP pública para Azure Firewall.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_PUBLIC_IP_NAME="public-ip-firewall"
ALLOCATION_METHOD="Static"
SKU="Standard"
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_PUBLIC_IP_NAME \
--allocation-method $ALLOCATION_METHOD \
--sku $SKU
Use az network firewall policy create para crear una directiva de firewall.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_POLICY_NAME="firewall-policy"
az network firewall policy create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_POLICY_NAME
Utiliza az network firewall create para crear Azure Firewall.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_NAME="firewall"
VNET_HUB_NAME="vnet-hub"
FIREWALL_POLICY_NAME="firewall-policy"
FIREWALL_PUBLIC_IP_NAME="public-ip-firewall"
az network firewall create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_NAME \
--vnet-name $VNET_HUB_NAME \
--firewall-policy $FIREWALL_POLICY_NAME \
--public-ip $FIREWALL_PUBLIC_IP_NAME
Creación de la puerta de enlace de NAT
Todo el tráfico saliente de Internet atravesa la puerta de enlace a Internet de la instancia de NAT Gateway. Use el ejemplo siguiente para crear una puerta de enlace de NAT Gateway para la red en estrella tipo hub-and-spoke y para asociarla a AzureFirewallSubnet.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Puerta de enlace NAT. Seleccione Puertas de enlace NAT en los resultados de búsqueda.
Seleccione + Create (+ Crear).
En la pestaña Datos básicos de Crear puerta de enlace de traducción de direcciones de red (NAT), escriba o seleccione la información siguiente:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Selecciona tu suscripción. |
Grupo de recursos |
Seleccione test-rg. |
Detalles de instancia |
|
Nombre de NAT Gateway |
Escriba nat-gateway. |
Región |
Seleccione Centro-sur de EE. UU. . |
Zona de disponibilidad |
Seleccione una zona o Ninguna zona. |
Tiempo de espera de inactividad de TCP (minutos) |
Deje el valor predeterminado 4. |
Para más información sobre las zonas de disponibilidad, consulte NAT Gateway y zonas de disponibilidad.
Seleccione Next: Outbound IP (Siguiente: Dirección IP de salida).
En Dirección IP de salida, en Direcciones IP públicas, seleccione Crear una dirección IP pública.
Escriba public-ip-nat en Nombre.
Seleccione Aceptar.
Seleccione Next: Subnet (Siguiente: Subred).
En Virtual Network, seleccione vnet-hub.
Seleccione AzureFirewallSubnet en Nombre de subred.
Seleccione Revisar + crear.
Seleccione Crear.
Use New-AzPublicIpAddress para crear una dirección IP pública para la puerta de enlace NAT.
# Create public IP for NAT gateway
$publicIpNatParams = @{
ResourceGroupName = 'test-rg'
Location = 'southcentralus'
Name = 'public-ip-nat'
AllocationMethod = 'Static'
Sku = 'Standard'
}
$publicIpNat = New-AzPublicIpAddress @publicIpNatParams
Use New-AzNatGateway para crear la puerta de enlace NAT.
$natGatewayParams = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
PublicIpAddress = $publicIpNat
Sku = 'Standard'
IdleTimeoutInMinutes = 4
Location = 'South Central US'
}
$natGateway = New-AzNatGateway @natGatewayParams
Use Set-AzVirtualNetworkSubnetConfig para asociar la puerta de enlace NAT con AzureFirewallSubnet.
# Get the AzureFirewallSubnet from the hub virtual network
$subnetParams = @{
VirtualNetwork = $hubVnet
Name = 'AzureFirewallSubnet'
}
$subnet = Get-AzVirtualNetworkSubnetConfig @subnetParams
$subnet.NatGateway = $natGateway
# Associate NAT gateway with AzureFirewallSubnet
$subnetParams = @{
VirtualNetwork = $hubVnet
Name = 'AzureFirewallSubnet'
AddressPrefix = '10.0.1.64/26'
NatGateway = $natGateway
}
Set-AzVirtualNetworkSubnetConfig @subnetParams
Actualice la red virtual mediante el comando Set-AzVirtualNetwork.
# Update the virtual network
$hubVnet | Set-AzVirtualNetwork
Use az network public-ip create para crear una dirección IP pública para la puerta de enlace NAT.
# Variables
RESOURCE_GROUP="test-rg"
NAT_PUBLIC_IP_NAME="public-ip-nat"
ALLOCATION_METHOD="Static"
SKU="Standard"
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name $NAT_PUBLIC_IP_NAME \
--allocation-method $ALLOCATION_METHOD \
--sku $SKU
Use az network nat gateway create para crear una puerta de enlace NAT.
# Variables
RESOURCE_GROUP="test-rg"
NAT_GATEWAY_NAME="nat-gateway"
NAT_PUBLIC_IP_NAME="public-ip-nat"
IDLE_TIMEOUT="4"
az network nat gateway create \
--resource-group $RESOURCE_GROUP \
--name $NAT_GATEWAY_NAME \
--public-ip-address $NAT_PUBLIC_IP_NAME \
--idle-timeout $IDLE_TIMEOUT
Use az network vnet subnet update para asociar NAT Gateway con AzureFirewallSubnet.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
FIREWALL_SUBNET_NAME="AzureFirewallSubnet"
NAT_GATEWAY_NAME="nat-gateway"
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $FIREWALL_SUBNET_NAME \
--nat-gateway $NAT_GATEWAY_NAME
Creación de una red virtual de radio
La red virtual de radio contiene la máquina virtual de prueba que se usa para probar el enrutamiento del tráfico de Internet a la puerta de enlace de NAT Gateway. Use el ejemplo siguiente para crear la red de radio.
En el cuadro de búsqueda de la parte superior del portal, escriba Red virtual. En los resultados de la búsqueda, seleccione Redes virtuales.
Seleccione + Create (+ Crear).
En la pestaña Aspectos básicos de Crear red virtual, escriba o seleccione la siguiente información:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Selecciona tu suscripción. |
Grupo de recursos |
Seleccione test-rg. |
Detalles de instancia |
|
Nombre |
Escriba vnet-spoke. |
Región |
Seleccione Centro-sur de EE. UU. . |
Seleccione Siguiente para ir a la pestaña Seguridad.
Seleccione Siguiente para continuar a la pestaña Direcciones IP.
En la pestaña Direcciones IP de Espacio de direcciones IPv4, seleccione Eliminar espacio de direcciones para eliminar el espacio de direcciones que se rellena automáticamente.
Seleccione + Agregar espacio de direcciones IPv4.
En Espacio de direcciones IPv4, escriba 10.1.0.0. Deje el valor predeterminado de /16 (65 536 direcciones) en la selección de máscara.
Seleccione + Agregar una subred.
En Agregar subred, escriba o seleccione la información siguiente:
Configuración |
Valor |
Propósito de subred |
Deje el valor predeterminado. |
Nombre |
Escriba subnet-private. |
IPv4 |
|
Intervalo de direcciones IPv4 |
Deje el valor predeterminado de 10.1.0.0/16. |
Dirección inicial |
Deje el valor predeterminado de 10.1.0.0. |
Tamaño |
Deje el valor predeterminado de /24(256 direcciones). |
Seleccione Agregar.
Seleccione Revisar + crear.
Seleccione Crear.
Utilice New-AzVirtualNetwork para crear la red virtual spoke.
# Create spoke virtual network
$vnetParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'vnet-spoke'
AddressPrefix = '10.1.0.0/16'
}
$spokeVnet = New-AzVirtualNetwork @vnetParams
Use Add-AzVirtualNetworkSubnetConfig para crear una subred para la red virtual de spoke.
# Create subnet in spoke virtual network
$subnetParams = @{
Name = 'subnet-private'
AddressPrefix = '10.1.0.0/24'
VirtualNetwork = $spokeVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
Use Set-AzVirtualNetwork para actualizar la red virtual de spoke.
# Create the virtual network
$spokeVnet | Set-AzVirtualNetwork
Cree la red virtual de spoke mediante az network vnet create.
# Variables
RESOURCE_GROUP="test-rg"
VNET_SPOKE_NAME="vnet-spoke"
VNET_SPOKE_ADDRESS_PREFIX="10.1.0.0/16"
SPOKE_SUBNET_NAME="subnet-private"
SPOKE_SUBNET_PREFIX="10.1.0.0/24"
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_SPOKE_NAME \
--address-prefix $VNET_SPOKE_ADDRESS_PREFIX \
--subnet-name $SPOKE_SUBNET_NAME \
--subnet-prefix $SPOKE_SUBNET_PREFIX
Emparejamiento entre la red virtual de centro y la de radio
Se usa un emparejamiento de red virtual para conectar la red virtual de centro a la red virtual de radio y la red virtual de radio a la red virtual de centro. Use el ejemplo siguiente para crear un emparejamiento de red bidireccional entre la red virtual de centro y la red virtual de radio.
En el cuadro de búsqueda de la parte superior del portal, escriba Red virtual. En los resultados de la búsqueda, seleccione Redes virtuales.
Seleccione vnet-hub.
En Configuración, seleccione Emparejamientos.
Seleccione +Agregar.
En Agregar emparejamiento, escriba o seleccione la información siguiente:
Configuración |
Valor |
Resumen de red virtual remota |
|
Nombre del vínculo de emparejamiento |
Escriba vnet-spoke-to-vnet-hub. |
Modelo de implementación de red virtual |
Deje el valor predeterminado, Administrador de recursos. |
Suscripción |
Selecciona tu suscripción. |
Red virtual |
Seleccione vnet-spoke (test-rg). |
Configuración de emparejamiento de red virtual remota |
|
Permitir que "vnet-spoke" acceda a "vnet-hub" |
Deje el valor predeterminado de Seleccionado. |
Permitir que "vnet-spoke" reciba el tráfico reenviado desde "vnet-hub" |
Seleccionar la casilla. |
Permitir que la puerta de enlace o el servidor de rutas en 'vnet-spoke' reenvíen el tráfico a 'vnet-hub' |
Deje esta casilla desactivada, tal y como está de forma predeterminada. |
Habilitar 'vnet-spoke' para usar la puerta de enlace remota o el servidor de rutas de 'vnet-hub' |
Deje esta casilla desactivada, tal y como está de forma predeterminada. |
Resumen de red virtual local |
|
Nombre del vínculo de emparejamiento |
Escriba vnet-hub-to-vnet-spoke. |
Configuración de emparejamiento de red virtual local |
|
Permitir que "vnet-hub" acceda a "vnet-spoke" |
Deje el valor predeterminado de Seleccionado. |
Permitir que "vnet-hub" reciba el tráfico reenviado desde "vnet-spoke" |
Seleccionar la casilla. |
Permitir que la puerta de enlace o el servidor de rutas en 'vnet-hub' reenvíen el tráfico a 'vnet-spoke' |
Deje esta casilla desactivada, tal y como está de forma predeterminada. |
Habilitar 'vnet-hub' para usar la puerta de enlace remota de 'vnet-spoke' o el servidor de rutas |
Deje esta casilla desactivada, tal y como está de forma predeterminada. |
Seleccione Agregar.
Seleccione Actualizar y compruebe que el Estado del emparejamiento es Conectado.
Use Add-AzVirtualNetworkPeering para crear un emparejamiento desde el hub al spoke.
# Create peering from hub to spoke
$peeringParams = @{
Name = 'vnet-hub-to-vnet-spoke'
VirtualNetwork = $hubVnet
RemoteVirtualNetworkId = $spokeVnet.Id
AllowForwardedTraffic = $true
}
Add-AzVirtualNetworkPeering @peeringParams
Use Add-AzVirtualNetworkPeering para crear un emparejamiento desde el spoke al hub.
# Create peering from spoke to hub
$peeringParams = @{
Name = 'vnet-spoke-to-vnet-hub'
VirtualNetwork = $spokeVnet
RemoteVirtualNetworkId = $hubVnet.Id
AllowForwardedTraffic = $true
}
Add-AzVirtualNetworkPeering @peeringParams
Use az network vnet peering create para crear emparejamiento desde el hub al spoke.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
HUB_TO_SPOKE_PEERING_NAME="vnet-hub-to-vnet-spoke"
VNET_SPOKE_NAME="vnet-spoke"
az network vnet peering create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $HUB_TO_SPOKE_PEERING_NAME \
--remote-vnet $VNET_SPOKE_NAME \
--allow-forwarded-traffic
Use az network vnet peering create para crear emparejamiento del spoke al hub.
# Variables
RESOURCE_GROUP="test-rg"
VNET_SPOKE_NAME="vnet-spoke"
SPOKE_TO_HUB_PEERING_NAME="vnet-spoke-to-vnet-hub"
VNET_HUB_NAME="vnet-hub"
az network vnet peering create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_SPOKE_NAME \
--name $SPOKE_TO_HUB_PEERING_NAME \
--remote-vnet $VNET_HUB_NAME \
--allow-forwarded-traffic
Creación de una tabla de rutas de la red de radio
Una tabla de rutas fuerza todo el tráfico saliente de la red virtual de radio a la red virtual de centro. La tabla de rutas se configura con la dirección IP privada de Azure Firewall como aplicación virtual.
Obtención de la dirección IP privada del firewall
Necesita la dirección IP privada del firewall para la tabla de rutas que creará más adelante en este artículo. Use el ejemplo siguiente para obtener la dirección IP privada del firewall.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Firewall. En los resultados de la búsqueda, seleccione Firewalls.
Seleccione firewall.
En la Información general de firewall, anote la dirección IP que aparece en el campo IP privada de firewall. En este ejemplo, la dirección IP es 10.0.1.68.
Use Get-AzFirewall para obtener la dirección IP privada del firewall.
# Get the private IP address of the firewall
$firewallParams = @{
ResourceGroupName = 'test-rg'
Name = 'firewall'
}
$firewall = Get-AzFirewall @firewallParams
$firewall.IpConfigurations[0].PrivateIpAddress
# Get the private IP address of the firewall
az network firewall show \
--resource-group test-rg \
--name firewall \
--query "ipConfigurations[0].privateIpAddress" \
--output tsv
Creación de una tabla de rutas
Cree una tabla de rutas para forzar todo el tráfico de salida entre radios y de Internet a través del firewall de la red virtual de centro.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Tabla de rutas. Seleccione Tablas de rutas en los resultados de la búsqueda.
Seleccione + Create (+ Crear).
En Crear tabla de rutas, escriba o seleccione la siguiente información:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Selecciona tu suscripción. |
Grupo de recursos |
Seleccione test-rg. |
Detalles de instancia |
|
Región |
Seleccione Centro-sur de EE. UU. . |
Nombre |
Escriba route-table-spoke. |
Propagar las rutas de la puerta de enlace |
así que seleccione No. |
Seleccione Revisar + crear.
Seleccione Crear.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Tabla de rutas. Seleccione Tablas de rutas en los resultados de la búsqueda.
Seleccione route-table-spoke.
En Configuración, seleccione Rutas.
Seleccione + Agregar en Rutas.
En Agregar ruta, escriba o seleccione la información siguiente:
Configuración |
Valor |
Nombre de ruta |
Escriba route-to-hub. |
Tipo de destino |
Seleccione Direcciones IP. |
Intervalos de direcciones IP de destino y CIDR |
Escriba 0.0.0.0/0. |
Tipo de próximo salto |
Seleccione Aplicación virtual. |
Siguiente dirección de salto |
Escriba 10.0.1.68. |
Seleccione Agregar.
Seleccione Subredes en Configuración.
Seleccione + Asociar.
En Asociar subred, escriba o seleccione la información siguiente:
Configuración |
Valor |
Red virtual |
Seleccione vnet-spoke (test-rg). |
Subred |
Seleccione subnet-private. |
Seleccione Aceptar.
Use New-AzRouteTable para crear la tabla de rutas.
# Create route table
$routeTableParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'route-table-spoke'
}
$routeTable = New-AzRouteTable @routeTableParams
Use Add-AzRouteConfig para crear una ruta en la tabla de rutas.
# Create route
$routeConfigParams = @{
Name = 'route-to-hub'
AddressPrefix = '0.0.0.0/0'
NextHopType = 'VirtualAppliance'
NextHopIpAddress = $firewall.IpConfigurations[0].PrivateIpAddress
RouteTable = $routeTable
}
Add-AzRouteConfig @routeConfigParams
Use Set-AzRouteTable para actualizar la tabla de rutas.
# Update the route table
$routeTable | Set-AzRouteTable
Use Set-AzVirtualNetworkSubnetConfig para asociar la tabla de rutas a la subred de spoke.
# Associate route table with subnet
$subnetConfigParams = @{
VirtualNetwork = $spokeVnet
Name = 'subnet-private'
AddressPrefix = '10.1.0.0/24'
RouteTable = $routeTable
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
Use Set-AzVirtualNetwork para actualizar la red virtual de spoke.
# Update the virtual network
$spokeVnet | Set-AzVirtualNetwork
Use az network route-table create para crear una tabla de rutas.
# Variables
RESOURCE_GROUP="test-rg"
ROUTE_TABLE_NAME="route-table-spoke"
LOCATION="southcentralus"
az network route-table create \
--resource-group $RESOURCE_GROUP \
--name $ROUTE_TABLE_NAME \
--location $LOCATION
Use az network route-table route create para crear una ruta.
# Variables
RESOURCE_GROUP="test-rg"
ROUTE_TABLE_NAME="route-table-spoke"
ROUTE_NAME="route-to-hub"
ADDRESS_PREFIX="0.0.0.0/0"
NEXT_HOP_TYPE="VirtualAppliance"
NEXT_HOP_IP="10.0.1.68"
az network route-table route create \
--resource-group $RESOURCE_GROUP \
--route-table-name $ROUTE_TABLE_NAME \
--name $ROUTE_NAME \
--address-prefix $ADDRESS_PREFIX \
--next-hop-type $NEXT_HOP_TYPE \
--next-hop-ip-address $NEXT_HOP_IP
Utiliza az network vnet subnet update para asociar la tabla de rutas con la subred.
# Variables
RESOURCE_GROUP="test-rg"
VNET_SPOKE_NAME="vnet-spoke"
SPOKE_SUBNET_NAME="subnet-private"
ROUTE_TABLE_NAME="route-table-spoke"
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_SPOKE_NAME \
--name $SPOKE_SUBNET_NAME \
--route-table $ROUTE_TABLE_NAME
El tráfico desde las redes virtuales de radio a través de la red virtual de centro debe permitirse por medio de un directiva de firewall y una regla de red. Use el ejemplo siguiente para crear la directiva de firewall y la regla de red.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Firewall. Seleccione Directivas de firewall en los resultados de la búsqueda.
Seleccione firewall-policy.
Expanda Configuración y, a continuación, seleccione Reglas de red.
Seleccione + Agregar una colección de reglas.
En Agregar una colección de reglas, escriba o seleccione la siguiente información:
Configuración |
Valor |
Nombre |
Escriba spoke-to-internet. |
Tipo de colección de reglas |
Seleccione Network (Red). |
Prioridad |
Escriba 100. |
Acción de colección de reglas |
seleccione Permitir. |
Grupo de colección de reglas |
Seleccione DefaultNetworkRuleCollectionGroup. |
Reglas |
|
Nombre |
Escriba allow-web. |
Tipo de origen |
Dirección IP. |
Fuente |
Escriba 10.1.0.0/24. |
Protocolo |
seleccione TCP. |
Puertos de destino |
Escriba 80,443. |
Tipo de destino |
Seleccione Dirección IP. |
Destino |
Escriba *. |
Seleccione Agregar.
Use Get-AzFirewallPolicy para obtener la directiva de firewall existente.
# Get the existing firewall policy
$firewallPolicyParams = @{
Name = 'firewall-policy'
ResourceGroupName = 'test-rg'
}
$firewallPolicy = Get-AzFirewallPolicy @firewallPolicyParams
Use New-AzFirewallPolicyNetworkRule para crear una regla de red.
# Create a network rule for web traffic
$networkRuleParams = @{
Name = 'allow-internet'
SourceAddress = '10.1.0.0/24'
Protocol = 'TCP'
DestinationAddress = '*'
DestinationPort = '*'
}
$networkRule = New-AzFirewallPolicyNetworkRule @networkRuleParams
Use New-AzFirewallPolicyFilterRuleCollection para crear una colección de reglas para la regla de red.
# Create a rule collection for the network rule
$ruleCollectionParams = @{
Name = 'spoke-to-internet'
Priority = 100
Rule = $networkRule
ActionType = 'Allow'
}
$ruleCollection = New-AzFirewallPolicyFilterRuleCollection @ruleCollectionParams
Use New-AzFirewallPolicyRuleCollectionGroup para crear un grupo de recopilación de reglas.
$newRuleCollectionGroupParams = @{
Name = 'DefaultNetworkRuleCollectionGroup'
Priority = 200
FirewallPolicyObject = $firewallPolicy
RuleCollection = $ruleCollection
}
New-AzFirewallPolicyRuleCollectionGroup @newRuleCollectionGroupParams
Use az network firewall policy rule-collection-group create para crear un grupo de recopilación de reglas.
# Variables
RULE_COLLECTION_GROUP_NAME="DefaultNetworkRuleCollectionGroup"
FIREWALL_POLICY_NAME="firewall-policy"
RESOURCE_GROUP="test-rg"
PRIORITY="200"
az network firewall policy rule-collection-group create \
--name $RULE_COLLECTION_GROUP_NAME \
--policy-name $FIREWALL_POLICY_NAME \
--resource-group $RESOURCE_GROUP \
--priority $PRIORITY
Use az network firewall policy rule-collection-group collection add-filter-collection para crear una colección de reglas de red.
# Variables
COLLECTION_NAME="spoke-to-internet"
ACTION="Allow"
RULE_NAME="allow-web"
RULE_TYPE="NetworkRule"
SOURCE_ADDRESSES="10.1.0.0/24"
IP_PROTOCOLS="TCP"
DESTINATION_ADDRESSES="*"
DESTINATION_PORTS="*"
COLLECTION_PRIORITY="100"
FIREWALL_POLICY_NAME="firewall-policy"
RESOURCE_GROUP="test-rg"
RULE_COLLECTION_GROUP_NAME="DefaultNetworkRuleCollectionGroup"
az network firewall policy rule-collection-group collection add-filter-collection \
--name $COLLECTION_NAME \
--action $ACTION \
--rule-name $RULE_NAME \
--rule-type $RULE_TYPE \
--source-addresses $SOURCE_ADDRESSES \
--ip-protocols $IP_PROTOCOLS \
--destination-addresses $DESTINATION_ADDRESSES \
--destination-ports $DESTINATION_PORTS \
--collection-priority $COLLECTION_PRIORITY \
--policy-name $FIREWALL_POLICY_NAME \
--resource-group $RESOURCE_GROUP \
--rule-collection-group-name $RULE_COLLECTION_GROUP_NAME
Creación de una máquina virtual de prueba
Una máquina virtual de Ubuntu se usa para probar el tráfico saliente de Internet a través de la instancia de NAT Gateway. Use el ejemplo siguiente para crear una máquina virtual de Ubuntu.
En el portal, busque y seleccione Máquinas virtuales.
En Máquinas virtuales, seleccione + Crear y, después, Máquina virtual de Azure.
En la pestaña Datos básicos de Crear una máquina virtual, escriba o seleccione la siguiente información:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Selecciona tu suscripción. |
Grupo de recursos |
Seleccione test-rg. |
Detalles de instancia |
|
Nombre de la máquina virtual |
Escriba vm-spoke. |
Región |
Seleccione Centro-sur de EE. UU. (EE. UU.) . |
Opciones de disponibilidad |
Seleccione No se requiere redundancia de la infraestructura. |
Tipo de seguridad |
Deje el valor predeterminado Estándar. |
Imagen |
Seleccione Ubuntu Server 24.04 LTS: x64 Gen2. |
Arquitectura VM |
Deje el valor predeterminado, x64. |
Tamaño |
Seleccione un tamaño. |
Cuenta de administrador |
|
Tipo de autenticación |
Seleccione Contraseña. |
Nombre de usuario |
escriba usuarioazure. |
Contraseña |
Escriba una contraseña. |
Confirmar contraseña |
Reescriba la contraseña. |
Reglas de puerto de entrada |
|
Puertos de entrada públicos |
Seleccione Ninguno. |
Seleccione la pestaña Redes en la parte superior de la página o seleccione Siguiente: Discos, después Siguiente: Redes.
En la pestaña Redes, escriba o seleccione la siguiente información:
Configuración |
Valor |
Interfaz de red |
|
Red virtual |
Seleccione vnet-spoke. |
Subred |
Seleccione subnet-private (10.1.0.0/24). |
Dirección IP pública |
Seleccione Ninguno. |
Grupo de seguridad de red de NIC |
Seleccione Advanced (Avanzadas). |
Configuración del grupo de seguridad de red |
Seleccione Crear nuevo.
Escriba nsg-1 como nombre.
Deje el resto de los valores predeterminados y seleccione Aceptar. |
Deje el resto de las opciones en sus valores predeterminados y luego seleccione Revisar + crear.
Revise la configuración y seleccione Crear.
Espere a que la máquina virtual finalice la implementación antes de continuar con los pasos siguientes.
Nota:
Las máquinas virtuales de una red virtual con un host bastión no necesitarán direcciones IP públicas. Bastion proporcionará la dirección IP pública y las máquinas virtuales usarán direcciones IP privadas para comunicarse dentro de la red. Es posible quitar las direcciones IP públicas de cualquier máquina virtual en redes virtuales hospedadas por Bastion. Para obtener más información, consulte Desasociación de una dirección IP pública de una máquina virtual de Azure.
Use New-AzNetworkSecurityGroup para crear el grupo de seguridad de red.
$nsgParams = @{
ResourceGroupName = "test-rg"
Name = "nsg-1"
Location = "southcentralus"
}
New-AzNetworkSecurityGroup @nsgParams
Use New-AzNetworkInterface para crear la interfaz de red.
$nicParams = @{
ResourceGroupName = "test-rg"
Name = "nic-1"
SubnetId = (Get-AzVirtualNetwork -ResourceGroupName "test-rg" -Name "vnet-spoke").Subnets[0].Id
NetworkSecurityGroupId = (Get-AzNetworkSecurityGroup -ResourceGroupName "test-rg" -Name "nsg-1").Id
Location = "southcentralus"
}
New-AzNetworkInterface @nicParams
Use Get-Credential para establecer un nombre de usuario y una contraseña para la máquina virtual y almacenarlos en la variable $cred
.
$cred = Get-Credential
Nota:
Se requiere un nombre de usuario para la máquina virtual. La contraseña es opcional y no se usa si se establece. Se recomienda la configuración de claves SSH para máquinas virtuales Linux.
Use New-AzVMConfig para definir una máquina virtual.
$vmConfigParams = @{
VMName = "vm-spoke"
VMSize = "Standard_DS4_v2"
}
$vmConfig = New-AzVMConfig @vmConfigParams
Use Set-AzVMOperatingSystem y Set-AzVMSourceImage para crear el resto de la configuración de máquina virtual. En el ejemplo siguiente se crea una máquina virtual Ubuntu Server:
$osParams = @{
VM = $vmConfig
ComputerName = "vm-spoke"
Credential = $cred
}
$vmConfig = Set-AzVMOperatingSystem @osParams -Linux -DisablePasswordAuthentication
$imageParams = @{
VM = $vmConfig
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$vmConfig = Set-AzVMSourceImage @imageParams
Use Add-AzVMNetworkInterface para asociar la NIC que creó anteriormente a la máquina virtual.
# Get the network interface object
$nicParams = @{
ResourceGroupName = "test-rg"
Name = "nic-1"
}
$nic = Get-AzNetworkInterface @nicParams
$vmConfigParams = @{
VM = $vmConfig
Id = $nic.Id
}
$vmConfig = Add-AzVMNetworkInterface @vmConfigParams
Use New-AzVM para crear la máquina virtual. El comando genera claves SSH para la máquina virtual para el inicio de sesión. Anote la ubicación de la clave privada. La clave privada es necesaria en pasos posteriores para conectarse a la máquina virtual con Azure Bastion.
$vmParams = @{
VM = $vmConfig
ResourceGroupName = "test-rg"
Location = "southcentralus"
SshKeyName = "ssh-key"
}
New-AzVM @vmParams -GenerateSshKey
Use az network nsg create para crear un grupo de seguridad de red.
# Variables
RESOURCE_GROUP="test-rg"
NSG_NAME="nsg-1"
LOCATION="southcentralus"
az network nsg create \
--resource-group $RESOURCE_GROUP \
--name $NSG_NAME \
--location $LOCATION
Use az network nic create para crear una interfaz de red.
# Variables
RESOURCE_GROUP="test-rg"
NIC_NAME="vm-spoke-nic"
VNET_SPOKE_NAME="vnet-spoke"
SPOKE_SUBNET_NAME="subnet-private"
NSG_NAME="nsg-1"
az network nic create \
--resource-group $RESOURCE_GROUP \
--name $NIC_NAME \
--vnet-name $VNET_SPOKE_NAME \
--subnet $SPOKE_SUBNET_NAME \
--network-security-group $NSG_NAME
Use az vm create para crear una máquina virtual.
# Variables
RESOURCE_GROUP="test-rg"
VM_NAME="vm-spoke"
LOCATION="southcentralus"
NIC_NAME="vm-spoke-nic"
VM_IMAGE="Ubuntu2204"
ADMIN_USERNAME="azureuser"
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--location $LOCATION \
--nics $NIC_NAME \
--image $VM_IMAGE \
--admin-username $ADMIN_USERNAME \
--generate-ssh-keys
Prueba de la puerta de enlace NAT
Conéctese a las máquinas virtuales de Ubuntu que ha creado en los pasos anteriores para comprobar que el tráfico saliente de Internet sale de la instancia de NAT Gateway.
Obtención de la IP pública de NAT Gateway
Obtenga la dirección IP pública de NAT Gateway para comprobar los pasos que se indican más adelante en el artículo.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba IP pública. Seleccione Direcciones IP públicas en los resultados de la búsqueda.
Seleccionar public-ip-nat.
Anote el valor de la Dirección IP. El ejemplo usado en este artículo es 203.0.113.0.25.
Use Get-AzPublicIpAddress para obtener la dirección IP pública de la puerta de enlace NAT.
# Get the public IP address of the NAT gateway
$publicIpNatParams = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip-nat'
}
$publicIpNat = Get-AzPublicIpAddress @publicIpNatParams
$publicIpNat.IpAddress
Use az network public-ip show para obtener la dirección IP pública de la puerta de enlace NAT.
# Variables
RESOURCE_GROUP="test-rg"
NAT_PUBLIC_IP_NAME="public-ip-nat"
az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name $NAT_PUBLIC_IP_NAME \
--query "ipAddress" \
--output tsv
Prueba de la instancia de NAT Gateway desde la red de radio
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Máquina virtual. En los resultados de la búsqueda, seleccione Máquinas virtuales.
Seleccione vm-spoke.
En la página Información general, seleccione Conectar y, después, Conectar a través de Bastion.
Seleccione SSH como tipo de conexión. Cargue el archivo de clave privada SSH. Seleccione Conectar.
En el indicador de bash, introduce el siguiente comando:
curl ifconfig.me
Comprueba que la dirección IP que devolvió el comando coincida con la dirección IP pública de la puerta de enlace NAT.
azureuser@vm-1:~$ curl ifconfig.me
203.0.113.0.25
Cierre la conexión de Bastion a vm-spoke.
Cuando termine de usar los recursos que creó, puede eliminar el grupo de recursos y todos sus recursos.
En Azure Portal, busque y seleccione Grupos de recursos.
En la página Grupos de recursos, seleccione el grupo de recursos test-rg.
En la página test-rg, elija Eliminar grupo de recursos.
Escriba test-rg en Introducir nombre del grupo de recursos para confirmar la eliminación y, luego, seleccione Eliminar.
Use Remove-AzResourceGroup para quitar el grupo de recursos.
# Remove resource group
$rgParams = @{
Name = 'test-rg'
}
Remove-AzResourceGroup @rgParams
Use az group delete para quitar el grupo de recursos.
# Variables
RESOURCE_GROUP="test-rg"
az group delete \
--name $RESOURCE_GROUP \
--yes \
--no-wait
Pasos siguientes
Avance al siguiente artículo para obtener información sobre cómo integrar una puerta de enlace NAT con una instancia de Azure Load Balancer: