I den här handledningen lär du dig att integrera en NAT-gateway med Azure Firewall i ett hub-and-spoke-nätverk för förbättrad utgående anslutning och skalbarhet.
Azure Firewall tillhandahåller 2 496 SNAT-portar per offentlig IP-adress, konfigurerade per instans av Virtual Machine Scale Set (minst två instanser). Du kan associera upp till 250 offentliga IP-adresser till Azure Firewall. Beroende på dina arkitekturkrav och trafikmönster kan du behöva fler SNAT-portar än vad Azure Firewall kan tillhandahålla. Du kan också kräva användning av färre offentliga IP-adresser samtidigt som du behöver fler SNAT-portar. En bättre metod för utgående anslutning är att använda NAT-gateway. NAT-gatewayen tillhandahåller 64 512 SNAT-portar per offentlig IP-adress och kan användas med upp till 16 offentliga IP-adresser.
NAT-gatewayen kan integreras med Azure Firewall genom att konfigurera NAT-gatewayen direkt till Azure Firewall-undernätet. Den här associationen ger en mer skalbar metod för utgående anslutning. För produktionstillämpningar rekommenderas ett navnätverk, där brandväggen finns i ett eget virtuellt nätverk. Arbetsbelastningsservrarna är peerkopplade virtuella nätverk i samma region som det virtuella hubbnätverket där brandväggen finns. I den här arkitekturkonfigurationen kan NAT-gatewayen tillhandahålla utgående anslutning från det virtuella hubbnätverket till alla peerkopplade spoknätverk.
Anteckning
Även om du kan distribuera NAT Gateway i en hubb-och-ekernätverksarkitektur enligt beskrivningen i den här guiden, stöds inte NAT Gateway i det virtuella hubbnätverket i en vWAN-arkitektur. För användning i en vWAN-arkitektur måste NAT Gateway konfigureras direkt med de virtuella spoke-nätverk som är associerade med den säkra virtuella hubben (vWAN). Mer information om arkitekturalternativ för Azure Firewall finns i Vad är arkitekturalternativen för Azure Firewall Manager?.
I den här självstudien lär du dig att:
- Skapa ett virtuellt navnätverk och distribuera en Azure Firewall och Azure Bastion under distributionen
- Skapa en NAT-gateway och associera den med brandväggsundernätet i det virtuella hubbnätverket
- Skapa ett virtuellt spindelnätverk
- Skapa en koppling för virtuella nätverk
- Skapa en routningstabell för det virtuella ekernätverket
- Skapa en brandväggsprincip för det virtuella hubbnätverket
- Skapa en virtuell dator för att testa den utgående anslutningen via NAT-gatewayen
Förutsättningar
Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
| Alternativ |
Exempel/länk |
| Välj Försök i det övre högra hörnet av kod- eller kommandoblocket. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. |
|
| Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. |
|
| Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
|
Så här använder du Azure Cloud Shell:
Starta den Cloud Shell.
Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.
Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Skift+V på macOS.
Välj Ange för att köra koden eller kommandot.
Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Azure PowerShell-modulen version 1.0.0 eller senare. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att skapa en anslutning till Azure.
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
- Den här artikeln kräver version 2.0.28 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa det virtuella hubbnätverket
Det virtuella hubbnätverket innehåller brandväggsundernätet som är associerat med Azure Firewall och NAT-gatewayen. Använd följande exempel för att skapa det virtuella hubbnätverket.
Logga in på Azure-portalen.
I sökrutan överst i portalen anger du Virtuellt nätverk. Välj Virtuella nätverk i sökresultaten.
Välj + Skapa.
På fliken Grundläggande i Skapa virtuellt nätverk anger eller väljer du följande information:
| Inställning |
Värde |
|
Projektinformation |
|
| Prenumeration |
Välj din prenumeration. |
| Resursgrupp |
Välj Skapa ny.
Ange test-rg.
Välj OK. |
|
Instansinformation |
|
| Namn |
Ange vnet-hub. |
| Region |
Välj (USA) USA, södra centrala. |
Välj Nästa för att fortsätta till fliken Säkerhet .
Välj Aktivera Azure Bastion i avsnittet Azure Bastion på fliken Säkerhet .
Azure Bastion använder webbläsaren för att ansluta till virtuella datorer i ditt virtuella nätverk via SSH (Secure Shell) eller RDP (Remote Desktop Protocol) med hjälp av sina privata IP-adresser. De virtuella datorerna behöver inte offentliga IP-adresser, klientprogramvara eller särskild konfiguration. Mer information om Azure Bastion finns i Azure Bastion
Anteckning
Priserna per timme börjar från det ögonblick då Bastion distribueras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du distribuerar Bastion som en del av en självstudie eller ett test rekommenderar vi att du tar bort den här resursen när du har använt den.
Ange eller välj följande information i Azure Bastion:
| Inställning |
Värde |
| Azure Bastion-värdnamn |
Ange bastion. |
| Offentlig IP-adress för Azure Bastion |
Välj Skapa en offentlig IP-adress.
Ange public-ip-bastion i Namn.
Välj OK. |
Välj Aktivera Azure Firewall i avsnittet Azure Firewall på fliken Säkerhet .
Azure Firewall är en hanterad, molnbaserad tjänst för nätverkssäkerhet som skyddar dina Azure Virtual Network-resurser. Det är en fullt tillståndskänslig brandvägg som tjänst med inbyggd hög tillgänglighet och obegränsad molnskalbarhet. Mer information om Azure Firewall finns i Azure Firewall.
Ange eller välj följande information i Azure Firewall:
| Inställning |
Värde |
| Azure Firewall-namn |
Ange brandvägg. |
| Nivå |
Välj Standard. |
| Riktlinjer |
Välj Skapa ny.
Ange brandväggsprincip i Namn.
Välj OK. |
| Offentlig IP-adress för Azure Firewall |
Välj Skapa en offentlig IP-adress.
Ange public-ip-firewall i Namn.
Välj OK. |
Välj Nästa för att gå vidare till fliken IP-adresser .
Välj Granska + skapa.
Välj Skapa.
Det tar några minuter innan bastion värden och brandväggen distribueras. När det virtuella nätverket skapas som en del av distributionen kan du gå vidare till nästa steg.
Använd New-AzResourceGroup för att skapa en resursgrupp.
# Create resource group
$rgParams = @{
Name = 'test-rg'
Location = 'South Central US'
}
New-AzResourceGroup @rgParams
Använd New-AzVirtualNetwork för att skapa det virtuella hubbnätverket.
# 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
Använd Add-AzVirtualNetworkSubnetConfig för att skapa ett undernät för Azure Firewall och 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
Använd Set-AzVirtualNetwork för att uppdatera det virtuella nätverket.
# Create the virtual network
$hubVnet | Set-AzVirtualNetwork
Använd New-AzPublicIpAddress för att skapa en offentlig IP-adress för 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
Använd New-AzBastion för att skapa 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
Använd New-AzPublicIpAddress för att skapa en offentlig IP-adress för 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
Använd New-AzFirewallPolicy för att skapa en brandväggspolicy.
# Create firewall policy
$firewallPolicyParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'firewall-policy'
}
$firewallPolicy = New-AzFirewallPolicy @firewallPolicyParams
Använd New-AzFirewall för att skapa 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
Använd az group create för att skapa en resursgrupp.
# Variables
RESOURCE_GROUP="test-rg"
LOCATION="southcentralus"
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Använd az network vnet create för att skapa det virtuella hubbnätverket.
# 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
Använd az network vnet subnet create för att skapa ett undernät för 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
Använd az network vnet subnet create för att skapa ett undernät för 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
Använd az network public-ip create för att skapa en offentlig IP-adress för 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
Använd az network bastion create för att skapa 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
Använd az network public-ip create för att skapa en offentlig IP-adress för 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
Använd az network firewall policy create för att skapa en brandväggspolicy.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_POLICY_NAME="firewall-policy"
az network firewall policy create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_POLICY_NAME
Använd az network firewall create för att skapa 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
Skapa NAT-gatewayen
All utgående Internettrafik passerar NAT-gatewayen till Internet. Använd följande exempel för att skapa en NAT-gateway för hubben och ekernätverket och associera den med AzureFirewallSubnet.
I sökrutan överst i portalen anger du NAT-gateway. Välj NAT-gatewayer i sökresultaten.
Välj + Skapa.
Ange eller välj följande information på fliken Grundläggande i Skapa nat-gateway (network address translation):
| Inställning |
Värde |
|
Projektinformation |
|
| Prenumeration |
Välj din prenumeration. |
| Resursgrupp |
Välj test-rg. |
|
Instansinformation |
|
| NAT-gatewayens namn |
Ange nat-gateway. |
| Region |
Välj USA, södra centrala. |
| Tillgänglighetszon |
Välj en zon eller Ingen zon. |
| TCP-timeout för inaktivitet (minuter) |
Lämna standardvärdet 4. |
Mer information om tillgänglighetszoner finns i NAT-gateway och tillgänglighetszoner.
Välj Nästa: Utgående IP-adress.
I Utgående IP-adress i offentliga IP-adresser väljer du Skapa en ny offentlig IP-adress.
Ange public-ip-nat i Namn.
Välj OK.
Välj Nästa: Undernät.
I Virtuellt nätverk väljer du vnet-hub.
Välj AzureFirewallSubnet i Undernätsnamn.
Välj Granska + skapa.
Välj Skapa.
Använd New-AzPublicIpAddress för att skapa en offentlig IP-adress för NAT-gatewayen.
# Create public IP for NAT gateway
$publicIpNatParams = @{
ResourceGroupName = 'test-rg'
Location = 'southcentralus'
Name = 'public-ip-nat'
AllocationMethod = 'Static'
Sku = 'Standard'
}
$publicIpNat = New-AzPublicIpAddress @publicIpNatParams
Använd New-AzNatGateway för att skapa NAT-gatewayen.
$natGatewayParams = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
PublicIpAddress = $publicIpNat
Sku = 'Standard'
IdleTimeoutInMinutes = 4
Location = 'South Central US'
}
$natGateway = New-AzNatGateway @natGatewayParams
Använd Set-AzVirtualNetworkSubnetConfig för att associera NAT-gateway med 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
Använd Set-AzVirtualNetwork för att uppdatera det virtuella nätverket.
# Update the virtual network
$hubVnet | Set-AzVirtualNetwork
Använd az network public-ip create för att skapa en offentlig IP-adress för NAT-gateway.
# 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
Använd az network nat gateway create för att skapa en NAT-gateway.
# 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
Använd az network vnet subnet update för att associera NAT-gateway med 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
Skapa ett virtuellt ekernätverk
Det virtuella spoke-nätverket innehåller den virtuella testdator som används för att testa routingen av internettrafiken till NAT-gatewayen. Använd följande exempel för att skapa ekernätverket.
I sökrutan överst i portalen anger du Virtuellt nätverk. Välj Virtuella nätverk i sökresultaten.
Välj + Skapa.
På fliken Grundläggande i Skapa virtuellt nätverk anger eller väljer du följande information:
| Inställning |
Värde |
|
Projektinformation |
|
| Prenumeration |
Välj din prenumeration. |
| Resursgrupp |
Välj test-rg. |
|
Instansinformation |
|
| Namn |
Ange vnet-spoke. |
| Region |
Välj USA, södra centrala. |
Välj Nästa för att fortsätta till fliken Säkerhet .
Välj Nästa för att gå vidare till fliken IP-adresser .
På fliken IP-adresser i IPv4-adressutrymmet väljer du Ta bort adressutrymme för att ta bort adressutrymmet som fylls i automatiskt.
Välj + Lägg till IPv4-adressutrymme.
Ange 10.1.0.0 i IPv4-adressrymd. Lämna standardvärdet /16 (65 536 adresser) i maskmarkeringen.
Välj + Lägg till ett undernät.
I Lägg till ett undernät anger eller väljer du följande information:
| Inställning |
Värde |
| Undernätssyfte |
Lämna standardinställningen Standard. |
| Namn |
Ange subnät-privat. |
|
IPv4 |
|
| IPv4-adressintervall |
Låt standardvärdet vara 10.1.0.0/16. |
| Startadress |
Låt standardvärdet vara 10.1.0.0. |
| Storlek |
Lämna standardvärdet /24(256 adresser). |
Markera Lägga till.
Välj Granska + skapa.
Välj Skapa.
Använd New-AzVirtualNetwork för att skapa spoke-nätverket.
# 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
Använd Add-AzVirtualNetworkSubnetConfig för att skapa ett undernät för spoke-nätverket.
# Create subnet in spoke virtual network
$subnetParams = @{
Name = 'subnet-private'
AddressPrefix = '10.1.0.0/24'
VirtualNetwork = $spokeVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
Använd Set-AzVirtualNetwork för att uppdatera spoke-nätverket.
# Create the virtual network
$spokeVnet | Set-AzVirtualNetwork
Använd az network vnet create för att skapa det virtuella "spoke"-nätverket.
# 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
Skapa peering mellan hubben och spoket
En virtuell nätverkspeering används för att ansluta hubben till ekern och ekern till hubben. Använd följande exempel för att skapa en dubbelriktad nätverkspeering mellan hubben och ekern.
I sökrutan överst i portalen anger du Virtuellt nätverk. Välj Virtuella nätverk i sökresultaten.
Välj vnet-hubb.
Välj Peerings i Inställningar.
Markera + Lägg till.
Ange eller välj följande information i Lägg till peering:
| Inställning |
Värde |
|
Sammanfattning av virtuella nätverk |
|
| Namn på peeringlänk |
Ange vnet-spoke-to-vnet-hub. |
| Distributionsmodell för virtuellt nätverk |
Låt standardvärdet för Resource manager vara kvar. |
| Prenumeration |
Välj din prenumeration. |
| Virtuellt nätverk |
Välj vnet-spoke (test-rg). |
|
Inställningar för fjärrvirtuell nätverkspeering |
|
| Tillåt att "vnet-spoke" får åtkomst till "vnet-hub" |
Lämna standardinställningen Markerad. |
| Tillåt att "vnet-spoke" tar emot vidarebefordrad trafik från "vnet-hub" |
Markera kryssrutan. |
| Tillåt att gateway- eller routningsservern i "vnet-spoke" vidarebefordrar trafik till "vnet-hub" |
Lämna standardvärdet Avmarkerat. |
| Aktivera "vnet-spoke" för att använda fjärrgatewayen eller routningsservern för vnet-hubben |
Lämna standardvärdet Avmarkerat. |
|
Sammanfattning av lokalt virtuellt nätverk |
|
| Namn på peeringlänk |
Ange vnet-hub-to-vnet-spoke. |
|
Peeringinställningar för lokalt virtuellt nätverk |
|
| Tillåt att "vnet-hub" får åtkomst till "vnet-spoke" |
Lämna standardinställningen Markerad. |
| Tillåt att "vnet-hub" tar emot vidarebefordrad trafik från "vnet-spoke" |
Markera kryssrutan. |
| Tillåt gateway- eller routningsserver i "vnet-hub" att vidarebefordra trafik till "vnet-spoke" |
Lämna standardvärdet Avmarkerat. |
| Aktivera "vnet-hub" för att använda "vnet-spokes" fjärrgateway eller routningsserver |
Lämna standardvärdet Avmarkerat. |
Markera Lägga till.
Välj Uppdatera och kontrollera så att peeringstatusen är Ansluten.
Använd Add-AzVirtualNetworkPeering för att skapa en peering från hubben till ekern.
# Create peering from hub to spoke
$peeringParams = @{
Name = 'vnet-hub-to-vnet-spoke'
VirtualNetwork = $hubVnet
RemoteVirtualNetworkId = $spokeVnet.Id
AllowForwardedTraffic = $true
}
Add-AzVirtualNetworkPeering @peeringParams
Använd Add-AzVirtualNetworkPeering för att etablera en peering från spaken till hubben.
# Create peering from spoke to hub
$peeringParams = @{
Name = 'vnet-spoke-to-vnet-hub'
VirtualNetwork = $spokeVnet
RemoteVirtualNetworkId = $hubVnet.Id
AllowForwardedTraffic = $true
}
Add-AzVirtualNetworkPeering @peeringParams
Använd az network vnet peering create för att skapa peering från hubb till 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
Använd az network vnet peering create för att skapa peering från tal till hubb.
# 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
Skapa ekertabell för nätverksroutning
En routningstabell tvingar all trafik som lämnar det virtuella ekernätverket att gå till det virtuella hubbnätverket. Routningstabellen konfigureras med den privata IP-adressen för Azure Firewall som den virtuella installationen.
Hämta en privat IP-adress för brandväggen
Brandväggens privata IP-adress behövs för routningstabellen som skapades senare i den här artikeln. Använd följande exempel för att hämta brandväggens privata IP-adress.
I sökrutan överst i portalen anger du Brandvägg. Välj Brandväggar i sökresultatet.
Välj brandvägg.
I översikten över brandväggen noterar du IP-adressen i fältet Brandväggens privata IP-adress. IP-adressen i det här exemplet är 10.0.1.68.
Använd Get-AzFirewall för att hämta brandväggens privata IP-adress.
# 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
Skapa routningstabell
Skapa en routningstabell för att tvinga all utgående trafik mellan ekrar och internet via brandväggen i det virtuella hubbnätverket.
I sökrutan överst i portalen anger du Routningstabell. Välj Routningstabeller i sökresultatet.
Välj + Skapa.
I Skapa routningstabell anger eller väljer du följande information:
| Inställning |
Värde |
|
Projektinformation |
|
| Prenumeration |
Välj din prenumeration. |
| Resursgrupp |
Välj test-rg. |
|
Instansinformation |
|
| Region |
Välj USA, södra centrala. |
| Namn |
Ange route-table-spoke. |
| Sprida gatewayvägar |
Välj Nej. |
Välj Granska + skapa.
Välj Skapa.
I sökrutan överst i portalen anger du Routningstabell. Välj Routningstabeller i sökresultatet.
Välj route-table-spoke.
I Inställningar väljer du Vägar.
Välj + Lägg till i vägar.
Ange eller välj följande information i Lägg till väg:
| Inställning |
Värde |
| Vägnamn |
Ange route-to-hub. |
| Måltyp |
Välj IP-adresser. |
| Mål-IP-adresser/CIDR-intervall |
Ange 0.0.0.0/0. |
| Nästa hopptyp |
Välj Virtuell installation. |
| adress för nästa hopp |
Ange 10.0.1.68. |
Markera Lägga till.
Välj Undernät i Inställningar.
Välj + Associera.
Ange eller välj följande information i Associera undernät:
| Inställning |
Värde |
| Virtuellt nätverk |
Välj vnet-spoke (test-rg). |
| Undernät |
Välj subnet-private. |
Välj OK.
Använd New-AzRouteTable för att skapa routningstabellen.
# Create route table
$routeTableParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'route-table-spoke'
}
$routeTable = New-AzRouteTable @routeTableParams
Använd Add-AzRouteConfig för att skapa en väg i routningstabellen.
# 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
Använd Set-AzRouteTable för att uppdatera routningstabellen.
# Update the route table
$routeTable | Set-AzRouteTable
Använd Set-AzVirtualNetworkSubnetConfig för att associera routetabellen med spoke-undernätet.
# Associate route table with subnet
$subnetConfigParams = @{
VirtualNetwork = $spokeVnet
Name = 'subnet-private'
AddressPrefix = '10.1.0.0/24'
RouteTable = $routeTable
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
Använd Set-AzVirtualNetwork för att uppdatera spoke-nätverket.
# Update the virtual network
$spokeVnet | Set-AzVirtualNetwork
Använd az network route-table create för att skapa en routningstabell.
# 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
Använd az network route-table route create för att skapa en väg.
# 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
Använd az network vnet subnet update för att associera routningstabellen med undernätet.
# 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
Trafik från ekern via hubben måste tillåtas via brandväggsprincipen och en nätverksregel. Använd följande exempel för att skapa brandväggsprincipen och nätverksregeln.
I sökrutan överst i portalen anger du Brandvägg. Välj Brandväggsprinciper i sökresultatet.
Välj brandväggsprincip.
Expandera Inställningar och välj sedan Nätverksregler.
Välj + Lägg till en regelsamling.
I Lägg till en regelsamling anger eller väljer du följande information:
| Inställning |
Värde |
| Namn |
Ange spoke-to-internet. |
| Typ av regelsamling |
Välj Nätverk. |
| Prioritet |
Ange 100. |
| Regelsamlingsåtgärd |
Markera Tillåt. |
| Regelsamlingsgrupp |
Välj DefaultNetworkRuleCollectionGroup. |
| Regler |
|
| Namn |
Ange allow-web. |
| Källtyp |
IP-adress. |
| Källa |
Ange 10.1.0.0/24. |
| Protokoll |
Välj TCP. |
| Målportar |
Ange 80 443. |
| Måltyp |
Välj IP-adress. |
| Mål |
Inträda* |
Markera Lägga till.
Använd Get-AzFirewallPolicy för att hämta den befintliga brandväggspolicyn.
# Get the existing firewall policy
$firewallPolicyParams = @{
Name = 'firewall-policy'
ResourceGroupName = 'test-rg'
}
$firewallPolicy = Get-AzFirewallPolicy @firewallPolicyParams
Använd New-AzFirewallPolicyNetworkRule för att skapa en nätverksregel.
# 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
Använd New-AzFirewallPolicyFilterRuleCollection för att skapa en regelsamling för nätverksregeln.
# Create a rule collection for the network rule
$ruleCollectionParams = @{
Name = 'spoke-to-internet'
Priority = 100
Rule = $networkRule
ActionType = 'Allow'
}
$ruleCollection = New-AzFirewallPolicyFilterRuleCollection @ruleCollectionParams
Använd New-AzFirewallPolicyRuleCollectionGroup för att skapa en regelsamlingsgrupp.
$newRuleCollectionGroupParams = @{
Name = 'DefaultNetworkRuleCollectionGroup'
Priority = 200
FirewallPolicyObject = $firewallPolicy
RuleCollection = $ruleCollection
}
New-AzFirewallPolicyRuleCollectionGroup @newRuleCollectionGroupParams
Använd az network firewall policy rule-collection-group create för att skapa en regelsamlingsgrupp.
# 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
Använd az network firewall policy rule-collection-group collection add-filter-collection för att skapa en nätverksregeluppsättning.
# 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
Skapa en virtuell testdator
En virtuell Ubuntu-dator används för att testa utgående Internettrafik via NAT-gatewayen. Använd följande exempel för att skapa en virtuell Ubuntu-dator.
I portalen söker du efter och väljer Virtuella datorer.
I Virtuella datorer väljer du + Skapa och sedan Virtuell Azure-dator.
På fliken Grundläggande i Skapa en virtuell dator anger du eller väljer följande information:
| Inställning |
Värde |
|
Projektinformation |
|
| Prenumeration |
Välj din prenumeration. |
| Resursgrupp |
Välj test-rg. |
|
Instansinformation |
|
| Namn på virtuell maskin |
Ange vm-spoke. |
| Region |
Välj (USA) USA, södra centrala. |
| Tillgängliga alternativ |
Välj Ingen infrastrukturredundans krävs. |
| Säkerhetstyp |
Lämna standardinställningen Standard. |
| Bild |
Välj Ubuntu Server 24.04 LTS – x64 Gen2. |
| VM-arkitektur |
Låt standardvärdet x64 vara kvar. |
| Storlek |
Välj en storlek. |
|
Administratörskonto |
|
| Autentiseringstyp |
Välj Lösenord. |
| Användarnamn |
Ange azureuser. |
| Lösenord |
Ange ett lösenord. |
| Bekräfta lösenord |
Ange lösenordet igen. |
|
Regler för inkommande portar |
|
| Offentliga inkommande portar |
Välj Ingen. |
Välj fliken Nätverk överst på sidan eller välj Nästa:Diskar och sedan Nästa:Nätverk.
Ange eller välj följande information på fliken Nätverk :
| Inställning |
Värde |
|
Nätverksgränssnitt |
|
| Virtuellt nätverk |
Välj vnet-spoke. |
| Undernät |
Välj undernät privat (10.1.0.0/24). |
| Offentlig IP-adress |
Välj Ingen. |
| Nätverkssäkerhetsgrupp |
Välj Avancerat. |
| Konfigurera nätverkssäkerhetsgrupp |
Välj Skapa ny.
Ange nsg-1 som namn.
Låt resten vara som standard och välj OK. |
Låt resten av inställningarna vara som standard och välj Granska + skapa.
Granska inställningarna och välj Skapa.
Vänta tills den virtuella datorn har slutfört distributionen innan du fortsätter till nästa steg.
Anteckning
Virtuella datorer i ett virtuellt nätverk med en bastionvärd behöver inte offentliga IP-adresser. Bastion tillhandahåller den offentliga IP-adressen och de virtuella datorerna använder privata IP-adresser för att kommunicera i nätverket. Du kan ta bort de offentliga IP-adresserna från alla virtuella datorer i bastionens värdbaserade virtuella nätverk. Mer information finns i Koppla bort en offentlig IP-adress från en virtuell Azure-dator.
Använd New-AzNetworkSecurityGroup för att skapa nätverkssäkerhetsgruppen.
$nsgParams = @{
ResourceGroupName = "test-rg"
Name = "nsg-1"
Location = "southcentralus"
}
New-AzNetworkSecurityGroup @nsgParams
Använd New-AzNetworkInterface för att skapa nätverksgränssnittet.
$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
Använd Get-Credential för att ange ett användarnamn och lösenord för den virtuella datorn och lagra dem i variabeln $cred .
$cred = Get-Credential
Anteckning
Ett användarnamn krävs för den virtuella datorn. Lösenordet är valfritt och används inte om det anges. SSH-nyckelkonfiguration rekommenderas för virtuella Linux-datorer.
Använd New-AzVMConfig för att definiera en virtuell dator.
$vmConfigParams = @{
VMName = "vm-spoke"
VMSize = "Standard_DS4_v2"
}
$vmConfig = New-AzVMConfig @vmConfigParams
Använd Set-AzVMOperatingSystem och Set-AzVMSourceImage för att skapa resten av vm-konfigurationen. I följande exempel skapas en virtuell Ubuntu Server-dator:
$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
Använd Add-AzVMNetworkInterface för att koppla nätverkskortet som du skapade tidigare till den virtuella datorn.
# 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
Använd New-AzVM för att skapa den virtuella datorn. Kommandot genererar SSH-nycklar för den virtuella datorn för inloggning. Anteckna platsen för den privata nyckeln. Den privata nyckeln behövs i senare steg för att ansluta till den virtuella datorn med Azure Bastion.
$vmParams = @{
VM = $vmConfig
ResourceGroupName = "test-rg"
Location = "southcentralus"
SshKeyName = "ssh-key"
}
New-AzVM @vmParams -GenerateSshKey
Använd az network nsg create för att skapa en nätverkssäkerhetsgrupp.
# Variables
RESOURCE_GROUP="test-rg"
NSG_NAME="nsg-1"
LOCATION="southcentralus"
az network nsg create \
--resource-group $RESOURCE_GROUP \
--name $NSG_NAME \
--location $LOCATION
Använd az network nic create för att skapa ett nätverksgränssnitt.
# 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
Använd az vm create för att skapa en virtuell dator.
# 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
Testa NAT-gateway
Du ansluter till de virtuella Ubuntu-datorerna som du skapade i föregående steg för att kontrollera att den utgående Internettrafiken lämnar NAT-gatewayen.
Hämta offentlig IP-adress för NAT-gateway
Hämta den offentliga IP-adressen för NAT-gatewayen för verifiering av stegen senare i artikeln.
I sökrutan överst i portalen anger du Offentlig IP-adress. Välj Offentliga IP-adresser i sökresultatet.
Välj public-ip-nat.
Anteckna värdet i IP-adressen. Exemplet som används i den här artikeln är 203.0.113.0.25.
Använd Get-AzPublicIpAddress för att hämta nat-gatewayens offentliga IP-adress.
# Get the public IP address of the NAT gateway
$publicIpNatParams = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip-nat'
}
$publicIpNat = Get-AzPublicIpAddress @publicIpNatParams
$publicIpNat.IpAddress
Använd az network public-ip show för att hämta nat-gatewayens offentliga IP-adress.
# 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
Testa NAT-gateway från grenkoppling
I sökrutan överst i portalen anger du Virtuell dator. Välj Virtuella datorer i sökresultaten.
Välj vm-spoke.
I Översikt väljer du Anslut och sedan Anslut via Bastion.
Välj SSH som anslutningstyp. Ladda upp din privata SSH-nyckelfil. Välj Anslut.
I bash-prompten anger du följande kommando:
curl ifconfig.me
Kontrollera att IP-adressen som returneras av kommandot matchar nat-gatewayens offentliga IP-adress.
azureuser@vm-1:~$ curl ifconfig.me
203.0.113.0.25
Stäng Bastion-anslutningen till vm-spoke.
När du är klar med de resurser som du skapade kan du ta bort resursgruppen och alla dess resurser.
I Azure Portal söker du efter och väljer Resursgrupper.
På sidan Resursgrupper väljer du resursgruppen test-rg .
På sidan test-rg väljer du Ta bort resursgrupp.
Ange test-rg i Ange resursgruppsnamn för att bekräfta borttagningen och välj sedan Ta bort.
Använd Remove-AzResourceGroup för att ta bort resursgruppen.
# Remove resource group
$rgParams = @{
Name = 'test-rg'
}
Remove-AzResourceGroup @rgParams
Använd az group delete för att ta bort resursgruppen.
# Variables
RESOURCE_GROUP="test-rg"
az group delete \
--name $RESOURCE_GROUP \
--yes \
--no-wait
Nästa steg
Gå vidare till nästa artikel för att lära dig hur du integrerar en NAT-gateway med en Azure Load Balancer: