Dela via


Ansluta virtuella nätverk med peering för virtuella nätverk med PowerShell

Du kan ansluta virtuella nätverk till varandra med peerkoppling. När virtuella nätverk har peerkopplats kan resurser i båda virtuella nätverken kommunicera med varandra, med samma svarstid och bandbredd som om resurserna fanns i samma virtuella nätverk.

I den här artikeln kan du se hur du:

  • Skapa två virtuella nätverk

  • Koppla samman två virtuella nätverk med en peerkoppling

  • Distribuera en virtuell dator (VM) till varje virtuellt nätverk

  • Kommunicera mellan virtuella datorer

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. Skärmbild som visar ett exempel på Try It for Azure Cloud Shell.
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Knapp för att starta Azure Cloud Shell.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Skärmbild som visar Cloud Shell-knappen i Azure-portalen

Så här använder du Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.

  3. Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.

  4. Välj Retur för att köra koden eller kommandot.

Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Azure PowerShell-modulen version 1.0.0 eller senare. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att skapa en anslutning till Azure.

Skapa virtuella nätverk

Innan du skapar ett virtuellt nätverk måste du skapa en resursgrupp för det virtuella nätverket och alla andra resurser som skapas i den här artikeln. Skapa en resursgrupp med New-AzResourceGroup. I följande exempel skapas en resursgrupp med namnet test-rgplatsen eastus .

$resourceGroup = @{
    Name = "test-rg"
    Location = "EastUS"
}
New-AzResourceGroup @resourceGroup

Skapa ett virtuellt nätverk med hjälp av New-AzVirtualNetwork. I följande exempel skapas ett virtuellt nätverk med namnet vnet-1 med adressprefixet 10.0.0.0/16.

$vnet1 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    Name = "vnet-1"
    AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork1 = New-AzVirtualNetwork @vnet1

Skapa en undernätskonfiguration med Add-AzVirtualNetworkSubnetConfig. I följande exempel skapas en undernätskonfiguration med adressprefixet 10.0.0.0/24 :

$subConfig = @{
    Name = "subnet-1"
    AddressPrefix = "10.0.0.0/24"
    VirtualNetwork = $virtualNetwork1
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig

Skriv undernätskonfigurationen till det virtuella nätverket med Set-AzVirtualNetwork, som skapar undernätet:

$virtualNetwork1 | Set-AzVirtualNetwork

Skapa ett virtuellt nätverk med adressprefixet 10.1.0.0/16 och ett undernät:

# Create the virtual network.
$vnet2 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    Name = "vnet-2"
    AddressPrefix = "10.1.0.0/16"
}
$virtualNetwork2 = New-AzVirtualNetwork @vnet2

# Create the subnet configuration.
$subConfig = @{
    Name = "subnet-1"
    AddressPrefix = "10.1.0.0/24"
    VirtualNetwork = $virtualNetwork2
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig

# Write the subnet configuration to the virtual network.
$virtualNetwork2 | Set-AzVirtualNetwork

Peerkoppla virtuella nätverk

Skapa en peering med Add-AzVirtualNetworkPeering. I följande exempel peer-datorer vnet-1 till vnet-2.

$peerConfig1 = @{
    Name = "vnet-1-to-vnet-2"
    VirtualNetwork = $virtualNetwork1
    RemoteVirtualNetworkId = $virtualNetwork2.Id
}
Add-AzVirtualNetworkPeering @peerConfig1

I utdata som returneras efter att föregående kommando har körts ser du att PeeringState initieras. Peering förblir i tillståndet Initierad tills du skapar peering från vnet-2 till vnet-1. Skapa en peering från vnet-2 till vnet-1.

$peerConfig2 = @{
    Name = "vnet-2-to-vnet-1"
    VirtualNetwork = $virtualNetwork2
    RemoteVirtualNetworkId = $virtualNetwork1.Id
}
Add-AzVirtualNetworkPeering @peerConfig2

I utdata som returneras efter att föregående kommando har körts ser du att PeeringState är Ansluten. Azure har också ändrat peeringtillståndet för peering-peering vnet-1-to-vnet-2 till Ansluten. Bekräfta att peeringtillståndet för peering-peering vnet-1-to-vnet-2 har ändrats till Ansluten med Get-AzVirtualNetworkPeering.

$peeringState = @{
    ResourceGroupName = "test-rg"
    VirtualNetworkName = "vnet-1"
}
Get-AzVirtualNetworkPeering @peeringState | Select PeeringState

Resurser i ett virtuellt nätverk kan inte kommunicera med resurser i det andra virtuella nätverket förrän PeeringState för peerings i båda virtuella nätverken är Ansluten.

Skapa virtuella datorer

Skapa en virtuell dator i varje virtuellt nätverk så att du kan kommunicera mellan dem i ett senare steg.

Skapa den första virtuella datorn

Skapa en virtuell dator med New-AzVM. I följande exempel skapas en virtuell dator med namnet vm-1 i det virtuella nätverket vnet-1 . Alternativet -AsJob skapar den virtuella datorn i bakgrunden, så att du kan fortsätta till nästa steg. När du uppmanas till det anger du användarnamnet och lösenordet för den virtuella datorn.

$vm1 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    VirtualNetworkName = "vnet-1"
    SubnetName = "subnet-1"
    ImageName = "Win2019Datacenter"
    Name = "vm-1"
}
New-AzVm @vm1 -AsJob

