Szybki start: tworzenie bramy translatora adresów sieciowych przy użyciu programu Azure PowerShell

Z tego przewodnika Szybki start dowiesz się, jak utworzyć bramę translatora adresów sieciowych przy użyciu programu PowerShell. Usługa bramy translatora adresów sieciowych zapewnia łączność wychodzącą dla maszyn wirtualnych na platformie Azure.

Diagram zasobów utworzonych w przewodniku Szybki start bramy translatora adresów sieciowych.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.

  • Azure Cloud Shell lub Azure PowerShell.

    Kroki opisane w tym przewodniku Szybki start uruchamiają interaktywne polecenia cmdlet programu Azure PowerShell w usłudze Azure Cloud Shell. Aby uruchomić polecenia w usłudze Cloud Shell, wybierz pozycję Otwórz program CloudShell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj , aby skopiować kod, a następnie wklej go w usłudze Cloud Shell, aby go uruchomić. Możesz również uruchomić usługę Cloud Shell z poziomu witryny Azure Portal.

    Możesz również zainstalować program Azure PowerShell lokalnie , aby uruchomić polecenia cmdlet. Kroki opisane w tym artykule wymagają modułu Azure PowerShell w wersji 5.4.1 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az , aby znaleźć zainstalowaną wersję. Jeśli chcesz uaktualnić, zobacz Aktualizowanie modułu programu Azure PowerShell.

Tworzenie grupy zasobów

Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.

Poniższy przykład tworzy grupę zasobów o nazwie test-rg w lokalizacji eastus2 :

$rsg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rsg

Tworzenie bramy translatora adresów sieciowych

W tej sekcji utworzymy bramę translatora adresów sieciowych i zasoby pomocnicze.

  • Aby uzyskać dostęp do Internetu, potrzebujesz co najmniej jednego publicznego adresu IP dla bramy translatora adresów sieciowych. Użyj polecenia New-AzPublicIpAddress, aby utworzyć zasób publicznego adresu IP o nazwie public-ip-nat w pliku test-rg.

  • Utwórz globalną bramę translatora adresów sieciowych platformy Azure za pomocą polecenia New-AzNatGateway. Wynik tego polecenia spowoduje utworzenie zasobu bramy o nazwie nat-gateway , który używa publicznego adresu IP public-ip-nat. Limit czasu bezczynności jest ustawiony na 10 minut.

  • Utwórz sieć wirtualną o nazwie vnet-1 z podsiecią o nazwie subnet-1 przy użyciu polecenia New-AzVirtualNetworkSubnetConfig w pliku test-rg przy użyciu polecenia New-AzVirtualNetwork. Przestrzeń adresowa IP dla sieci wirtualnej to 10.0.0.0/16. Podsieć w sieci wirtualnej to 10.0.0.0/24.

  • Utwórz hosta usługi Azure Bastion o nazwie bastion , aby uzyskać dostęp do maszyny wirtualnej. Użyj polecenia New-AzBastion , aby utworzyć hosta bastionu. Utwórz publiczny adres IP hosta bastionu za pomocą polecenia New-AzPublicIpAddress.

## 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

Wdrożenie hosta bastionu może potrwać kilka minut. Przed przejściem do następnej sekcji zaczekaj na wdrożenie hosta bastionu.

Maszyna wirtualna

W tej sekcji utworzysz maszynę wirtualną, aby przetestować bramę translatora adresów sieciowych i zweryfikować publiczny adres IP połączenia wychodzącego.

# Set the administrator and password for the VMs. ##
$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 for VMs ##
$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 for VMs ##
$vm = @{
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    VM = $vmConfig
}
New-AzVM @vm

Przed przejściem do następnej sekcji poczekaj na ukończenie tworzenia maszyny wirtualnej.

Testowanie bramy translatora adresów sieciowych

W tej sekcji przetestujesz bramę translatora adresów sieciowych. Najpierw odnajdziesz publiczny adres IP bramy translatora adresów sieciowych. Następnie połączysz się z testowej maszyny wirtualnej i sprawdzisz połączenie wychodzące za pośrednictwem bramy translatora adresów sieciowych.

  1. Zaloguj się w witrynie Azure Portal.

  2. W polu wyszukiwania w górnej części portalu wprowadź publiczny adres IP. Wybierz pozycję Publiczne adresy IP w wynikach wyszukiwania.

  3. Wybierz pozycję public-ip-nat.

  4. Zanotuj publiczny adres IP:

    Odnajdywanie publicznego adresu IP bramy translatora adresów sieciowych

  5. W polu wyszukiwania w górnej części portalu wprowadź ciąg Maszyna wirtualna. Wybierz pozycję Maszyny wirtualne w wynikach wyszukiwania.

  6. Wybierz pozycję vm-1.

  7. Na stronie Przegląd wybierz pozycję Połączenie, a następnie wybierz kartę Bastion.

  8. Wybierz pozycję Użyj usługi Bastion.

  9. Wprowadź nazwę użytkownika i hasło wprowadzone podczas tworzenia maszyny wirtualnej. Wybierz pozycję Połącz.

  10. W wierszu polecenia powłoki bash wprowadź następujące polecenie:

    curl ifconfig.me
    
  11. Sprawdź, czy adres IP zwrócony przez polecenie jest zgodny z publicznym adresem IP bramy translatora adresów sieciowych.

    azureuser@vm-1:~$ curl ifconfig.me
    20.7.200.36
    

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, usuń sieć wirtualną, maszynę wirtualną i bramę translatora adresów sieciowych, wykonując następujące czynności:

Remove-AzResourceGroup -Name 'test-rg' -Force

Następne kroki

Aby uzyskać więcej informacji na temat usługi Azure NAT Gateway, zobacz: