Tworzenie sieci wirtualnej z połączeniem sieci VPN typu lokacja-lokacja przy użyciu programu PowerShell

W tym artykule pokazano, jak za pomocą programu PowerShell utworzyć połączenie bramy sieci VPN typu lokacja-lokacja z sieci lokalnej do sieci wirtualnej. Kroki opisane w tym artykule dotyczą modelu wdrażania przy użyciu usługi Resource Manager. Tę konfigurację możesz również utworzyć przy użyciu innego narzędzia wdrażania lub modelu wdrażania, wybierając inną opcję z następującej listy:

Połączenie bramy sieci VPN typu lokacja-lokacja służy do łączenia sieci lokalnej z siecią wirtualną platformy Azure za pośrednictwem tunelu sieci VPN IPsec/IKE (IKEv1 lub IKEv2). Ten typ połączenia wymaga lokalnego urządzenia sieci VPN z przypisanym publicznym adresem IP dostępnym z zewnątrz. Więcej informacji o bramach sieci VPN można znaleźć w artykule Informacje dotyczące bram sieci VPN.

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

Zanim rozpoczniesz

Przed rozpoczęciem konfiguracji sprawdź, czy są spełnione następujące kryteria:

  • Upewnij się, że masz zgodne urządzenie sieci VPN i dostępna jest osoba, która umie je skonfigurować. Aby uzyskać więcej informacji o zgodnych urządzeniach sieci VPN i konfiguracji urządzeń, zobacz artykuł Informacje o urządzeniach sieci VPN.
  • Sprawdź, czy masz dostępny zewnętrznie publiczny adres IPv4 urządzenia sieci VPN.
  • Jeśli nie znasz zakresów adresów IP znajdujących się w konfiguracji sieci lokalnej, musisz koordynować pracę z osobą, która może podać te szczegóły. Tworząc tę konfigurację, musisz określić prefiksy zakresu adresów IP, które platforma Azure będzie kierować do Twojej lokalizacji lokalnej. Żadna z podsieci sieci lokalnej nie może się nakładać na podsieci sieci wirtualnej, z którymi chcesz nawiązać połączenie.

Azure PowerShell

W tym artykule są używane polecenia cmdlet programu PowerShell. Aby uruchomić polecenia cmdlet, możesz użyć usługi Azure Cloud Shell. Cloud Shell to bezpłatna interaktywna powłoka, której można użyć do wykonania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Otwórz program CloudShell w prawym górnym rogu bloku kodu. Możesz również otworzyć usługę Cloud Shell na osobnej karcie przeglądarki, przechodząc do strony https://shell.azure.com/powershell. Wybierz pozycję Kopiuj , aby skopiować bloki kodu, wklej je w usłudze Cloud Shell, a następnie wybierz klawisz Enter, aby je uruchomić.

Możesz również zainstalować i uruchomić polecenia cmdlet programu Azure PowerShell lokalnie na komputerze. Polecenia cmdlet programu PowerShell są często aktualizowane. Jeśli nie zainstalowano najnowszej wersji, wartości określone w instrukcjach mogą zakończyć się niepowodzeniem. Aby znaleźć wersje programu Azure PowerShell zainstalowane na komputerze, użyj Get-Module -ListAvailable Az polecenia cmdlet . Aby zainstalować lub zaktualizować, zobacz Instalowanie modułu programu Azure PowerShell.

Przykładowe wartości

W przykładach w tym artykule są stosowane następujące wartości. Tych wartości możesz użyć do tworzenia środowiska testowego lub odwoływać się do nich, aby lepiej zrozumieć przykłady w niniejszym artykule.

#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. Tworzenie sieci wirtualnej i podsieci bramy

Jeśli nie masz jeszcze sieci wirtualnej, utwórz ją. Podczas tworzenia sieci wirtualnej upewnij się, że określone przestrzenie adresowe nie nakładają się na żadne inne przestrzenie adresowe w obrębie sieci lokalnej.

Uwaga