Skapa den andra virtuella datorn

$vm2 = @{
    ResourceGroupName = "test-rg"
    Location = "EastUS"
    VirtualNetworkName = "vnet-2"
    SubnetName = "subnet-1"
    ImageName = "Win2019Datacenter"
    Name = "vm-2"
}
New-AzVm @vm2

Det tar några minuter att skapa den virtuella datorn. Fortsätt inte med de senare stegen förrän Azure skapar vm-2 och returnerar utdata till PowerShell.

Kommentar

Azure tillhandahåller en standard-IP för utgående åtkomst för virtuella datorer som antingen inte har tilldelats någon offentlig IP-adress eller som finns i serverdelspoolen för en intern grundläggande Azure-lastbalanserare. Ip-mekanismen för utgående åtkomst har en utgående IP-adress som inte kan konfigureras.

Standard-IP för utgående åtkomst inaktiveras när någon av följande händelser inträffar:

  • En offentlig IP-adress tilldelas till den virtuella datorn.
  • Den virtuella datorn placeras i serverdelspoolen för en standardlastbalanserare, med eller utan regler för utgående trafik.
  • En Azure NAT Gateway-resurs tilldelas till den virtuella datorns undernät.

Virtuella datorer som du skapar med hjälp av vm-skalningsuppsättningar i flexibelt orkestreringsläge har inte standardåtkomst till utgående trafik.

Mer information om utgående anslutningar i Azure finns i Standardutgående åtkomst i Azure och Använda SNAT (Source Network Address Translation) för utgående anslutningar.

Kommunicera mellan virtuella datorer

Du kan ansluta till en virtuell dators offentliga IP-adress från Internet. Använd Get-AzPublicIpAddress för att returnera den offentliga IP-adressen för en virtuell dator. I följande exempel returneras den offentliga IP-adressen för den virtuella datorn vm-1 :

$ipAddress = @{
    ResourceGroupName = "test-rg"
    Name = "vm-1"
}
Get-AzPublicIpAddress @ipAddress | Select IpAddress

Använd följande kommando för att skapa en fjärrskrivbordssession med den virtuella datorn vm-1 från den lokala datorn. Ersätt <publicIpAddress> med IP-adressen som returnerades från föregående kommando.

mstsc /v:<publicIpAddress>

En fjärrskrivbordsprotokollfil (.rdp) skapas och öppnas. Ange användarnamnet och lösenordet (du kan behöva välja Fler alternativ, sedan Använda ett annat konto, ange de autentiseringsuppgifter som du angav när du skapade den virtuella datorn) och klicka sedan på OK. Du kan få en certifikatvarning under inloggningen. Klicka på Ja eller Fortsätt för att fortsätta med anslutningen.

vm-1 aktiverar du ICMP (Internet Control Message Protocol) via Windows-brandväggen så att du kan pinga den här virtuella datorn från vm-2 i ett senare steg med hjälp av PowerShell:

New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4

Ping används för att kommunicera mellan virtuella datorer i den här artikeln, men det rekommenderas inte att tillåta ICMP via Windows-brandväggen för produktionsdistributioner.

Om du vill ansluta till vm-2 anger du följande kommando från en kommandotolk på vm-1:

mstsc /v:10.1.0.4

Du har aktiverat ping på vm-1. Nu kan du pinga vm-1 via IP-adress från en kommandotolk på vm-2.

ping 10.0.0.4

Du får fyra svar. Koppla från DINA RDP-sessioner till både vm-1 och vm-2.

Rensa resurser

När den inte längre behövs använder du Remove-AzResourcegroup för att ta bort resursgruppen och alla resurser som den innehåller.

Remove-AzResourceGroup -Name test-rg -Force

Nästa steg

I den här artikeln har du lärt dig hur du ansluter två nätverk i samma Azure-region med peering för virtuella nätverk. Du kan också peerkoppla virtuella nätverk i olika regioner som stöds och i olika Azure-prenumerationer, samt skapa nav- och ekernätverksdesigner med peerkoppling. Mer information om peerkoppling av virtuella nätverk finns i Översikt över peerkoppling av virtuella nätverk och Hantera peerkopplingar av virtuella nätverk.

Du kan ansluta din egen dator till ett virtuellt nätverk via ett VPN och interagera med resurser i ett virtuellt nätverk eller i peerkopplade virtuella nätverk. För återanvändbara skript för att slutföra många av de uppgifter som beskrivs i artiklarna om virtuella nätverk, se skriptexempel.