Anslut virtuella nätverk från olika distributionsmodeller med hjälp av PowerShell

Den här artikeln hjälper dig att ansluta klassiska virtuella nätverk till virtuella Resource Manager-nätverk så att resurserna som finns i de separata distributionsmodellerna kan kommunicera med varandra. Stegen i den här artikeln använder PowerShell.

Den här artikeln är avsedd för kunder som redan har ett VNet som har skapats med den klassiska (äldre) distributionsmodellen och som nu vill ansluta det klassiska virtuella nätverket till ett annat VNet som skapades med den senaste distributionsmodellen. Om du inte redan har ett äldre VNet använder du artikeln Skapa ett VNet-till-VNet-anslutning i stället.

Arkitektur

Anslut ett klassiskt VNet till ett virtuellt Resource Manager-nätverk liknar att ansluta ett virtuellt nätverk till en lokal plats. Båda typerna av anslutning använder en VPN-gateway för att få en säker tunnel med IPsec/IKE. Du kan skapa en anslutning mellan virtuella nätverk som finns i olika prenumerationer och i olika regioner. Du kan också ansluta virtuella nätverk som redan har anslutningar till lokala nätverk, så länge gatewayen är dynamisk eller routningsbaserad. Mer information om VNet-till-VNet-anslutningar finns i vanliga frågor och svar om VNet-till-VNet.

För den här konfigurationen skapar du en VPN-gatewayanslutning via en IPsec/IKE VPN-tunnel mellan de virtuella nätverken. Se till att inget av dina VNet-intervall överlappar varandra eller med något av de lokala nätverk som de ansluter till.

I följande tabell visas ett exempel på hur exempel på virtuella nätverk och lokala platser definieras:

Virtual Network Adressutrymme Region Anslut till lokal nätverksplats
ClassicVNet (10.1.0.0/16) Västra USA RMVNetSite (192.168.0.0/16)
RMVNet (192.168.0.0/16) USA, östra ClassicVNetSite (10.1.0.0/16)

Förutsättningar

Följande steg beskriver de inställningar som krävs för att konfigurera en dynamisk eller routningsbaserad gateway för varje virtuellt nätverk och skapa en VPN-anslutning mellan gatewayerna. Den här konfigurationen stöder inte statiska eller principbaserade gatewayer.

De här stegen förutsätter att du redan har skapat ett äldre klassiskt virtuellt nätverk och ett resource manager-VNet.

  • Kontrollera att adressintervallen för de virtuella nätverken inte överlappar varandra eller överlappar något av intervallen för andra anslutningar som gatewayerna kan vara anslutna till.

  • I den här artikeln använder vi PowerShell. Installera de senaste PowerShell-cmdletarna på datorn för både Resource Manager och Service Management.

    Det är möjligt att utföra några av PowerShell-kommandona med hjälp av Azure Cloud Shell-miljön, men du måste installera båda versionerna av cmdletarna för att skapa anslutningarna korrekt.

    Mer information finns i Installera och konfigurera Azure PowerShell.

Exempelinställningar

Du kan använda dessa värden för att bättre förstå exemplen.

Klassiskt virtuellt nätverk

VNet-namn = ClassicVNet
Resursgrupp = ClassicRG-plats = USA, västra
Virtuella nätverksadressutrymmen = 10.1.0.0/16
Undernät1 = 10.1.0.0/24
GatewaySubnet = 10.1.255.0/27
Namn på lokalt nätverk = RMVNetSite
GatewayType = DynamicRouting

Resource Manager VNet

VNet-namn = RMVNet
Resursgrupp = RMRG
IP-adressutrymmen för virtuellt nätverk = 192.168.0.0/16
Undernät1 = 192.168.1.0/24
GatewaySubnet = 192.168.255.0/27
Plats = USA, östra
Gateway offentligt IP-namn = rmgwpip
Lokal nätverksgateway = ClassicVNetSite
Namn på virtuell nätverksgateway = RMGateway
Konfiguration av IP-adressering för gateway = gwipconfig

Konfigurera det klassiska virtuella nätverket