Aby ta sieć wirtualna nawiązywała połączenie z lokalizacją lokalną, musisz zapewnić koordynację z administratorem sieci lokalnej w celu wyznaczenia zakresu adresów IP, którego będzie można używać w szczególności dla tej sieci wirtualnej. Jeśli zduplikowany zakres adresów istnieje po obu stronach połączenia sieci VPN, ruch nie kieruje tak, jak można się spodziewać. Ponadto jeśli chcesz połączyć tę sieć wirtualną z inną siecią wirtualną, przestrzeń adresowa nie może pokrywać się z inną siecią wirtualną. Dlatego należy odpowiednio zaplanować konfigurację sieci.

Informacje o podsieci bramy

Brama sieci wirtualnej używa specyficznej podsieci nazywanej podsiecią bramy. Podsieć bramy jest częścią zakresu adresów IP sieci wirtualnej, który jest wybierany podczas konfigurowania sieci wirtualnej. Zawiera ona adresy IP używane przez zasoby i usługi bramy sieci wirtualnej. Aby platforma Azure wdrożyła zasoby bramy, podsieć musi mieć nazwę „GatewaySubnet”. Nie można określić innej podsieci w celu wdrożenia w niej zasobów bramy. Jeśli nie będziesz mieć podsieci o nazwie „GatewaySubnet”, tworzenie bramy sieci VPN nie powiedzie się.

Podczas tworzenia podsieci bramy należy określić liczbę zawartych w niej adresów IP. Liczba potrzebnych adresów IP zależy od konfiguracji bramy sieci VPN, którą chce się utworzyć. Niektóre konfiguracje wymagają większej liczby adresów IP niż inne. Zalecamy utworzenie podsieci bramy korzystającej z maski /27 lub /28.

Jeśli zobaczysz błąd z informacją o tym, że przestrzeń adresowa nakłada się z podsiecią lub że podsieć nie zawiera się w przestrzeni adresowej sieci wirtualnej, sprawdź zakres adresów sieci wirtualnej. Możliwe, że w zakresie adresów utworzonym dla sieci wirtualnej nie masz wystarczającej liczby adresów IP. Na przykład jeśli podsieć domyślna obejmuje cały zakres adresów, nie ma już adresów IP do utworzenia dodatkowych podsieci. Możesz albo dostosować swoje podsieci w obrębie istniejącej przestrzeni adresowej w celu zwolnienia adresów IP, albo określić dodatkowy zakres adresów i w nim utworzyć podsieć bramy.

Ważne

Podczas pracy z podsieciami bramy należy unikać kojarzenia sieciowej grupy zabezpieczeń z podsiecią bramy. Skojarzenie sieciowej grupy zabezpieczeń z tą podsiecią może spowodować, że brama sieci wirtualnej (vpn i bramy usługi ExpressRoute) przestanie działać zgodnie z oczekiwaniami. Aby uzyskać więcej informacji na temat sieciowych grup zabezpieczeń, zobacz Co to jest sieciowa grupa zabezpieczeń?.

Tworzenie sieci wirtualnej i podsieci bramy

Ten przykład tworzy sieć wirtualną i podsieć bramy. Jeśli masz już sieć wirtualną, do której potrzebujesz dodać podsieć bramy, zobacz Aby dodać podsieć bramy do utworzonej wcześniej sieci wirtualnej.

Tworzenie grupy zasobów:

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

Utwórz swoją sieć wirtualną.

  1. Ustaw zmienne.

    $subnet1 = New-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27
    $subnet2 = New-AzVirtualNetworkSubnetConfig -Name 'Frontend' -AddressPrefix 10.1.0.0/24
    
  2. Utwórz sieć wirtualną.

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

Aby dodać podsieć bramy do utworzonej wcześniej sieci wirtualnej

Wykonaj kroki znajdujące się w tej sekcji, jeśli masz już sieć wirtualną, ale konieczne jest dodanie podsieci bramy.

  1. Ustaw zmienne.

    $vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1
    
  2. Utwórz podsieć bramy.

    Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet
    
  3. Ustaw konfigurację.

    Set-AzVirtualNetwork -VirtualNetwork $vnet
    

2. Tworzenie bramy sieci lokalnej

