In deze quickstart leert u hoe u een NAT-gateway maakt met behulp van Azure Portal, Azure CLI, PowerShell, Bicep, ARM-sjabloon en Terraform. De NAT Gateway-service biedt uitgaande connectiviteit voor virtuele machines in Azure.
Een NAT-gateway maken
Voordat u de NAT-gatewayresource en de andere resources implementeert, moet een resourcegroep de geïmplementeerde resources bevatten. In de volgende stappen maakt u een resourcegroep, NAT-gatewayresource en een openbaar IP-adres. U kunt een of meer openbare IP-adresresources, openbare IP-voorvoegsels of beide gebruiken.
Zie NAT-gateway beheren voor informatie over openbare IP-voorvoegsels en een NAT-gateway.
Voer NAT gateway in het zoekvak bovenaan het portaal in. Selecteer NAT-gateways in de zoekresultaten.
Selecteer + Creëren.
In Maak een netwerkadresvertaling (NAT) gateway, voert u deze gegevens in of selecteert u deze op het tabblad Basisbeginselen:
Omgeving |
Waarde |
Projectgegevens |
|
Abonnement |
Selecteer uw Azure-abonnement. |
Resourcegroep |
Selecteer Nieuwe maken.
Voer test-rg in.
Klik op OK. |
Instantiegegevens |
|
NAT-gatewaynaam |
Voer nat-gateway in |
Regio |
Selecteer East US 2 |
Beschikbaarheidszone |
Selecteer Geen zone. |
Time-out voor TCP-inactiviteit (minuten) |
Laat de standaardwaarde 4 staan. |
Zie NAT-gateway en beschikbaarheidszones voor informatie over beschikbaarheidszones en NAT-gateways.
Selecteer het tabblad Uitgaande IP of selecteer de knop Volgende: Uitgaande IP onder aan de pagina.
Voer op het tabblad Uitgaand IP-adres de volgende gegevens in of selecteer deze:
Omgeving |
Waarde |
Openbare IP-adressen |
Selecteer Een nieuw openbaar IP-adres maken.
Voer in Naampublic-ip-nat in.
Klik op OK. |
Selecteer het tabblad Beoordelen + maken of selecteer de blauwe knop Beoordelen en maken onder aan de pagina.
Klik op Creëren.
Maak een virtueel netwerk en bastion host aan
Met de volgende procedure maakt u een virtueel netwerk met een resourcesubnet, een Azure Bastion-subnet en een Azure Bastion-host.
Zoek en selecteer virtuele netwerken in de portal.
Selecteer + Maken op de pagina Virtuele netwerken.
Op het tabblad Basis van Virtueel netwerk maken voert u de volgende informatie in of selecteert u deze:
Configuratie |
Waarde |
Projectdetails |
|
Abonnement |
Selecteer uw abonnement. |
Bronnengroep |
Selecteer test-rg. |
Instantiegegevens |
|
Naam |
Voer vnet-1 in. |
Regio |
Selecteer (VS) Oost VS 2. |
Selecteer Volgendeom door te gaan naar het tabblad Beveiliging.
Selecteer Azure Bastion inschakelen in de sectie Azure Bastion van het tabblad Beveiliging .
Azure Bastion gebruikt uw browser om verbinding te maken met VM's in uw virtuele netwerk via secure shell (SSH) of RDP (Remote Desktop Protocol) met behulp van hun privé-IP-adressen. De VM's hebben geen openbare IP-adressen, clientsoftware of speciale configuratie nodig. Zie Azure Bastion voor meer informatie over Azure Bastion
Opmerking
De uurtarieven gaan in vanaf het moment dat Bastion wordt ingezet, ongeacht uitgaand dataverbruik. Zie Prijzen en SKU's voor meer informatie. Als je Bastion implementeert als onderdeel van een tutorial of test, raden we aan om deze bron te verwijderen nadat je ermee klaar bent.
Voer de volgende gegevens in of selecteer deze in Azure Bastion:
Configuratie |
Waarde |
Azure Bastion-hostnaam |
Voer bastion in. |
Openbaar IP-adres van Azure Bastion |
Selecteer Een openbaar IP-adres maken.
Voer public-ip-bastion in naam in.
Klik op OK. |
Selecteer Volgendeom door te gaan naar het tabblad IP-adressen.
Selecteer in het adresruimtevak in Subnetten het standaardsubnet .
In Subnet bewerken, voer de volgende gegevens in of selecteer deze:
Configuratie |
Waarde |
Doel van de subnet |
Laat de standaardwaarde staan. |
Naam |
Voer subnet-1 in. |
IPv4 |
|
IPv4-adresbereik |
Laat de standaardwaarde 10.0.0.0/16 staan. |
Beginadres |
Laat de standaardwaarde 10.0.0.0 staan. |
Grootte |
Laat de standaardwaarde /24(256 adressen) staan. |
Beveiliging |
|
NAT-gateway |
Klik op nat-gateway. |
Selecteer Opslaan.
Selecteer Beoordelen en maken onder aan het scherm en selecteer Maken wanneer de validatie is geslaagd.
Virtuele testmachine maken
Met de volgende procedure maakt u een virtuele testmachine (VM) met de naam vm-1 in het virtuele netwerk.
Zoek en selecteer virtuele machines in de portal.
In virtuele machines selecteer je + Maken, daarna Azure virtuele machine.
In het tabblad Basis van Virtuele machine maken, voer de volgende gegevens in of selecteer deze:
Configuratie |
Waarde |
Projectdetails |
|
Abonnement |
Selecteer uw abonnement. |
Bronnengroep |
Selecteer test-rg. |
Instantiegegevens |
|
Naam van de virtuele machine |
Voer vm-1 in. |
Regio |
Selecteer Oost-Amerika 2. |
Beschikbaarheidsopties |
Selecteer Geen infrastructuurredundantie vereist. |
Beveiligingstype |
Laat de standaardwaarde van Standard staan. |
Afbeelding |
Selecteer Ubuntu Server 22.04 LTS - x64 Gen2. |
VM-architectuur |
Laat de standaardwaarde x64 staan. |
Grootte |
Selecteer een grootte. |
Beheerdersaccount |
|
Verificatietype |
Selecteer Wachtwoord. |
Gebruikersnaam |
Voer azureuser in. |
Wachtwoord |
Voer een wachtwoord in. |
Wachtwoord bevestigen |
Voer het wachtwoord opnieuw in. |
Regels voor binnenkomende poorten |
|
Openbare poorten voor inkomend verkeer |
Selecteer Geen. |
Selecteer het tabblad Netwerken boven aan de pagina.
Voer de volgende gegevens in of selecteer deze op het tabblad Netwerken :
Configuratie |
Waarde |
Netwerkinterface |
|
Virtueel netwerk |
Selecteer vnet-1. |
Subnetwerk |
Selecteer subnet-1 (10.0.0.0/24). |
Openbaar IP-adres |
Selecteer Geen. |
NIC netwerkbeveiligingsgroep |
Selecteer Geavanceerd. |
Netwerkbeveiligingsgroep configureren |
Selecteer Nieuwe maken.
Voer nsg-1 in als naam.
Laat de rest op de standaardwaarden staan en selecteer OK. |
Laat de rest van de instellingen op de standaardwaarden staan en selecteer Beoordelen en maken.
Controleer de instellingen en selecteer Maken.
Opmerking
Virtuele machines in een virtueel netwerk met een bastionhost hebben geen openbare IP-adressen nodig. Bastion biedt het openbare IP-adres en de VM's gebruiken privé-IP's om binnen het netwerk te communiceren. U kunt de openbare IP-adressen verwijderen van virtuele machines in gehoste virtuele bastionnetwerken. Zie Een openbaar IP-adres loskoppelen van een Virtuele Azure-machine voor meer informatie.
Opmerking
Azure biedt een standaard ip-adres voor uitgaande toegang voor VM's waaraan geen openbaar IP-adres is toegewezen of zich in de back-endpool van een interne Azure-load balancer bevinden. Het standaard ip-mechanisme voor uitgaande toegang biedt een uitgaand IP-adres dat niet kan worden geconfigureerd.
Het standaard IP-adres voor uitgaande toegang is uitgeschakeld wanneer een van de volgende gebeurtenissen plaatsvindt:
- Er wordt een openbaar IP-adres toegewezen aan de VIRTUELE machine.
- De virtuele machine wordt in de backendpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
- Een Azure NAT Gateway hulpbron is toegewezen aan het subnet van de VM.
Virtuele machines die u maakt door virtuele-machineschaalsets in de flexibele orchestratiemodus te gebruiken, hebben geen standaard uitgaande toegang.
Voor meer informatie over uitgaande verbindingen in Azure, zie de standaardinstellingen voor uitgaande toegang in Azure en SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen.
Een brongroep maken
Maak een resourcegroep met behulp van de opdracht New-AzResourceGroup. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
In het volgende voorbeeld wordt een resourcegroep met de naam test-rg gemaakt op de locatie eastus2 :
$rsg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
De NAT-gateway maken
In deze sectie maakt u de NAT-gateway en ondersteunende resources.
## 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
Het implementeren van de bastionhost kan enkele minuten duren. Wacht tot de bastionhost is geïmplementeerd voordat u verdergaat met de volgende sectie.
Virtuele machine maken
In deze sectie maakt u een virtuele machine om de NAT-gateway te testen en het openbare IP-adres van de uitgaande verbinding te verifiëren.
# 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
Wacht totdat het maken van de virtuele machine is voltooid voordat u verdergaat met de volgende sectie.
Een brongroep maken
Maak een resourcegroep aan met az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
az group create \
--name test-rg \
--location eastus2
De NAT-gateway maken
In deze sectie maakt u de NAT-gateway en ondersteunende resources.
Openbaar IP-adres maken
Voor toegang tot internet hebt u een of meer openbare IP-adressen voor de NAT-gateway nodig. Gebruik az network public-ip create om een openbare IP-adresresource te maken.
az network public-ip create \
--resource-group test-rg \
--name public-ip-nat \
--sku Standard \
--allocation-method Static \
--location eastus2 \
--zone 1 2 3
NAT-gateway resource maken
Maak een NAT-gatewayresource met az network nat gateway create. De NAT-gateway gebruikt het openbare IP-adres dat in de vorige stap is gemaakt. De time-out voor inactiviteit is ingesteld op 10 minuten.
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-addresses public-ip-nat \
--idle-timeout 10
Virtueel netwerk en subnet maken
Maak een virtueel netwerk genaamd vnet-1 met een subnet genaamd subnet-1 met het commando az network vnet create. De IP-adresruimte voor het virtuele netwerk is 10.0.0.0/16. Het subnet in het virtuele netwerk is 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
Azure Bastion-subnet maken
Maak een Azure Bastion-subnet met de naam AzureBastionSubnet met behulp van 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
NAT-gateway koppelen aan subnet
Koppel de NAT-gateway aan het subnet met behulp van 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
Openbaar IP-adres maken voor Bastion-host
Maak een openbaar IP-adres voor de Bastion-host met behulp van 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
Bastion-host maken
Maak de Azure Bastion-host met 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
Het implementeren van de Bastion-host kan enkele minuten duren. Wacht tot de Bastion-host is geïmplementeerd voordat je verdergaat met het volgende gedeelte.
Virtuele machine maken
Maak een virtuele machine met de naam vm-1 om de NAT-gateway te testen en het openbare IP-adres van de uitgaande verbinding te verifiëren. Gebruik 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
Wacht totdat het maken van de virtuele machine is voltooid voordat u verdergaat met de volgende sectie.
Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. De sjabloon maakt gebruik van declaratieve syntaxis. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.
Als uw omgeving voldoet aan de vereisten en u bekend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren in Azure . De sjabloon wordt in Azure Portal geopend.
De sjabloon controleren
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen.
Deze sjabloon is geconfigureerd voor het maken van een:
Virtueel netwerk
NAT-gatewayresource
Virtuele Ubuntu-machine
De virtuele Ubuntu-machine wordt geïmplementeerd in een subnet dat is gekoppeld aan de NAT-gatewayresource.
{
"$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'))]"
}
}
}
Negen Azure-resources worden gedefinieerd in de sjabloon:
De sjabloon implementeren
Portaal
Geïmplementeerde middelen beoordelen
Meld u aan bij het Azure-portaal.
Selecteer Resourcegroepen in het linkerdeelvenster.
Selecteer de resourcegroep die u in de vorige sectie hebt gemaakt. De standaardnaam van de resourcegroep is myResourceGroupNAT
Controleer of de volgende resources zijn gemaakt in de resourcegroep:
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-opdrachtregelinterface (CLI)
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
Het Bicep-bestand bekijken
Het Bicep-bestand dat in deze quickstart wordt gebruikt, is afkomstig uit Azure-quickstartsjablonen.
Dit Bicep-bestand is geconfigureerd om het volgende te maken:
Virtueel netwerk
NAT-gatewayresource
Virtuele Ubuntu-machine
De Ubuntu-VM wordt geïmplementeerd in een subnet dat is gekoppeld aan de NAT-gatewayresource.
@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
Negen Azure-resources worden gedefinieerd in het Bicep-bestand:
Het Bicep-bestand implementeren
Sla het Bicep-bestand op als main.bicep op uw lokale computer.
Implementeer het Bicep-bestand met behulp van Azure CLI of Azure PowerShell.
Azure-opdrachtregelinterface (CLI)
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>"
Opmerking
Vervang <de naam van de beheerder> door de gebruikersnaam van de beheerder voor de virtuele machine. U wordt ook gevraagd om adminpassword in te voeren.
Wanneer de implementatie is voltooid, ziet u een bericht waarin wordt aangegeven dat de implementatie is voltooid.
Geïmplementeerde middelen beoordelen
Gebruik Azure Portal, Azure CLI of Azure PowerShell om de geïmplementeerde resources in de resourcegroep weer te geven.
Azure-opdrachtregelinterface (CLI)
az resource list --resource-group exampleRG
PowerShell
Get-AzResource -ResourceGroupName exampleRG
In deze sectie test u de NAT-gateway. U ontdekt eerst het openbare IP-adres van de NAT-gateway. Vervolgens maakt u verbinding met de virtuele testmachine en controleert u de uitgaande verbinding via de NAT-gateway.