I det här avsnittet konfigurerar du det befintliga klassiska virtuella nätverket. Om ditt virtuella nätverk redan har en gateway kontrollerar du att gatewayen är routningsbaserad och fortsätter sedan till nästa avsnitt. Om gatewayen inte är routningsbaserad tar du bort gatewayen innan du går vidare med nästa steg. Du får möjlighet att skapa en ny gateway senare.

1. Ladda ned nätverkskonfigurationsfilen

  1. Logga in på ditt Azure-konto i PowerShell-konsolen med utökade rättigheter. Följande cmdlet frågar dig om inloggningsuppgifterna för ditt Azure-konto. När du har loggat in laddas dina kontoinställningar ned så att de är tillgängliga för Azure PowerShell. De klassiska Azure PowerShell-cmdletarna för Service Management (SM) används i det här avsnittet.

    Add-AzureAccount
    

    Hämta din Azure-prenumeration.

    Get-AzureSubscription
    

    Om du har mer än en prenumeration väljer du den du vill använda.

    Select-AzureSubscription -SubscriptionName "Name of subscription"
    
  2. Skapa en katalog på datorn. I det här exemplet skapade vi AzureNet.

  3. Exportera azure-nätverkskonfigurationsfilen genom att köra följande kommando. Du kan ändra platsen för filen så att den exporteras till en annan plats om det behövs.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  4. Öppna den .xml fil som du laddade ned för att redigera den. Ett exempel på nätverkskonfigurationsfilen finns i Schema för nätverkskonfiguration.

  5. Anteckna värdet VirtualNetworkSite name= . Om du har skapat det klassiska virtuella nätverket med hjälp av portalen följer namnet ett format som liknar "Group ClassicRG ClassicVNet" i stället för "ClassicVNet" i portalen.

2. Kontrollera gatewayundernätet

I elementet VirtualNetworkSites lägger du till ett gateway-undernät i ditt virtuella nätverk om ett inte redan har skapats. Gateway-undernätet MÅSTE ha namnet "GatewaySubnet" eller så kan Azure inte identifiera och använda det som ett gatewayundernät.

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?.

Exempel:

<VirtualNetworkSites>
  <VirtualNetworkSite name="ClassicVNet" Location="West US">
    <AddressSpace>
      <AddressPrefix>10.1.0.0/16</AddressPrefix>
    </AddressSpace>
    <Subnets>
      <Subnet name="Subnet1">
        <AddressPrefix>10.1.0.0/24</AddressPrefix>
      </Subnet>
      <Subnet name="GatewaySubnet">
        <AddressPrefix>10.1.255.0/27</AddressPrefix>
      </Subnet>
    </Subnets>
  </VirtualNetworkSite>
</VirtualNetworkSites>

3. Lägg till den lokala nätverksplatsen

Den lokala nätverksplats som du lägger till representerar det virtuella RM-nätverk som du vill ansluta till. Lägg till ett LocalNetworkSites-element i filen om det inte redan finns något. Nu i konfigurationen kan VPNGatewayAddress vara vilken giltig offentlig IP-adress som helst eftersom vi ännu inte har skapat gatewayen för det virtuella Resource Manager-nätverket. När du har skapat RM-gatewayen ersätter du den här platshållar-IP-adressen med rätt offentlig IP-adress som har tilldelats TILL RM-gatewayen.

<LocalNetworkSites>
  <LocalNetworkSite name="RMVNetSite">
    <AddressSpace>
      <AddressPrefix>192.168.0.0/16</AddressPrefix>
    </AddressSpace>
    <VPNGatewayAddress>5.4.3.2</VPNGatewayAddress>
  </LocalNetworkSite>
</LocalNetworkSites>

4. Associera det virtuella nätverket med den lokala nätverksplatsen

I det här avsnittet anger vi den lokala nätverksplats som du vill ansluta det virtuella nätverket till. I det här fallet är det det virtuella Resource Manager-nätverk som du refererade till tidigare. Kontrollera att namnen matchar. Det här steget skapar ingen gateway. Den anger det lokala nätverk som gatewayen ska ansluta till.