Brama sieci lokalnej (LNG) zwykle odwołuje się do lokalizacji lokalnej. Nie jest to samo co brama sieci wirtualnej. Nadaj lokacji nazwę, za pomocą której platforma Azure może odwołać się do niej, a następnie określ adres IP lokalnego urządzenia sieci VPN, z którym będzie tworzone połączenie. Określ również prefiksy adresów IP, które będą kierowane za pośrednictwem bramy sieci VPN do urządzenia sieci VPN. Określone prefiksy adresów są prefiksami znajdującymi się w Twojej sieci lokalnej. W przypadku zmian w sieci lokalnej prefiksy można łatwo zaktualizować.

Wybierz jeden z poniższych przykładów. Wartości używane w przykładach to:

  • GatewayIPAddress to adres IP lokalnego urządzenia sieci VPN.
  • AddressPrefix oznacza lokalną przestrzeń adresową.

Przykład prefiksu pojedynczego adresu

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

Przykład prefiksu wielu adresów

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. Żądanie publicznego adresu IP

Brama sieci VPN musi mieć publiczny adres IP. Najpierw żąda się zasobu adresu IP, a następnie odwołuje do niego podczas tworzenia bramy sieci wirtualnej. Adres IP jest dynamicznie przypisywany do zasobu podczas tworzenia bramy sieci VPN. Jedyną zmianą publicznego adresu IP jest usunięcie i ponowne utworzenie bramy. Nie zmienia się on w przypadku zmiany rozmiaru, zresetowania ani przeprowadzania innych wewnętrznych czynności konserwacyjnych bądź uaktualnień bramy sieci VPN.

Zażądaj publicznego adresu IP bramy sieci VPN sieci wirtualnej.

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

4. Tworzenie konfiguracji adresowania IP bramy

Konfiguracja bramy definiuje podsieć (podsieć GatewaySubnet) i publiczny adres IP do użycia. Poniższy przykład umożliwia utworzenie własnej konfiguracji bramy:

$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. Tworzenie bramy sieci VPN

Utwórz bramę sieci VPN sieci wirtualnej. Tworzenie bramy często może trwać 45 minut lub dłużej, w zależności od wybranej jednostki SKU bramy. W przykładzie są używane następujące wartości:

  • Parametr -GatewayType dla konfiguracji lokacja-lokacja to Vpn. Typ bramy jest zawsze specyficzny dla wdrażanych konfiguracji. Na przykład inne konfiguracje bramy mogą wymagać parametru -GatewayType ExpressRoute.
  • Dla pozycji -VpnType określającej typ sieci VPN można wybrać opcję RouteBased (oparta na trasach; w dokumentacji używa się czasem określenia „brama dynamiczna”) lub PolicyBased (oparta na zasadach; w dokumentacji używa się czasem określenia „brama statyczna”). Więcej informacji o typach bram sieci VPN można znaleźć w artykule VPN Gateway — informacje.
  • Wybierz jednostkę SKU bramy, która ma być używana. Dla niektórych jednostek SKU istnieją ograniczenia konfiguracji. Aby uzyskać więcej informacji, zobacz Gateway SKUs (Jednostki SKU bramy). Jeśli podczas tworzenia bramy sieci VPN wystąpi błąd dotyczący opcji -GatewaySku, sprawdź, czy zainstalowano najnowszą wersję poleceń cmdlet programu PowerShell.
