Quickstart: Azure PowerShell gebruiken om een virtueel netwerk te maken

In deze quickstart ziet u hoe u een virtueel netwerk maakt met behulp van Azure PowerShell. Vervolgens maakt u twee virtuele machines (VM's) in het netwerk, maakt u veilig verbinding met de VM's via internet en start u privécommunicatie tussen de VM's.

Een virtueel netwerk is de fundamentele bouwsteen voor privénetwerken in Azure. Met Azure Virtual Network kunnen Azure-resources, zoals VM's, veilig met elkaar en internet communiceren.

Diagram van resources die zijn gemaakt in de quickstart voor het virtuele netwerk.

Vereisten

  • Een Azure-account met een actief abonnement. U kunt gratis een account maken.

  • Azure Cloud Shell of Azure PowerShell.

    Met de stappen in deze quickstart worden de Azure PowerShell-cmdlets interactief uitgevoerd in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u CloudShell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal.

    U kunt Azure PowerShell ook lokaal installeren om de cmdlets uit te voeren. Voor de stappen in dit artikel is Azure PowerShell-moduleversie 5.4.1 of hoger vereist. Voer deze opdracht Get-Module -ListAvailable Az uit om uw geïnstalleerde versie te vinden. Zie De Azure PowerShell-module bijwerken als u een upgrade moet uitvoeren.

    Als u PowerShell lokaal uitvoert, voert u deze uit Connect-AzAccount om verbinding te maken met Azure.

Een brongroep maken

Gebruik New-AzResourceGroup om een resourcegroep te maken om het virtuele netwerk te hosten. Voer de volgende code uit om een resourcegroep met de naam test-rg te maken in de Azure-regio eastus2 :

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

Een virtueel netwerk maken

  1. Gebruik New-AzVirtualNetwork om een virtueel netwerk met de naam vnet-1 met IP-adresvoorvoegsel 10.0.0.0/16 te maken in de test-rg-resourcegroep en eastus2-locatie:

    $vnet = @{
        Name = 'vnet-1'
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        AddressPrefix = '10.0.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. Azure implementeert resources in een subnet binnen een virtueel netwerk. Gebruik Add-AzVirtualNetworkSubnetConfig om een subnetconfiguratie met de naam subnet-1 te maken met adresvoorvoegsel 10.0.0.0/24:

    $subnet = @{
        Name = 'subnet-1'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. Koppel de subnetconfiguratie aan het virtuele netwerk met behulp van Set-AzVirtualNetwork:

    $virtualNetwork | Set-AzVirtualNetwork
    

Azure Bastion implementeren

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 Wat is Azure Bastion?voor meer informatie over Bastion.

De prijzen per uur beginnen vanaf het moment dat Bastion wordt geïmplementeerd, ongeacht het uitgaande gegevensgebruik. Zie Prijzen en SKU's voor meer informatie. Als u Bastion implementeert als onderdeel van een zelfstudie of test, raden we u aan deze resource te verwijderen nadat u deze hebt gebruikt.

  1. Configureer een Bastion-subnet voor uw virtuele netwerk. Dit subnet is exclusief gereserveerd voor Bastion-resources en moet De naam AzureBastionSubnet hebben.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Stel de configuratie in:

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Maak een openbaar IP-adres voor Bastion. De Bastion-host gebruikt het openbare IP-adres voor toegang tot SSH en RDP via poort 443.

    $ip = @{
            ResourceGroupName = 'test-rg'
            Name = 'public-ip'
            Location = 'eastus2'
            AllocationMethod = 'Static'
            Sku = 'Standard'
            Zone = 1,2,3
    }
    New-AzPublicIpAddress @ip
    
  4. Gebruik de opdracht New-AzBastion om een nieuwe Standard SKU Bastion-host te maken in AzureBastionSubnet:

    $bastion = @{
        Name = 'bastion'
        ResourceGroupName = 'test-rg'
        PublicIpAddressRgName = 'test-rg'
        PublicIpAddressName = 'public-ip'
        VirtualNetworkRgName = 'test-rg'
        VirtualNetworkName = 'vnet-1'
        Sku = 'Basic'
    }
    New-AzBastion @bastion
    

Het duurt ongeveer 10 minuten om de Bastion-resources te implementeren. In de volgende sectie kunt u VM's maken terwijl Bastion wordt geïmplementeerd in uw virtuele netwerk.

Virtuele machines maken

Gebruik New-AzVM om twee virtuele machines met de naam vm-1 en vm-2 te maken in het subnet-1-subnet van het virtuele netwerk. Wanneer u om referenties wordt gevraagd, voert u gebruikersnamen en wachtwoorden voor de VM's in.

  1. Gebruik de volgende code om de eerste virtuele machine te maken:

    # 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 a network interface for the VM. ##
    $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 VM. ##
    $vm = @{
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        VM = $vmConfig
    }
    New-AzVM @vm
    
  2. Gebruik de volgende code om de tweede VIRTUELE machine te maken:

    # 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 a network interface for the VM. ##
    $nic = @{
        Name = "nic-2"
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        Subnet = $vnet.Subnets[0]
    }
    $nicVM = New-AzNetworkInterface @nic
    
    ## Create a virtual machine configuration. ##
    $vmsz = @{
        VMName = "vm-2"
        VMSize = 'Standard_DS1_v2'  
    }
    $vmos = @{
        ComputerName = "vm-2"
        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 VM. ##
    $vm = @{
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        VM = $vmConfig
    }
    New-AzVM @vm
    

Tip

U kunt de -AsJob optie gebruiken om een virtuele machine op de achtergrond te maken terwijl u doorgaat met andere taken. Voer bijvoorbeeld het volgende uit New-AzVM @vm1 -AsJob. Wanneer Azure de VIRTUELE machine op de achtergrond gaat maken, krijgt u ongeveer de volgende uitvoer:

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Long Running... AzureLongRun... Running       True            localhost            New-AzVM

Het duurt enkele minuten voordat Azure de VM's heeft gemaakt. Wanneer Azure klaar is met het maken van de VM's, wordt de uitvoer geretourneerd naar PowerShell.

Notitie

Vm's in een virtueel netwerk met een Bastion-host 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 vm's in virtuele netwerken die worden gehost door Bastion. Zie Een openbaar IP-adres loskoppelen van een Virtuele Azure-machine voor meer informatie.

Notitie

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 back-endpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
  • Er wordt een Azure NAT Gateway-resource toegewezen aan het subnet van de VIRTUELE machine.

Virtuele machines die u maakt met behulp van virtuele-machineschaalsets in de flexibele indelingsmodus, hebben geen standaardtoegang voor uitgaand verkeer.

Zie Voor meer informatie over uitgaande verbindingen in Azure standaard uitgaande toegang in Azure en SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen.

Verbinding maken met een virtuele machine

  1. Zoek en selecteer virtuele machines in de portal.

  2. Selecteer vm-1 op de pagina Virtuele machines.

  3. Selecteer Verbinding maken in de overzichtsinformatie voor vm-1.

  4. Selecteer op de pagina Verbinding maken naar de virtuele machine het tabblad Bastion.

  5. Selecteer Azure Bastion gebruiken.

  6. Voer de gebruikersnaam en het wachtwoord in die u hebt gemaakt tijdens het maken van de virtuele machine en selecteer vervolgens Verbinding maken.

Communicatie tussen VM's starten

  1. Voer bij de bash-prompt voor vm-1 in ping -c 4 vm-2.

    U krijgt een antwoord dat lijkt op het volgende bericht:

    azureuser@vm-1:~$ ping -c 4 vm-2
    PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data.
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
    
  2. Sluit de Bastion-verbinding met vm-1.

  3. Herhaal de stappen in Verbinding maken met een virtuele machine om verbinding te maken met vm-2.

  4. Voer bij de bash-prompt voor vm-2 het volgende in ping -c 4 vm-1.

    U krijgt een antwoord dat lijkt op het volgende bericht:

    azureuser@vm-2:~$ ping -c 4 vm-1
    PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data.
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
    
  5. Sluit de Bastion-verbinding met vm-2.

Resources opschonen

Wanneer u klaar bent met het virtuele netwerk en de VM's, gebruikt u Remove-AzResourceGroup om de resourcegroep en alle bijbehorende resources te verwijderen:

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

Volgende stappen

In deze quickstart hebt u een virtueel netwerk gemaakt met een standaardsubnet dat twee VIRTUELE machines bevat. U hebt Azure Bastion geïmplementeerd en gebruikt om verbinding te maken met de VM's en veilig te communiceren tussen de VM's. Zie Een virtueel netwerk maken, wijzigen of verwijderen voor meer informatie over instellingen voor virtuele netwerken.