Skapa ett virtuellt nätverk med en plats-till-plats-VPN-anslutning med PowerShell

Den här artikeln visar hur du använder PowerShell för att skapa en vpn-gatewayanslutning från plats till plats från ditt lokala nätverk till det virtuella nätverket. Stegen i den här artikeln gäller för Resource Manager-distributionsmodellen. Du kan också skapa den här konfigurationen med ett annat distributionsverktyg eller en annan distributionsmodell genom att välja ett annat alternativ i listan nedan:

En vpn-gatewayanslutning från plats till plats används för att ansluta ditt lokala nätverk till ett virtuellt Azure-nätverk via en IPsec/IKE-tunnel (IKEv1 eller IKEv2). Den här typen av anslutning kräver en lokal VPN-enhet som tilldelats till en extern offentlig IP-adress. Mer information om VPN-gatewayer finns i Om VPN-gateway.

Diagram of site-to-site VPN Gateway cross-premises connections.

Innan du börjar

Kontrollera att du har uppfyllt följande villkor innan du påbörjar konfigurationen:

  • Kontrollera att du har en kompatibel VPN-enhet och någon som kan konfigurera den. Se Om VPN-enheter för mer information om kompatibla VPN-enheter och enhetskonfiguration.
  • Kontrollera att du har en extern offentlig IPv4-adress för VPN-enheten.
  • Om du inte känner till IP-adressintervallen i din lokala nätverkskonfiguration måste du samordna med någon som kan ange den informationen åt dig. När du skapar den här konfigurationen måste du ange prefix för IP-adressintervall som Azure dirigerar till den lokala platsen. Inget av undernäten i ditt lokala nätverk kan överlappa de virtuella nätverksundernät du vill ansluta till.

Azure PowerShell

Den här artikeln använder PowerShell-cmdletar. Om du vill köra cmdletarna kan du använda Azure Cloud Shell. Cloud Shell är ett kostnadsfritt interaktivt gränssnitt som du kan använda för att köra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.

Öppna Cloud Shell genom att välja Öppna Cloudshell i det övre högra hörnet i ett kodblock. Du kan också öppna Cloud Shell på en separat webbläsarflik genom att gå till https://shell.azure.com/powershell. Välj Kopiera för att kopiera kodblocken, klistra in dem i Cloud Shell och välj returnyckeln för att köra dem.

Du kan också installera och köra Azure PowerShell-cmdletarna lokalt på datorn. PowerShell-cmdletar uppdateras ofta. Om du inte har installerat den senaste versionen kan de värden som anges i anvisningarna misslyckas. Om du vill hitta versionerna av Azure PowerShell installerade på datorn använder du cmdleten Get-Module -ListAvailable Az . Information om hur du installerar eller uppdaterar finns i Installera Azure PowerShell-modulen.

Exempelvärden

Vi använder följande värden i exemplen. Du kan använda värdena till att skapa en testmiljö eller hänvisa till dem för att bättre förstå exemplen i den här artikeln.

#Example values

VnetName                = VNet1
ResourceGroup           = TestRG1
Location                = East US 
AddressSpace            = 10.1.0.0/16 
SubnetName              = Frontend 
Subnet                  = 10.1.0.0/24 
GatewaySubnet           = 10.1.255.0/27
LocalNetworkGatewayName = Site1
LNG Public IP           = <On-premises VPN device IP address> 
Local Address Prefixes  = 10.0.0.0/24, 20.0.0.0/24
Gateway Name            = VNet1GW
PublicIP                = VNet1GWPIP
Gateway IP Config       = gwipconfig1 
VPNType                 = RouteBased 
GatewayType             = Vpn 
ConnectionName          = VNet1toSite1

1. Skapa ett virtuellt nätverk och ett gateway-undernät

Om du inte redan har ett virtuellt nätverk, skapa ett. När du skapar ett virtuellt nätverk ska du kontrollera att de adressutrymmen du anger inte överlappar några adressutrymmen som du har i det lokala nätverket.

Kommentar

För att detta VNet ska anslutas till en lokal plats måste du kontakta den lokala nätverksadministratören för att få ett intervall med IP-adresser som du kan använda specifikt för det här virtuella nätverket. Om det finns ett duplicerat adressintervall på båda sidor av VPN-anslutningen dirigeras inte trafiken som du kan förvänta dig. Om du dessutom vill ansluta detta VNet till ett annat VNet kan inte adressutrymmet överlappa med andra VNet. Var noga med att planera din nätverkskonfiguration på lämpligt sätt.

Om gateway-undernätet