<Gateway>
  <ConnectionsToLocalNetwork>
    <LocalNetworkSiteRef name="RMVNetSite">
      <Connection type="IPsec" />
    </LocalNetworkSiteRef>
  </ConnectionsToLocalNetwork>
</Gateway>

5. Spara filen och ladda upp

Spara filen och importera den sedan till Azure genom att köra följande kommando. Se till att du ändrar filsökvägen efter behov för din miljö.

Set-AzureVNetConfig -ConfigurationPath C:\AzureNet\NetworkConfig.xml

Du ser ett liknande resultat som visar att importen lyckades.

OperationDescription        OperationId                      OperationStatus                                                
--------------------        -----------                      ---------------                                                
Set-AzureVNetConfig        e0ee6e66-9167-cfa7-a746-7casb9    Succeeded 

6. Skapa gatewayen

Innan du kör det här exemplet kan du läsa nätverkskonfigurationsfilen som du laddade ned för de exakta namn som Azure förväntar sig att se. Nätverkskonfigurationsfilen innehåller värdena för dina klassiska virtuella nätverk. När ett klassiskt virtuellt nätverk skapas med hjälp av portalen skiljer sig namnet på det virtuella nätverket i nätverkskonfigurationsfilen. Om du till exempel använde Azure-portalen för att skapa ett klassiskt virtuellt nätverk med namnet "klassiskt virtuellt nätverk" och skapade det i en resursgrupp med namnet "ClassicRG" konverteras namnet som finns i nätverkskonfigurationsfilen till "KlassiskT grupp-VNet". Använd alltid namnet i nätverkskonfigurationsfilen när du arbetar med PowerShell.När du anger namnet på ett virtuellt nätverk som innehåller blanksteg använder du citattecken runt värdet.

Använd följande exempel för att skapa en dynamisk routningsgateway:

New-AzureVNetGateway -VNetName ClassicVNet -GatewayType DynamicRouting

Du kan kontrollera gatewayens status med hjälp av cmdleten Get-AzureVNetGateway .

Konfigurera RM VNet-gatewayen

