V tomto rychlém startu se dozvíte, jak vytvořit bránu NAT pomocí webu Azure Portal, Azure CLI, PowerShellu, Bicep, šablony ARM a Terraformu. Služba NAT Gateway poskytuje odchozí připojení pro virtuální počítače v Azure.
Vytvoření služby NAT Gateway
Před nasazením prostředku služby NAT Gateway a dalších prostředků je potřeba, aby skupina prostředků obsahovala nasazené prostředky. V následujících krocích vytvoříte skupinu prostředků, prostředek služby NAT Gateway a veřejnou IP adresu. Můžete použít jednu nebo více veřejných IP adres, předpony veřejných IP adres nebo obojí.
Informace o předponách veřejných IP adres a bráně NAT najdete v tématu Správa služby NAT Gateway.
Do vyhledávacího pole v horní části portálu zadejte NAT Gateway. Ve výsledcích hledání vyberte NAT brány.
Vyberte + Vytvořit.
Ve Vytvořit bránu překladu síťových adres (NAT) zadejte nebo vyberte tyto informace na kartě Základy:
Nastavení |
Hodnota |
Podrobnosti projektu |
|
Předplatné |
Vyberte své předplatné Azure. |
Skupina zdrojů |
Vyberte možnost Vytvořit novou.
Zadejte test-rg.
Vyberte OK. |
Podrobnosti o instanci |
|
Název brány NAT |
Zadejte nat-gateway. |
Región |
Vyberte USA – východ 2 |
Zóna dostupnosti |
Vyberte Bez zóny. |
Časový limit nečinnosti protokolu TCP (minuty) |
Ponechte výchozí hodnotu 4. |
Informace o zónách dostupnosti a službě NAT Gateway najdete v tématu NAT Gateway a zóny dostupnosti.
Vyberte kartu Odchozí IP nebo vyberte tlačítko Další: Odchozí IP v dolní části stránky.
Na kartě Odchozí IP, zadejte nebo vyberte následující informace:
Nastavení |
Hodnota |
Veřejné IP adresy |
Vyberte Vytvořit novou veřejnou IP adresu.
Do pole Název zadejte public-ip-nat.
Vyberte OK. |
Vyberte kartu Zkontrolovat a vytvořit nebo vyberte modré tlačítko Zkontrolovat a vytvořit v dolní části stránky.
Vyberte Vytvořit.
Vytvoření virtuální sítě a bastionového hostitele
Následující postup vytvoří virtuální síť s podsítí prostředků, podsítí Azure Bastion a hostem Azure Bastion.
Na portálu vyhledejte a vyberte Virtuální sítě.
Na stránce Virtuální sítě vyberte + Vytvořit.
Na kartě Základy vytvoření virtuální sítě zadejte nebo vyberte následující informace:
Nastavení |
Hodnota |
Podrobnosti projektu |
|
Předplatné |
Vyberte své předplatné. |
Skupina zdrojů |
Vyberte test-rg. |
Podrobnosti o instanci |
|
Název |
Zadejte vnet-1. |
Región |
Vyberte (VS) Východní USA 2. |
Výběrem možnosti Další přejděte na kartu Zabezpečení .
V části Azure Bastion na kartě Zabezpečení vyberte Povolit Službu Azure Bastion.
Azure Bastion používá váš prohlížeč k připojení k virtuálním počítačům ve virtuální síti přes secure shell (SSH) nebo protokol RDP (Remote Desktop Protocol) pomocí jejich privátních IP adres. Virtuální počítače nepotřebují veřejné IP adresy, klientský software ani speciální konfiguraci. Další informace o službě Azure Bastion najdete v tématu Azure Bastion.
Poznámka:
Hodinová cena začíná od okamžiku nasazení Bastionu bez ohledu na využití odchozích dat. Další informace najdete v tématu Ceny a skladové položky. Pokud bastion nasazujete jako součást kurzu nebo testu, doporučujeme tento prostředek po dokončení jeho použití odstranit.
Zadejte nebo vyberte následující informace ve službě Azure Bastion:
Nastavení |
Hodnota |
Název hostitele služby Azure Bastion |
Zadejte bastion. |
Veřejná IP adresa služby Azure Bastion |
Vyberte Vytvořit veřejnou IP adresu.
Do názvu zadejte public-ip-bastion .
Vyberte OK. |
Výběrem možnosti Další přejděte na kartu IP adresy .
V poli Adresní prostor v Podsítích vyberte výchozí podsíť.
V části Upravit podsíť zadejte nebo vyberte následující informace:
Nastavení |
Hodnota |
Účel podsítě |
Ponechte výchozí Default. |
Název |
Zadejte subnet-1. |
IPv4 |
|
Rozsah adres IPv4 |
Ponechte výchozí hodnotu 10.0.0.0/16. |
Počáteční adresa |
Ponechte výchozí hodnotu 10.0.0.0. |
Velikost |
Ponechte výchozí hodnotu /24(256 adres). |
Zabezpečení |
|
brána NAT |
Vyberte nat-gateway. |
Vyberte Uložit.
Vyberte Zkontrolovat a vytvořit v dolní části obrazovky a po ověření vyberte Vytvořit.
Vytvoření testovacího virtuálního počítače
Následující postup vytvoří testovací virtuální počítač s názvem vm-1 ve virtuální síti.
Na portálu vyhledejte a vyberte Virtuální počítače.
Ve virtuálních počítačích vyberte + Vytvořit a pak virtuální počítač Azure.
Na kartě Základy v části Vytvořit virtuální počítač zadejte nebo vyberte následující informace:
Nastavení |
Hodnota |
Podrobnosti projektu |
|
Předplatné |
Vyberte své předplatné. |
Skupina zdrojů |
Vyberte test-rg. |
Podrobnosti o instanci |
|
Název virtuálního počítače |
Zadejte vm-1. |
Región |
Vyberte USA – východ 2. |
Možnosti dostupnosti |
Vyberte Žádná redundance infrastruktury není nutná. |
Typ zabezpečení |
Ponechte výchozí hodnotu Standard. |
Obrázek |
Vyberte Ubuntu Server 22.04 LTS - x64 Gen2. |
Architektura virtuálního počítače |
Ponechte výchozí hodnotu x64. |
Velikost |
Vyberte velikost. |
Účet správce |
|
Typ autentizace |
Vyberte heslo. |
Uživatelské jméno |
Zadejte azureuser. |
Heslo |
Zadejte heslo. |
Potvrdit heslo |
Zadejte znovu heslo. |
Pravidla portů pro příchozí spojení |
|
Veřejné příchozí porty |
Vyberte Žádné. |
V horní části stránky vyberte kartu Sítě.
Na kartě Sítě zadejte nebo vyberte následující informace:
Nastavení |
Hodnota |
Síťové rozhraní |
|
Virtuální síť |
Vyberte vnet-1. |
Podsíť |
Vyberte podsíť 1 (10.0.0.0/24). |
Veřejná IP adresa |
Vyberte Žádné. |
Skupina zabezpečení sítě NIC |
Vyberte Upřesnit. |
Konfigurace skupiny zabezpečení sítě |
Vyberte možnost Vytvořit novou.
Jako název zadejte nsg-1 .
Ponechte zbytek ve výchozím nastavení a vyberte OK. |
Zbývající nastavení ponechte ve výchozím nastavení a vyberte Zkontrolovat a vytvořit.
Zkontrolujte nastavení a vyberte Vytvořit.
Poznámka:
Virtuální počítače ve virtuální síti s hostitelem bastionu nepotřebují veřejné IP adresy. Bastion poskytuje veřejnou IP adresu a virtuální počítače používají privátní IP adresy ke komunikaci v síti. Veřejné IP adresy můžete odebrat z libovolného virtuálního počítače v hostovaných virtuálních sítích bastionu. Další informace najdete v tématu Odpojení veřejné IP adresy od virtuálního počítače Azure.
Poznámka:
Azure poskytuje výchozí odchozí IP adresu pro virtuální počítače, které nemají přiřazenou veřejnou IP adresu nebo jsou v back-endovém fondu interního základního nástroje pro vyrovnávání zatížení Azure. Výchozí mechanismus odchozích IP adres poskytuje odchozí IP adresu, která není konfigurovatelná.
Výchozí ip adresa odchozího přístupu je zakázaná, když dojde k jedné z následujících událostí:
- Virtuálnímu počítači se přiřadí veřejná IP adresa.
- Virtuální počítač je umístěn do back-end poolu standardního load balanceru s odchozími pravidly nebo bez nich.
- Prostředek Azure NAT Gateway je přiřazen k podsíti virtuálního počítače.
Virtuální počítače, které vytvoříte pomocí škálovacích sad virtuálních počítačů v flexibilním režimu orchestrace, nemají výchozí odchozí přístup.
Další informace o odchozích připojeních v Azure najdete v tématu Výchozí odchozí přístup v Azure a použití překladu zdrojových síťových adres (SNAT) pro odchozí připojení.
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků pomocí příkazu New-AzResourceGroup. Skupina prostředků Azure je logický kontejner, do kterého se nasazují a spravují prostředky Azure.
Následující příklad vytvoří skupinu prostředků s názvem test-rg v lokalitě eastus2:
$rsg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
Vytvoření služby NAT Gateway
V této části vytvořte bránu NAT a podpůrné prostředky.
## 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
Nasazení hostitele bastionu může trvat několik minut. Než přejdete k další části, počkejte, než se hostitel bastionu nasadí.
Vytvoření virtuálního počítače
V této části vytvoříte virtuální počítač, který otestuje bránu NAT a ověří veřejnou IP adresu odchozího připojení.
# 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
Než přejdete k další části, počkejte, než se vytvoření virtuálního počítače dokončí.
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, do kterého se nasazují a spravují prostředky Azure.
az group create \
--name test-rg \
--location eastus2
Vytvoření služby NAT Gateway
V této části vytvořte bránu NAT a podpůrné prostředky.
Vytvoření veřejné IP adresy
Pro přístup k internetu potřebujete jednu nebo více veřejných IP adres pro bránu NAT. Pomocí příkazu az network public-ip create vytvořte prostředek veřejné IP adresy.
az network public-ip create \
--resource-group test-rg \
--name public-ip-nat \
--sku Standard \
--allocation-method Static \
--location eastus2 \
--zone 1 2 3
Vytvoření prostředku služby NAT Gateway
Vytvořte prostředek NAT gateway pomocí az network nat gateway create. Brána NAT používá veřejnou IP adresu vytvořenou v předchozím kroku. Časový limit nečinnosti je nastavený na 10 minut.
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-addresses public-ip-nat \
--idle-timeout 10
Vytvoření virtuální sítě a podsítě
Vytvořte virtuální síť s názvem vnet-1 s podsítí s názvem subnet-1 pomocí příkazu az network vnet create. Adresní prostor IP pro virtuální síť je 10.0.0.0/16. Podsíť v rámci virtuální sítě je 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
Vytvoření podsítě Služby Azure Bastion
Vytvořte podsíť Azure Bastion s názvem AzureBastionSubnet pomocí příkazu 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
Přidružení služby NAT Gateway k podsíti
Přidružte bránu NAT k podsíti pomocí spuštění příkazu 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
Vytvoření veřejné IP adresy pro hostitele Bastionu
Vytvořte veřejnou IP adresu pro hostitele Bastion pomocí příkazu 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
Vytvoření hostitele Bastionu
Vytvořte hostitele služby Azure Bastion pomocí příkazu 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
Nasazení hosta Bastion může trvat několik minut. Než přejdete k další části, počkejte, než se hostitel Bastion nasadí.
Vytvoření virtuálního počítače
Vytvořte virtuální počítač s názvem vm-1 , který otestuje bránu NAT a ověří veřejnou IP adresu odchozího připojení. Použijte 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
Než přejdete k další části, počkejte, než se vytvoření virtuálního počítače dokončí.
Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.
Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure. Šablona se otevře na webu Azure Portal.
Kontrola šablony
Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure.
Tato šablona je nakonfigurovaná tak, aby vytvořila:
Virtuální počítač Ubuntu se nasadí do podsítě přidružené k prostředku služby NAT Gateway.
{
"$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'))]"
}
}
}
V šabloně je definováno devět prostředků Azure:
Nasazení šablony
Portál
Kontrola nasazených prostředků
Přihlaste se do Azure Portalu.
V levém podokně vyberte skupiny prostředků.
Vyberte skupinu prostředků, kterou jste vytvořili v předchozí části. Výchozí název skupiny prostředků je myResourceGroupNAT.
Ověřte, že ve skupině prostředků byly vytvořeny tyto prostředky:
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 (příkazový řádek nástroje 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
Prohlédnout si soubor Bicep
Soubor Bicep použitý v tomto quickstartu pochází z Azure Quickstart Templates.
Tento soubor Bicep je nakonfigurovaný tak, aby vytvořil:
Virtuální počítač s Ubuntu se nasadí do podsítě, která je přidružená k prostředku služby NAT Gateway.
@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
V souboru Bicep se definuje devět prostředků Azure:
Nasazení souboru Bicep
Uložte soubor Bicep jako main.bicep do místního počítače.
Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.
Azure CLI (příkazový řádek nástroje 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>"
Poznámka:
Nahraďte <jméno> správce uživatelským jménem správce virtuálního počítače. Zobrazí se také výzva k zadání hesla adminpassword.
Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.
Kontrola nasazených prostředků
Pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu můžete zobrazit seznam nasazených prostředků ve skupině prostředků.
Azure CLI (příkazový řádek nástroje Azure)
az resource list --resource-group exampleRG
PowerShell
Get-AzResource -ResourceGroupName exampleRG
V této části otestujete bránu NAT Gateway. Nejprve zjistíte veřejnou IP adresu služby NAT Gateway. Pak se připojíte k testovacímu virtuálnímu počítači a ověříte odchozí připojení přes bránu NAT Gateway.