New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location 'East US' -IpConfigurations $gwipconfig -GatewayType Vpn `
-VpnType RouteBased -GatewaySku VpnGw2

6. Konfigurowanie urządzenia sieci VPN

Połączenia typu lokacja-lokacja z siecią lokalną wymagają urządzenia sieci VPN. W tym kroku konfigurowane jest urządzenie sieci VPN. Podczas konfigurowania urządzenia sieci VPN potrzebne są następujące elementy:

  • Klucz wspólny. Jest to ten sam klucz współużytkowany określony podczas tworzenia połączenia sieci VPN typu lokacja-lokacja. W naszych przykładach używamy podstawowego klucza współużytkowanego. Zalecamy, aby do użycia wygenerować bardziej złożony klucz.

  • Publiczny adres IP bramy sieci wirtualnej. Publiczny adres IP można wyświetlić za pomocą witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia. Aby znaleźć publiczny adres IP bramy sieci wirtualnej przy użyciu programu PowerShell, użyj poniższego przykładu. W tym przykładzie VNet1GWPIP jest nazwą zasobu publicznego adresu IP utworzonego we wcześniejszym kroku.

    Get-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1
    

Aby pobrać skrypty konfiguracji urządzenia sieci VPN:

W zależności od używanego urządzenia sieci VPN, może być możliwe pobranie skryptu konfiguracji urządzenia sieci VPN. Aby uzyskać więcej informacji, zobacz Pobieranie skryptów konfiguracji urządzenia sieci VPN.

Zobacz poniższe linki, aby uzyskać dodatkowe informacje o konfiguracji:

7. Tworzenie połączenia sieci VPN

Następnie utwórz połączenie sieci VPN typu lokacja-lokacja między bramą sieci wirtualnej a urządzeniem sieci VPN. Przedstawione na nich wartości należy zastąpić własnymi. Klucz wspólny musi odpowiadać wartości użytej podczas konfiguracji urządzenia sieci VPN. Zwróć uwagę, że parametr "-Połączenie ionType" dla połączenia lokacja-lokacja to IPsec.

  1. Ustaw zmienne.

    $gateway1 = Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1
    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Utwórz połączenie.

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

Po chwili zostanie nawiązane połączenie.

8. Sprawdź połączenie sieci VPN

Istnieje kilka różnych sposobów sprawdzenia połączenia sieci VPN.

Możesz sprawdzić, czy połączenie powiodło się, używając polecenia cmdlet "Get-AzVirtualNetworkGateway Połączenie ion" z poleceniem cmdlet "-Debug" lub bez polecenia "-Debug".

  1. Można skorzystać z następującego przykładu użycia polecenia cmdlet, dopasowując wartości do własnych potrzeb. Po wyświetleniu monitu wybierz „A”, aby uruchomić wszystko. W podanym przykładzie opcja „-Name” odnosi się do nazwy połączenia, które ma zostać przetestowane.

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. Po zakończeniu działania polecenia cmdlet sprawdź wartości. W poniższym przykładzie stan połączenia jest wyświetlany jako „Połączone” i można zobaczyć bajty przychodzące i wychodzące.

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

Nawiązywanie połączenia z maszyną wirtualną

Możesz nawiązać połączenie z maszyną wirtualną wdrożona w sieci wirtualnej, tworząc Połączenie pulpitu zdalnego z maszyną wirtualną. Najlepszym sposobem na zweryfikowanie, czy można połączyć się z maszyną wirtualną, jest połączenie się z nią za pomocą jej prywatnego adresu IP, a nie nazwy komputera. W ten sposób można przetestować możliwość połączenia się, a nie poprawność skonfigurowania rozpoznawania nazw.

  1. Zlokalizuj prywatny adres IP. Prywatny adres IP maszyny wirtualnej można znaleźć, przeglądając właściwości maszyny wirtualnej w witrynie Azure Portal lub przy użyciu programu PowerShell.

    • Azure Portal: znajdź maszynę wirtualną w witrynie Azure Portal. Wyświetl właściwości maszyny wirtualnej. Zostanie wyświetlony prywatny adres IP.

    • PowerShell: użyj przykładu, aby wyświetlić listę maszyn wirtualnych i prywatnych adresów IP z grup zasobów. Przed użyciem tego przykładu nie trzeba go modyfikować.

      $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. Sprawdź, czy masz połączenie z siecią wirtualną.

  3. Otwórz Połączenie pulpitu zdalnego, wprowadzając Połączenie RDP lub Pulpit zdalny w polu wyszukiwania na pasku zadań. Następnie wybierz Połączenie pulpitu zdalnego. Możesz również otworzyć Połączenie pulpitu mstsc zdalnego przy użyciu polecenia w programie PowerShell.

  4. W programie Podłączanie pulpitu zdalnego wprowadź prywatny adres IP maszyny wirtualnej. Możesz wybrać pozycję Pokaż opcje , aby dostosować inne ustawienia, a następnie nawiązać połączenie.

Jeśli masz problemy z nawiązywaniem połączenia z maszyną wirtualną za pośrednictwem połączenia sieci VPN, sprawdź następujące kwestie:

  • Sprawdź, czy połączenie sieci VPN zostało pomyślnie nawiązane.
  • Sprawdź, czy łączysz się z prywatnym adresem IP maszyny wirtualnej.
  • Jeśli możesz nawiązać połączenie z maszyną wirtualną przy użyciu prywatnego adresu IP, ale nie nazwy komputera, sprawdź, czy system DNS został prawidłowo skonfigurowany. Aby uzyskać więcej informacji na temat działania rozpoznawania nazw dla maszyn wirtualnych, zobacz Rozpoznawanie nazw dla maszyn wirtualnych.

Aby uzyskać więcej informacji na temat połączeń pulpitu zdalnego, zobacz Rozwiązywanie problemów z połączeniami pulpitu zdalnego z maszyną wirtualną.

Aby zmodyfikować prefiksy adresów IP bramy sieci lokalnej

Jeśli prefiksy adresów IP, które mają być kierowane do lokalizacji lokalnej, ulegną zmianie, można zmodyfikować bramę sieci lokalnej. W przypadku korzystania z tych przykładów zmodyfikuj wartości, aby były zgodne ze środowiskiem.

Aby dodać dodatkowe prefiksy adresów:

  1. Ustaw wartość zmiennej dla klasy LocalNetworkGateway.

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Zmodyfikuj prefiksy. Wartości, które określisz, zastępują poprzednie wartości.

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

Aby usunąć prefiksy adresów:

Opuść prefiksy, które nie są już potrzebne. W tym przykładzie nie potrzebujemy już prefiksu 10.101.2.0/24 (z poprzedniego przykładu), dlatego zaktualizujemy bramę sieci lokalnej i wykluczymy ten prefiks.

  1. Ustaw wartość zmiennej dla klasy LocalNetworkGateway.

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Ustaw bramę ze zaktualizowanymi prefiksami.

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

Aby zmodyfikować adres IP bramy dla bramy sieci lokalnej

W przypadku zmiany publicznego adresu IP urządzenia sieci VPN, z którym chcesz nawiązać połączenie, musisz zmodyfikować bramę sieci lokalnej w celu odzwierciedlenia tej zmiany. Podczas modyfikowania tej wartości możesz również zmodyfikować prefiksy adresów. Użyj istniejącej nazwy bramy sieci lokalnej w celu zastąpienia bieżących ustawień. Jeśli użyjesz innej nazwy, utworzysz nową bramę sieci lokalnej, a nie zastąpisz istniejącej.

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

Aby usunąć połączenie bramy

Jeśli nie znasz nazwy połączenia, możesz go znaleźć przy użyciu polecenia cmdlet "Get-AzVirtualNetworkGateway Połączenie ion".

Remove-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 `
-ResourceGroupName TestRG1

Następne kroki

  • Po zakończeniu procesu nawiązywania połączenia można dodać do sieci wirtualnych maszyny wirtualne. Aby uzyskać więcej informacji, zobacz Virtual Machines (Maszyny wirtualne).
  • Informacje na temat protokołu BGP można znaleźć w artykułach BGP Overview (Omówienie protokołu BGP) i How to configure BGP (Konfigurowanie protokołu BGP).
  • Aby uzyskać informacje na temat tworzenia połączenia sieci VPN typu lokacja-lokacja przy użyciu szablonu usługi Azure Resource Manager, zobacz Tworzenie Połączenie sieci VPN typu lokacja-lokacja.
  • Aby uzyskać informacje dotyczące tworzenia połączenia sieci VPN typu sieć wirtualna-sieć wirtualna za pomocą szablonu usługi Resource Manager, zobacz Deploy HBase geo replication (Wdrażanie replikacji geograficznej bazy danych HBase).