Den virtuella nätverksgatewayen använder specifika undernät som kallas gateway-undernät. Gateway-undernätet ingår i det virtuella nätverkets IP-adressintervall som du anger när du konfigurerar det virtuella nätverket. Det innehåller de IP-adresser som gateway-resurserna och tjänsterna för det virtuella nätverket använder. Undernätet måste ha namnet ”GatewaySubnet' för att Azure ska kunna distribuera gateway-resurserna. Du kan inte ange ett annat undernät som gateway-resurserna ska distribueras till. Om du inte har ett undernät med namnet GatewaySubnet, kommer du inte kunna skapa din VPN-gateway.

När du skapar gatewayundernätet anger du det antal IP-adresser som undernätet innehåller. Hur många IP-adresser som behövs beror på vilken konfiguration av VPN-gatewayen som du vill skapa. Vissa konfigurationer kräver fler IP-adresser än andra. Vi rekommenderar att du skapar ett gateway-undernät som använder /27 eller /28.

Kontrollera ditt VNet-adressintervall om du ser ett fel som anger att adressutrymmet överlappar ett undernät, eller att undernätet inte ligger inom adressutrymmet för det virtuella nätverket. Du kanske inte har tillräckligt med tillgängliga IP-adresser i adressintervallet som du har skapat för ditt virtuella nätverk. Till exempel om ditt standardundernät omfattar hela adressintervallet, finns det inga IP-adresser kvar till att skapa extra undernät. Du kan antingen justera dina undernät i det befintliga adressutrymmet för att frigöra IP-adresser, eller ange ett ytterligare adressintervall och skapa gateway-undernätet där.

Viktigt!

När du arbetar med gatewayundernät bör du undvika att associera en nätverkssäkerhetsgrupp (NSG) med gatewayundernätet. Om du kopplar en nätverkssäkerhetsgrupp till det här undernätet kan det leda till att din virtuella nätverksgateway (VPN- och ExpressRoute-gatewayer) slutar fungera som förväntat. Mer information om nätverkssäkerhetsgrupper finns i Vad är en nätverkssäkerhetsgrupp?.

Skapa ett virtuellt nätverk och ett gateway-undernät.

I det här exemplet skapas ett virtuellt nätverk och ett gateway-undernät. Om du redan har ett virtuellt nätverk som du behöver lägga till ett gateway-undernät för kan du läsa Så här lägger du till ett gateway-undernät i ett virtuellt nätverk som du redan har skapat.

Skapa en resursgrupp:

New-AzResourceGroup -Name TestRG1 -Location 'East US'

Skapa ditt virtuella nätverk.

  1. Ange variablerna.

    $subnet1 = New-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27
    $subnet2 = New-AzVirtualNetworkSubnetConfig -Name 'Frontend' -AddressPrefix 10.1.0.0/24
    
  2. Skapa VNet.

    New-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1 `
    -Location 'East US' -AddressPrefix 10.1.0.0/16 -Subnet $subnet1, $subnet2
    

Så här lägger du till ett gateway-undernät i ett virtuellt nätverk som du redan har skapat

Använd stegen i det här avsnittet om du redan har ett virtuellt nätverk, men behöver lägga till ett gatewayundernät.

  1. Ange variablerna.

    $vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1
    
  2. Skapa gateway-undernätet.

    Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet
    
  3. Ange konfigurationen.

    Set-AzVirtualNetwork -VirtualNetwork $vnet
    

2. Skapa den lokala nätverksgatewayen

Den lokala nätverksgatewayen (LNG) refererar vanligtvis till din lokala plats. Det är inte samma sak som en virtuell nätverksgateway. Du namnger webbplatsen så att Azure kan referera till den och sedan anger du IP-adressen för den lokala VPN-enhet som du skapar en anslutning till. Du anger också IP-adressprefixen som ska dirigeras via VPN-gatewayen till VPN-enheten. Adressprefixen du anger är de prefix som finns på det lokala nätverket. Det är enkelt att uppdatera dessa prefix om det lokala nätverket ändras.

Välj något av följande exempel. De värden som används i exemplen är:

  • GatewayIPAddress är IP-adressen till den lokala VPN-enheten.
  • AddressPrefix är ditt lokala adressutrymme.

Exempel på prefix med en adress

New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '23.99.221.164' -AddressPrefix '10.0.0.0/24'

Exempel på flera adressprefix

New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '23.99.221.164' -AddressPrefix @('20.0.0.0/24','10.0.0.0/24')

3. Begär en offentlig IP-adress

En VPN-gateway måste ha en offentlig IP-adress. Först begär du IP-adressresursen och sedan hänvisar du till den när du skapar din virtuella nätverksgateway. IP-adressen tilldelas dynamiskt till resursen när en VPN-gateway har skapats. Den enda gången som den offentliga IP-adressen ändras är när gatewayen tas bort och återskapas. Den ändras inte vid storleksändring, återställning eller annat internt underhåll/uppgraderingar av din VPN-gateway.

Begär en offentlig IP-adress för vpn-gatewayen för det virtuella nätverket.

$gwpip= New-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1 -Location 'East US' -AllocationMethod Static -Sku Standard

4. Skapa konfigurationen för gateway-IP-adressering

Gatewaykonfigurationen definierar undernätet (GatewaySubnet) och den offentliga IP-adress som ska användas. Använd följande exempel för att skapa din gateway-konfiguration:

$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1
$subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
$gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gwpip.Id

5. Skapa VPN-gatewayen

Skapa den virtuella VPN-nätverksgatewayen. Att skapa en gateway kan ofta ta 45 minuter eller mer, beroende på vald gateway-SKU. Följande värden används i exemplet:

  • -GatewayType för en plats-till-plats-konfiguration är VPN. Gatewaytypen är alltid specifik för den konfiguration som du implementerar. Andra gatewaykonfigurationer kan till exempel kräva -GatewayType ExpressRoute.
  • -VpnType kan vara RouteBased (kallas en dynamisk gateway i viss dokumentation) eller PolicyBased (kallas en statisk gateway i viss dokumentation). Mer information om VPN Gateway-typer finns i Om VPN Gateway.
  • Markera den gateway SKU som du vill använda. Det finns konfigurationsbegränsningar för vissa SKU:er. Se Gateway SKU:er för mer information. Om du får ett felmeddelande när du skapar VPN-gatewayen för GatewaySku, kontrollerar du att du har installerat den senaste versionen av PowerShell-cmdlets.
New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location 'East US' -IpConfigurations $gwipconfig -GatewayType Vpn `
-VpnType RouteBased -GatewaySku VpnGw2