Förutsättningarna förutsätter att du redan har skapat ett virtuellt RM-nätverk. I det här steget skapar du en VPN-gateway för det virtuella RM-nätverket. Starta inte de här stegen förrän du har hämtat den offentliga IP-adressen för det klassiska virtuella nätverkets gateway.

  1. Logga in på ditt Azure-konto i PowerShell-konsolen. Följande cmdlet frågar dig om inloggningsuppgifterna för ditt Azure-konto. När du har loggat in laddas dina kontoinställningar ned så att de är tillgängliga för Azure PowerShell. Du kan också använda funktionen "Prova" för att starta Azure Cloud Shell i webbläsaren.

    Om du använder Azure Cloud Shell hoppar du över följande cmdlet:

    Connect-AzAccount
    

    Kontrollera att du använder rätt prenumeration genom att köra följande cmdlet:

    Get-AzSubscription
    

    Om du har fler än en prenumeration anger du den prenumeration som du vill använda.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Skapa en lokal nätverksgateway. I ett virtuellt nätverk refererar den lokala gatewayen vanligtvis till den lokala platsen. I det här fallet refererar den lokala nätverksgatewayen till ditt klassiska virtuella nätverk. Ge den ett namn som Azure kan referera till och ange även adressutrymmesprefixet. Azure använder det IP-adressprefix som du anger till att identifiera vilken trafik som ska skickas till den lokala platsen. Om du behöver justera informationen här senare kan du ändra värdena och köra exemplet igen innan du skapar din gateway.

    -Name är det namn som du vill tilldela för att referera till den lokala nätverksgatewayen.
    -AddressPrefix är adressutrymmet för det klassiska virtuella nätverket.
    -GatewayIpAddress är den offentliga IP-adressen för det klassiska virtuella nätverkets gateway. Se till att ändra följande exempeltext "n.n.n.n" så att den återspeglar rätt IP-adress.

    New-AzLocalNetworkGateway -Name ClassicVNetSite `
    -Location "West US" -AddressPrefix "10.1.0.0/16" `
    -GatewayIpAddress "n.n.n.n" -ResourceGroupName RMRG
    
  3. Begär att en offentlig IP-adress allokeras till den virtuella nätverksgatewayen för det virtuella Resource Manager-nätverket. Du kan inte ange den IP-adress som du vill använda. IP-adressen allokeras dynamiskt till den virtuella nätverksgatewayen. Detta innebär dock inte att IP-adressen ändras. Den enda gången ip-adressen för den virtuella nätverksgatewayen ändras är när gatewayen tas bort och återskapas. Det ändras inte mellan storleksändring, återställning eller annat internt underhåll/uppgraderingar av gatewayen.

    I det här steget anger vi även en variabel som används i ett senare steg.

    $ipaddress = New-AzPublicIpAddress -Name rmgwpip `
    -ResourceGroupName RMRG -Location 'EastUS' `
    -AllocationMethod Dynamic
    
  4. Kontrollera att det virtuella nätverket har ett gateway-undernät. Om det inte finns något gateway-undernät lägger du till ett. Kontrollera att gatewayundernätet heter GatewaySubnet.

    $vnet = Get-AzVirtualNetwork -ResourceGroupName RMRG -Name RMVNet
    Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 192.168.255.0/27 -VirtualNetwork $vnet
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  5. Hämta det undernät som används för gatewayen genom att köra följande kommando. I det här steget anger vi även en variabel som ska användas i nästa steg.

    -Name är namnet på ditt virtuella Resource Manager-nätverk.
    -ResourceGroupName är den resursgrupp som det virtuella nätverket är associerat med. Gateway-undernätet måste redan finnas för det här virtuella nätverket och måste ha namnet GatewaySubnet för att fungera korrekt.

    $subnet = Get-AzVirtualNetworkSubnetConfig -Name GatewaySubnet `
    -VirtualNetwork (Get-AzVirtualNetwork -Name RMVNet -ResourceGroupName RMRG)
    
  6. Skapa konfigurationen för gateway-IP-adressering. Gateway-konfigurationen definierar undernätet och den offentliga IP-adress som ska användas. Använd följande exempel för att skapa din gateway-konfiguration.

    I det här steget måste parametrarna -SubnetId och -PublicIpAddressId skickas till ID-egenskapen från undernätet respektive IP-adressobjekten. Du kan inte använda en enkel sträng. Dessa variabler anges i steget för att begära en offentlig IP-adress och steget för att hämta undernätet.

    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig `
    -Name gwipconfig -SubnetId $subnet.id `
    -PublicIpAddressId $ipaddress.id
    
  7. Skapa den virtuella Resource Manager-nätverksgatewayen genom att köra följande kommando. -VpnType Måste vara RouteBased. Det kan ta 45 minuter eller mer för gatewayen att skapa.

    New-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG `
    -Location "EastUS" -GatewaySKU Standard -GatewayType Vpn `
    -IpConfigurations $gwipconfig `
    -EnableBgp $false -VpnType RouteBased
    
  8. Kopiera den offentliga IP-adressen när VPN-gatewayen har skapats. Du använder den när du konfigurerar inställningarna för det lokala nätverket för det klassiska virtuella nätverket. Du kan använda följande cmdlet för att hämta den offentliga IP-adressen. Den offentliga IP-adressen visas i returen som IpAddress.

    Get-AzPublicIpAddress -Name rmgwpip -ResourceGroupName RMRG
    

Ändra inställningarna för den klassiska lokala VNet-webbplatsen

I det här avsnittet arbetar du med det klassiska virtuella nätverket. Du ersätter platshållar-IP-adressen som du använde när du anger de lokala platsinställningar som ska användas för att ansluta till den virtuella Resource Manager-nätverksgatewayen. Eftersom du arbetar med det klassiska virtuella nätverket använder du PowerShell installerat lokalt på datorn, inte Azure Cloud Shell TryIt.

  1. Exportera nätverkskonfigurationsfilen.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  2. Ändra värdet för VPNGatewayAddress med hjälp av en textredigerare. Ersätt platshållar-IP-adressen med den offentliga IP-adressen för Resource Manager-gatewayen och spara sedan ändringarna.

    <VPNGatewayAddress>13.68.210.16</VPNGatewayAddress>
    
  3. Importera den ändrade nätverkskonfigurationsfilen till Azure.

    Set-AzureVNetConfig -ConfigurationPath C:\AzureNet\NetworkConfig.xml
    

