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.
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
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
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
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.
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
Stel de configuratie in:
$virtualNetwork | Set-AzVirtualNetwork
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
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.
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
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
Zoek en selecteer virtuele machines in de portal.
Selecteer vm-1 op de pagina Virtuele machines.
Selecteer Verbinding maken in de overzichtsinformatie voor vm-1.
Selecteer op de pagina Verbinding maken met virtuele machine het tabblad Bastion .
Selecteer Azure Bastion gebruiken.
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
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
Sluit de Bastion-verbinding met vm-1.
Herhaal de stappen in Verbinding maken met een virtuele machine om verbinding te maken met vm-2.
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
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.