6. Konfigurera VPN-enheten

Plats-till-plats-anslutningar till ett lokalt nätverk kräver en VPN-enhet. I det här steget konfigurerar du VPN-enheten. När du konfigurerar VPN-enheten behöver du följande:

  • En delad nyckel. Det här är samma delade nyckel som du anger när du skapar din PLATS-till-plats VPN-anslutning. I vårt exempel använder vi en enkel delad nyckel. Vi rekommenderar att du skapar och använder en mer komplex nyckel.

  • Den offentliga IP-adressen för din virtuella nätverksgateway. Du kan visa den offentliga IP-adressen genom att använda Azure Portal, PowerShell eller CLI. Använd följande exempel för att hitta den offentliga IP-adressen för din virtuella nätverksgateway med hjälp av PowerShell. I det här exemplet är VNet1GWPIP namnet på den offentliga IP-adressresurs som du skapade i ett tidigare steg.

    Get-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1
    

För att ladda ned konfigurationsskript för VPN-enheten:

Beroende på vilken VPN-enhet du har kan du eventuellt hämta ett skript för VPN-enhetskonfiguration. Mer information finns i Ladda ned konfigurationsskript för VPN-enheten.

Se följande länkar för ytterligare information om konfiguration:

7. Skapa VPN-anslutningen

Skapa sedan vpn-anslutningen plats-till-plats mellan din virtuella nätverksgateway och VPN-enheten. Glöm inte att byta ut värdena mot dina egna. Den delade nyckeln måste överensstämma med värdet som du använde vid din konfiguration av VPN-enheten. Observera att "-Anslut ionType" för plats-till-plats är IPsec.

  1. Ange variablerna.

    $gateway1 = Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1
    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Skapa anslutningen.

    New-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1 `
    -Location 'East US' -VirtualNetworkGateway1 $gateway1 -LocalNetworkGateway2 $local `
    -ConnectionType IPsec -SharedKey 'abc123'
    

Efter en kort stund har anslutningen upprättats.

8. Kontrollera VPN-anslutningen

Det finns några olika metoder för att verifiera VPN-anslutningen.

Du kan kontrollera att anslutningen lyckades med hjälp av cmdleten "Get-AzVirtualNetworkGateway Anslut ion", med eller utan "-Felsökning".

  1. Använd följande cmdlet-exempel genom att konfigurera värdena för att matcha dina egna. Välj A om du uppmanas, för att köra Alla. I exemplet avser '-Name' namnet på den anslutning du vill testa.

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. Visa värdena när cmdlet:en har slutförts. I exemplet nedan visas anslutningsstatusen som Ansluten och du kan se ingående och utgående byte.

    "connectionStatus": "Connected",
    "ingressBytesTransferred": 33509044,
    "egressBytesTransferred": 4142431
    