Skapa en anslutning mellan gatewayerna

För att skapa en anslutning mellan gatewayerna krävs PowerShell. Du kan behöva lägga till ditt Azure-konto för att använda den klassiska versionen av PowerShell-cmdletarna. Om du vill göra det använder du Add-AzureAccount.

  1. I PowerShell-konsolen anger du din delade nyckel. Innan du kör cmdletarna läser du nätverkskonfigurationsfilen som du laddade ned för de exakta namn som Azure förväntar sig att se. När du anger namnet på ett virtuellt nätverk som innehåller blanksteg använder du enkla citattecken runt värdet.

    I följande exempel är -VNetName namnet på det klassiska virtuella nätverket och -LocalNetworkSiteName är det namn som du angav för den lokala nätverksplatsen. Kontrollera namnen på båda i nätverkskonfigurationsfilen som du laddade ned tidigare.

    -SharedKey är ett värde som du genererar och anger. I exemplet använde vi "abc123", men du kan generera och använda något mer komplext. Det viktiga är att det värde som du anger här måste vara samma värde som du anger i nästa steg när du skapar anslutningen. Returen ska visa Status: Lyckades.

    Set-AzureVNetGatewayKey -VNetName ClassicVNet `
    -LocalNetworkSiteName RMVNetSite -SharedKey abc123
    
  2. Skapa VPN-anslutningen genom att köra följande kommandon:

    Ange variablerna.

    $vnet01gateway = Get-AzLocalNetworkGateway -Name ClassicVNetSite -ResourceGroupName RMRG
    $vnet02gateway = Get-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG
    

    Skapa anslutningen. Observera att -Anslut ionType är IPsec, inte Vnet2Vnet.

    New-AzVirtualNetworkGatewayConnection -Name RM-Classic -ResourceGroupName RMRG `
    -Location "East US" -VirtualNetworkGateway1 `
    $vnet02gateway -LocalNetworkGateway2 `
    $vnet01gateway -ConnectionType IPsec -RoutingWeight 10 -SharedKey 'abc123'
    

Verifiera dina anslutningar

Klassiskt VNet till RM VNet

Du kan kontrollera att anslutningen lyckades med hjälp av cmdleten Get-AzureVNet Anslut ion. Den här cmdleten måste köras lokalt på datorn.

  1. Använd följande cmdlet-exempel genom att konfigurera värdena för att matcha dina egna. Namnet på det virtuella nätverket måste vara inom citattecken om det innehåller blanksteg. Använd namnet på det virtuella nätverket, som det finns i nätverkskonfigurationsfilen.

    Get-AzureVNetConnection "ClassicVNet"
    
  2. Visa värdena när cmdlet:en har slutförts. I följande exempel visas Anslut ivity State som "Anslut ed" och du kan se inkommande och utgående byte.

    ConnectivityState         : Connected
    EgressBytesTransferred    : 0
    IngressBytesTransferred   : 0
    LastConnectionEstablished : 4/25/2022 4:24:34 PM
    LastEventID               : 24401
    LastEventMessage          : The connectivity state for the local network site 'RMVNetSite' changed from Not Connected to Connected.
    LastEventTimeStamp        : 4/25/2022 4:24:34 PM
    LocalNetworkSiteName      : RMVNetSite
    OperationDescription      :
    OperationId               :
    OperationStatus           :
    

RM VNet till klassiskt VNet

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 följande exempel visas anslutningsstatusen som "Anslut ed" och du kan se inkommande och utgående byte.

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

Nästa steg

Mer information om VNet-till-VNet-anslutningar finns i vanliga frågor och svar om VPN Gateway.