I den här snabbstarten får du lära dig hur du skapar en NAT-gateway med hjälp av Azure-portalen, Azure CLI, PowerShell, Bicep, ARM-mallen och Terraform. NAT Gateway-tjänsten tillhandahåller utgående anslutning för virtuella datorer i Azure.
Skapa en NAT-gateway
Innan du distribuerar NAT-gatewayresursen och de andra resurserna måste en resursgrupp innehålla de resurser som har distribuerats. I följande steg skapar du en resursgrupp, EN NAT-gatewayresurs och en offentlig IP-adress. Du kan använda en eller flera offentliga IP-adressresurser, offentliga IP-prefix eller båda.
Information om offentliga IP-prefix och en NAT-gateway finns i Hantera NAT-gateway.
I sökrutan överst i portalen anger du NAT-gateway. Välj NAT-gatewayer i sökresultaten.
Välj + Skapa.
I Skapa NAT-gateway (Network Address Translation) anger eller väljer du den här informationen på fliken Grundläggande :
Inställning |
Värde |
Projektinformation |
|
Prenumeration |
Välj din Azure-prenumeration. |
Resursgrupp |
Välj Skapa ny.
Ange test-rg.
Välj OK. |
Instansinformation |
|
NAT-gatewayens namn |
Ange nat-gateway |
Region |
Välj Östra USA 2 |
Tillgänglighetszon |
Välj Ingen zon. |
Inaktivitetstid för TCP (minuter) |
Lämna standardvärdet 4. |
Information om tillgänglighetszoner och NAT-gateway finns i NAT-gateway och tillgänglighetszoner.
Välj fliken Utgående IP eller välj knappen Nästa: Utgående IP längst ned på sidan.
På fliken Utgående IP-adress anger eller väljer du följande information:
Inställning |
Värde |
Offentliga IP-adresser |
Välj Skapa en ny offentlig IP-adress.
I Namn anger du public-ip-nat.
Välj OK. |
Välj fliken Granska + skapa eller välj den blå knappen Granska + skapa längst ned på sidan.
Välj Skapa.
Skapa ett virtuellt nätverk och en bastionvärd.
Följande procedur skapar ett virtuellt nätverk med ett resursundernät, ett Azure Bastion-undernät och en Azure Bastion-värd.
I portalen söker du efter och väljer Virtuella nätverk.
På sidan Virtuella nätverk väljer du + 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-1. |
Region |
Välj (USA) East US 2. |
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
Anmärkning
Timprissättningen startar när Bastion aktiveras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du implementerar Bastion som en del av en handledning eller test, rekommenderar vi att du raderar denna resurs efter att du har använt den klart.
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 Nästa för att fortsätta till fliken IP-adresser .
I rutan adressutrymme i Undernät väljer du standardundernätet .
I Redigera undernät anger eller väljer du följande information:
Inställning |
Värde |
Undernätssyfte |
Lämna standardinställningen Standard. |
Namn |
Ange undernät-1. |
IPv4 |
|
IPv4-adressintervall |
Låt standardvärdet vara 10.0.0.0/16. |
Startadress |
Låt standardvärdet vara 10.0.0.0. |
Storlek |
Lämna standardvärdet /24(256 adresser). |
Säkerhet |
|
NAT-gateway |
Välj nat-gateway. |
Välj Spara.
Välj Granska + skapa längst ned på skärmen och välj Skapanär verifieringen godkänns.
Skapa en virtuell testdator
Följande procedur skapar en virtuell testdator (VM) med namnet vm-1 i det virtuella nätverket.
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 eller väljer du 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-1. |
Region |
Välj Östra USA 2. |
Tillgängliga alternativ |
Välj Ingen infrastrukturredundans krävs. |
Säkerhetstyp |
Låt standardvärdet Standard vara kvar. |
Bild |
Välj Ubuntu Server 22.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.
Ange eller välj följande information på fliken Nätverk :
Inställning |
Värde |
Nätverksgränssnitt |
|
Virtuellt nätverk |
Välj vnet-1. |
Subnät |
Välj undernät-1 (10.0.0.0/24). |
Offentlig IP-adress |
Välj Ingen. |
NIC-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.
Anmärkning
Virtuella datorer inom ett virtuellt nätverk som har 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.
Anmärkning
Azure tillhandahåller en standard-IP för utgående åtkomst för virtuella datorer som antingen inte har tilldelats någon offentlig IP-adress eller som finns i serverdelspoolen för en intern grundläggande Azure-lastbalanserare. Standardmekanismen för utgående IP-åtkomst tillhandahåller en utgående IP-adress som inte kan konfigureras.
Standard-IP för utgående åtkomst inaktiveras när någon av följande händelser inträffar:
- En offentlig IP-adress tilldelas till den virtuella datorn.
- Den virtuella datorn placeras i serverdelspoolen för en standardlastbalanserare, med eller utan regler för utgående trafik.
- En Azure NAT Gateway-resurs tilldelas till den virtuella datorns undernät.
Virtuella datorer som du skapar med hjälp av virtuella maskinskalsatser i flexibelt orkestreringsläge saknar standardiserad utgående åtkomst.
Mer information om utgående anslutningar i Azure finns i Standardutgående åtkomst i Azure och Använda SNAT (Source Network Address Translation) för utgående anslutningar.
Skapa en resursgrupp
Skapa en resursgrupp med New-AzResourceGroup. En Azure-resursgrupp är en logisk behållare i vilken Azure-resurser distribueras och hanteras.
I följande exempel skapas en resursgrupp med namnet test-rg på platsen eastus2 :
$rsg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
Skapa NAT-gatewayen
I det här avsnittet skapar du NAT-gatewayen och stödresurser.
## Create public IP address for NAT gateway ##
$ip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1,2,3
}
$publicIP = New-AzPublicIpAddress @ip
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'eastus2'
PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat
## Create subnet config and associate NAT gateway to subnet##
$subnet = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create Azure Bastion subnet ##
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.0.1.0/26'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host ##
$ip = @{
Name = 'public-ip'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1,2,3
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion
Bastionvärden kan ta flera minuter att implementera. Vänta tills bastion-värden har installerats innan du går vidare till nästa avsnitt.
Skapa en virtuell dator
I det här avsnittet skapar du en virtuell dator för att testa NAT-gatewayen och verifiera den utgående anslutningens offentliga IP-adress.
# Set the administrator and password for the VM ##
$cred = Get-Credential
## Place the virtual network into a variable ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create network interface for virtual machine ##
$nic = @{
Name = "nic-1"
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration ##
$vmsz = @{
VMName = 'vm-1'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'vm-1'
Credential = $cred
}
$vmimage = @{
PublisherName = 'Canonical'
Offer = '0001-com-ubuntu-server-jammy'
Skus = '22_04-lts-gen2'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Linux `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine ##
$vm = @{
ResourceGroupName = 'test-rg'
Location = 'eastus2'
VM = $vmConfig
}
New-AzVM @vm
Vänta tills den virtuella datorn har skapats innan du går vidare till nästa avsnitt.
Skapa en resursgrupp
Skapa en resursgrupp med az group create. En Azure-resursgrupp är en logisk behållare i vilken Azure-resurser distribueras och hanteras.
az group create \
--name test-rg \
--location eastus2
Skapa NAT-gatewayen
I det här avsnittet skapar du NAT-gatewayen och stödresurser.
Skapa offentlig IP-adress
För att få åtkomst till Internet behöver du en eller flera offentliga IP-adresser för NAT-gatewayen. Använd az network public-ip create för att skapa en offentlig IP-adressresurs.
az network public-ip create \
--resource-group test-rg \
--name public-ip-nat \
--sku Standard \
--allocation-method Static \
--location eastus2 \
--zone 1 2 3
Skapa NAT-gateway-resurs
Skapa en NAT-gatewayresurs med az network nat gateway create. NAT-gatewayen använder den offentliga IP-adress som skapades i föregående steg. Tidsgränsen för inaktivitet är inställd på 10 minuter.
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-addresses public-ip-nat \
--idle-timeout 10
Skapa virtuellt nätverk och undernät
Skapa ett virtuellt nätverk med namnet vnet-1 med ett undernät med namnet subnet-1 med az network vnet create. IP-adressutrymmet för det virtuella nätverket är 10.0.0.0/16. Undernätet i det virtuella nätverket är 10.0.0.0/24.
az network vnet create \
--resource-group test-rg \
--name vnet-1 \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.0.0.0/24
Skapa Azure Bastion-undernät
Skapa ett Azure Bastion-undernät med namnet AzureBastionSubnet med az network vnet subnet create:
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
Associera NAT-gateway till undernät
Associera NAT-gatewayen till undernätet med az network vnet subnet update:
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--nat-gateway nat-gateway
Skapa en offentlig IP-adress för Bastion-värden
Skapa en offentlig IP-adress för Bastion-värden med az network public-ip create:
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
Skapa Bastion-värd
Skapa Azure Bastion-värden med az network bastion create:
az network bastion create \
--name bastion \
--public-ip-address public-ip \
--resource-group test-rg \
--vnet-name vnet-1 \
--location eastus2
Det kan ta flera minuter att distribuera Bastion-värden. Vänta tills Bastion-värden har distribuerats innan du går vidare till nästa avsnitt.
Skapa en virtuell dator
Skapa en virtuell dator med namnet vm-1 för att testa NAT-gatewayen och verifiera den utgående anslutningens offentliga IP-adress. Använd az vm create:
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Ubuntu2204 \
--admin-username azureuser \
--authentication-type password \
--public-ip-address "" \
--subnet subnet-1 \
--vnet-name vnet-1
Vänta tills den virtuella datorn har skapats innan du går vidare till nästa avsnitt.
En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.
Om din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas i Azure Portal.
Granska mallen
Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar.
Den här mallen är konfigurerad för att skapa en:
Virtuellt nätverk
NAT-gateway-resurs
Virtuell Ubuntu-dator
Den virtuella Ubuntu-datorn distribueras till ett undernät som är associerat med NAT-gatewayresursen.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.25.53.49325",
"templateHash": "15583664434476061565"
}
},
"parameters": {
"vmname": {
"type": "string",
"defaultValue": "vm-1",
"metadata": {
"description": "Name of the virtual machine"
}
},
"vmsize": {
"type": "string",
"defaultValue": "Standard_D2s_v3",
"metadata": {
"description": "Size of the virtual machine"
}
},
"vnetname": {
"type": "string",
"defaultValue": "vnet-1",
"metadata": {
"description": "Name of the virtual network"
}
},
"subnetname": {
"type": "string",
"defaultValue": "subnet-1",
"metadata": {
"description": "Name of the subnet for virtual network"
}
},
"vnetaddressspace": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Address space for virtual network"
}
},
"vnetsubnetprefix": {
"type": "string",
"defaultValue": "10.0.0.0/24",
"metadata": {
"description": "Subnet prefix for virtual network"
}
},
"natgatewayname": {
"type": "string",
"defaultValue": "nat-gateway",
"metadata": {
"description": "Name of the NAT gateway"
}
},
"networkinterfacename": {
"type": "string",
"defaultValue": "nic-1",
"metadata": {
"description": "Name of the virtual machine nic"
}
},
"publicipname": {
"type": "string",
"defaultValue": "public-ip-nat",
"metadata": {
"description": "Name of the NAT gateway public IP"
}
},
"nsgname": {
"type": "string",
"defaultValue": "nsg-1",
"metadata": {
"description": "Name of the virtual machine NSG"
}
},
"adminusername": {
"type": "string",
"metadata": {
"description": "Administrator username for virtual machine"
}
},
"adminpassword": {
"type": "securestring",
"metadata": {
"description": "Administrator password for virtual machine"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Name of resource group"
}
}
},
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2021-05-01",
"name": "[parameters('nsgname')]",
"location": "[parameters('location')]",
"properties": {
"securityRules": [
{
"name": "SSH",
"properties": {
"protocol": "Tcp",
"sourcePortRange": "*",
"destinationPortRange": "22",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 300,
"direction": "Inbound"
}
}
]
}
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2021-05-01",
"name": "[parameters('publicipname')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static",
"idleTimeoutInMinutes": 4
}
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2021-11-01",
"name": "[parameters('vmname')]",
"location": "[parameters('location')]",
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmsize')]"
},
"storageProfile": {
"imageReference": {
"publisher": "Canonical",
"offer": "0001-com-ubuntu-server-jammy",
"sku": "22_04-lts-gen2",
"version": "latest"
},
"osDisk": {
"osType": "Linux",
"name": "[format('{0}_disk1', parameters('vmname'))]",
"createOption": "FromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Premium_LRS"
},
"diskSizeGB": 30
}
},
"osProfile": {
"computerName": "[parameters('vmname')]",
"adminUsername": "[parameters('adminusername')]",
"adminPassword": "[parameters('adminpassword')]",
"linuxConfiguration": {
"disablePasswordAuthentication": false,
"provisionVMAgent": true
},
"allowExtensionOperations": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkinterfacename'))]"
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', parameters('networkinterfacename'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-05-01",
"name": "[parameters('vnetname')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetaddressspace')]"
]
},
"subnets": [
{
"name": "[parameters('subnetname')]",
"properties": {
"addressPrefix": "[parameters('vnetsubnetprefix')]",
"natGateway": {
"id": "[resourceId('Microsoft.Network/natGateways', parameters('natgatewayname'))]"
},
"privateEndpointNetworkPolicies": "Enabled",
"privateLinkServiceNetworkPolicies": "Enabled"
}
}
],
"enableDdosProtection": false,
"enableVmProtection": false
},
"dependsOn": [
"[resourceId('Microsoft.Network/natGateways', parameters('natgatewayname'))]"
]
},
{
"type": "Microsoft.Network/natGateways",
"apiVersion": "2021-05-01",
"name": "[parameters('natgatewayname')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"idleTimeoutInMinutes": 4,
"publicIpAddresses": [
{
"id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicipname'))]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicipname'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2021-05-01",
"name": "[format('{0}/{1}', parameters('vnetname'), 'subnet-1')]",
"properties": {
"addressPrefix": "[parameters('vnetsubnetprefix')]",
"natGateway": {
"id": "[resourceId('Microsoft.Network/natGateways', parameters('natgatewayname'))]"
},
"privateEndpointNetworkPolicies": "Enabled",
"privateLinkServiceNetworkPolicies": "Enabled"
},
"dependsOn": [
"[resourceId('Microsoft.Network/natGateways', parameters('natgatewayname'))]",
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetname'))]"
]
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2021-05-01",
"name": "[parameters('networkinterfacename')]",
"location": "[parameters('location')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig-1",
"properties": {
"privateIPAddress": "10.0.0.4",
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetname'), 'subnet-1')]"
},
"primary": true,
"privateIPAddressVersion": "IPv4"
}
}
],
"enableAcceleratedNetworking": false,
"enableIPForwarding": false,
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('nsgname'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('nsgname'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetname'), 'subnet-1')]"
]
}
],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('natgatewayname')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.Network/natGateways', parameters('natgatewayname'))]"
}
}
}
Nio Azure-resurser definieras i mallen:
Använd mallen
Portal
Granska distribuerade resurser
Logga in på Azure-portalen.
Välj Resursgrupper i det vänstra fönstret.
Välj den resursgrupp som du skapade i föregående avsnitt. Standardnamnet för resursgruppen är myResourceGroupNAT
Kontrollera att följande resurser har skapats i resursgruppen:
PowerShell
$location = Read-Host -Prompt "Enter the location (i.e. westcentralus)"
$templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/nat-gateway-1-vm/azuredeploy.json"
$resourceGroupName = "myResourceGroupNAT"
New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri
Azure CLI (kommandoradsgränssnittet för Azure)
read -p "Enter the location (i.e. westcentralus): " location
resourceGroupName="myResourceGroupNAT"
templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/nat-gateway-1-vm/azuredeploy.json"
az group create \
--name $resourceGroupName \
--location $location
az deployment group create \
--resource-group $resourceGroupName \
--template-uri $templateUri
Granska den Bicep-filen
Bicep-filen som används i den här snabbstarten kommer från Azure-snabbstartsmallar.
Den här Bicep-filen är konfigurerad för att skapa en:
Virtuellt nätverk
NAT-gateway-resurs
Virtuell Ubuntu-dator
Den virtuella Ubuntu-datorn distribueras till ett undernät som är associerat med NAT-gatewayresursen.
@description('Name of the virtual machine')
param vmname string = 'vm-1'
@description('Size of the virtual machine')
param vmsize string = 'Standard_D2s_v3'
@description('Name of the virtual network')
param vnetname string = 'vnet-1'
@description('Name of the subnet for virtual network')
param subnetname string = 'subnet-1'
@description('Address space for virtual network')
param vnetaddressspace string = '10.0.0.0/16'
@description('Subnet prefix for virtual network')
param vnetsubnetprefix string = '10.0.0.0/24'
@description('Name of the NAT gateway')
param natgatewayname string = 'nat-gateway'
@description('Name of the virtual machine nic')
param networkinterfacename string = 'nic-1'
@description('Name of the NAT gateway public IP')
param publicipname string = 'public-ip-nat'
@description('Name of the virtual machine NSG')
param nsgname string = 'nsg-1'
@description('Administrator username for virtual machine')
param adminusername string
@description('Administrator password for virtual machine')
@secure()
param adminpassword string
@description('Name of resource group')
param location string = resourceGroup().location
resource nsg 'Microsoft.Network/networkSecurityGroups@2021-05-01' = {
name: nsgname
location: location
properties: {
securityRules: [
{
name: 'SSH'
properties: {
protocol: 'Tcp'
sourcePortRange: '*'
destinationPortRange: '22'
sourceAddressPrefix: '*'
destinationAddressPrefix: '*'
access: 'Allow'
priority: 300
direction: 'Inbound'
}
}
]
}
}
resource publicip 'Microsoft.Network/publicIPAddresses@2021-05-01' = {
name: publicipname
location: location
sku: {
name: 'Standard'
}
properties: {
publicIPAddressVersion: 'IPv4'
publicIPAllocationMethod: 'Static'
idleTimeoutInMinutes: 4
}
}
resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
name: vmname
location: location
properties: {
hardwareProfile: {
vmSize: vmsize
}
storageProfile: {
imageReference: {
publisher: 'Canonical'
offer: '0001-com-ubuntu-server-jammy'
sku: '22_04-lts-gen2'
version: 'latest'
}
osDisk: {
osType: 'Linux'
name: '${vmname}_disk1'
createOption: 'FromImage'
caching: 'ReadWrite'
managedDisk: {
storageAccountType: 'Premium_LRS'
}
diskSizeGB: 30
}
}
osProfile: {
computerName: vmname
adminUsername: adminusername
adminPassword: adminpassword
linuxConfiguration: {
disablePasswordAuthentication: false
provisionVMAgent: true
}
allowExtensionOperations: true
}
networkProfile: {
networkInterfaces: [
{
id: networkinterface.id
}
]
}
}
}
resource vnet 'Microsoft.Network/virtualNetworks@2021-05-01' = {
name: vnetname
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetaddressspace
]
}
subnets: [
{
name: subnetname
properties: {
addressPrefix: vnetsubnetprefix
natGateway: {
id: natgateway.id
}
privateEndpointNetworkPolicies: 'Enabled'
privateLinkServiceNetworkPolicies: 'Enabled'
}
}
]
enableDdosProtection: false
enableVmProtection: false
}
}
resource natgateway 'Microsoft.Network/natGateways@2021-05-01' = {
name: natgatewayname
location: location
sku: {
name: 'Standard'
}
properties: {
idleTimeoutInMinutes: 4
publicIpAddresses: [
{
id: publicip.id
}
]
}
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2021-05-01' = {
parent: vnet
name: 'subnet-1'
properties: {
addressPrefix: vnetsubnetprefix
natGateway: {
id: natgateway.id
}
privateEndpointNetworkPolicies: 'Enabled'
privateLinkServiceNetworkPolicies: 'Enabled'
}
}
resource networkinterface 'Microsoft.Network/networkInterfaces@2021-05-01' = {
name: networkinterfacename
location: location
properties: {
ipConfigurations: [
{
name: 'ipconfig-1'
properties: {
privateIPAddress: '10.0.0.4'
privateIPAllocationMethod: 'Dynamic'
subnet: {
id: subnet.id
}
primary: true
privateIPAddressVersion: 'IPv4'
}
}
]
enableAcceleratedNetworking: false
enableIPForwarding: false
networkSecurityGroup: {
id: nsg.id
}
}
}
output location string = location
output name string = natgateway.name
output resourceGroupName string = resourceGroup().name
output resourceId string = natgateway.id
Nio Azure-resurser definieras i Bicep-filen:
Synkronisera Bicep-filen
Spara Bicep-filen som main.bicep på den lokala datorn.
Distribuera Bicep-filen med antingen Azure CLI eller Azure PowerShell.
Azure CLI (kommandoradsgränssnittet för Azure)
az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters adminusername=<admin-name>
PowerShell
New-AzResourceGroup -Name exampleRG -Location eastus
New-AzResourceGroupDeployment -ResourceGroupName exampleRG -TemplateFile ./main.bicep -adminusername "<admin-name>"
Anmärkning
Ersätt <administratörsnamnet> med administratörsanvändarnamnet för den virtuella datorn. Du uppmanas också att ange adminpassword.
När distributionen är klar bör du se ett meddelande som anger att distributionen lyckades.
Granska distribuerade resurser
Använd Azure-portalen, Azure CLI eller Azure PowerShell för att lista de distribuerade resurserna i resursgruppen.
Azure CLI (kommandoradsgränssnittet för Azure)
az resource list --resource-group exampleRG
PowerShell
Get-AzResource -ResourceGroupName exampleRG
I det här avsnittet testar du NAT-gatewayen. Du identifierar först den offentliga IP-adressen för NAT-gatewayen. Sedan ansluter du till den virtuella testdatorn och verifierar den utgående anslutningen via NAT-gatewayen.