Ansluta till en virtuell dator

Du kan ansluta till en virtuell dator som distribueras till ditt virtuella nätverk genom att skapa en fjärrskrivbords-Anslut ion till den virtuella datorn. Det bästa sättet att först kontrollera att du kan ansluta till den virtuella datorn är att ansluta via dess privata IP-adress snarare än datornamnet. På så sätt testar du om du kan ansluta, inte huruvida namnmatchningen är korrekt konfigurerad.

  1. Leta upp den privata IP-adressen. Du hittar den privata IP-adressen för en virtuell dator genom att antingen titta på egenskaperna för den virtuella datorn i Azure-portalen eller med hjälp av PowerShell.

    • Azure-portalen: Leta upp den virtuella datorn i Azure-portalen. Visa egenskaperna för den virtuella datorn. Den privata IP-adressen är angiven.

    • PowerShell: Använd exemplet för att visa en lista över virtuella datorer och privata IP-adresser från dina resursgrupper. Du behöver inte ändra exemplet innan du använder det.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Kontrollera att du är ansluten till ditt virtuella nätverk.

  3. Öppna Fjärrskrivbord Anslut ion genom att ange RDP eller Fjärrskrivbord Anslut ion i sökrutan i aktivitetsfältet. Välj sedan Fjärrskrivbord Anslut ion. Du kan också öppna Fjärrskrivbord Anslut ion med hjälp mstsc av kommandot i PowerShell.

  4. I fjärrskrivbordsanslutningen anger du den virtuella datorns privata IP-adress. Du kan välja Visa alternativ för att justera andra inställningar och sedan ansluta.

Om du har problem med att ansluta till en virtuell dator via VPN-anslutningen kontrollerar du följande punkter:

  • Kontrollera att VPN-anslutningen har genomförts.
  • Kontrollera att du ansluter till den virtuella datorns privata IP-adress.
  • Om du kan ansluta till den virtuella datorn med hjälp av den privata IP-adressen men inte datornamnet kontrollerar du att du har konfigurerat DNS korrekt. Mer information om hur namnmatchning fungerar för virtuella datorer finns i Namnmatchning för virtuella datorer.

Mer information finns i Felsöka fjärrskrivbordsanslutningar till en virtuell dator.

Så här ändrar du IP-adressprefixen för en lokal nätverksgateway

Om IP-adressprefixen du vill ska dirigeras till din lokala plats ändras kan du ändra din lokala nätverksgateway. När du använder de här exemplen ändrar du värdena så att de matchar din miljö.

Så här lägger du till ytterligare adressprefix:

  1. Ställ in variabeln för LocalNetworkGateway.

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Ändra prefixen. De värden som du anger skriver över de tidigare värdena.

    Set-AzLocalNetworkGateway -LocalNetworkGateway $local `
    -AddressPrefix @('10.101.0.0/24','10.101.1.0/24','10.101.2.0/24')
    

Så här tar du bort adressprefix:

Utelämna de prefix som du inte längre behöver. I det här exemplet behöver vi inte längre prefixet 10.101.2.0/24 (från föregående exempel), så vi uppdaterar den lokala nätverksgatewayen och exkluderar prefixet.

  1. Ställ in variabeln för LocalNetworkGateway.

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Ange gatewayen med de uppdaterade prefixen.

    Set-AzLocalNetworkGateway -LocalNetworkGateway $local `
    -AddressPrefix @('10.101.0.0/24','10.101.1.0/24')
    

Så här ändrar du gateway-IP-adressen för en lokal nätverksgateway

Om VPN-enheten som du vill ansluta till har bytt offentlig IP-adress måste du ändra den lokala nätverksgatewayen så att den återspeglar den ändringen. När du ändrar det här värdet kan du också ändra adressprefixen på samma gång. Se till att använda det befintliga namnet på din lokala nätverksgateway för att skriva över de aktuella inställningarna. Om du inte gör det skapar du en ny lokal nätverksgateway i stället för att skriva över den som redan finns.

New-AzLocalNetworkGateway -Name Site1 `
-Location "East US" -AddressPrefix @('10.101.0.0/24','10.101.1.0/24') `
-GatewayIpAddress "5.4.3.2" -ResourceGroupName TestRG1

Ta bort en gatewayanslutning

Om du inte känner till namnet på anslutningen kan du hitta den med hjälp av cmdleten "Get-AzVirtualNetworkGateway Anslut ion".

Remove-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 `
-ResourceGroupName TestRG1

Nästa steg