Łączenie sieci wirtualnych z różnych modeli wdrażania za pomocą programu PowerShell

Ten artykuł ułatwia łączenie klasycznych sieci wirtualnych z sieciami wirtualnymi usługi Resource Manager w celu umożliwienia zasobom znajdującym się w osobnych modelach wdrażania komunikowania się ze sobą. Kroki opisane w tym artykule korzystają z programu PowerShell.

Ten artykuł jest przeznaczony dla klientów, którzy mają już sieć wirtualną utworzoną przy użyciu klasycznego (starszego) modelu wdrażania, a teraz chcą połączyć klasyczną sieć wirtualną z inną siecią wirtualną utworzoną przy użyciu najnowszego modelu wdrażania. Jeśli nie masz jeszcze starszej sieci wirtualnej, zamiast tego użyj artykułu Tworzenie połączenia między sieciami wirtualnymi.

Architektura

Połączenie klasycznej sieci wirtualnej z siecią wirtualną usługi Resource Manager jest podobna do łączenia sieci wirtualnej z lokalizacją lokacji lokalnej. Oba typy połączeń wykorzystują bramę sieci VPN, aby zapewnić bezpieczny tunel z użyciem protokołu IPsec/IKE. Możesz utworzyć połączenie między sieciami wirtualnymi, które znajdują się w różnych subskrypcjach i w różnych regionach. Możesz również połączyć sieci wirtualne, które mają już połączenia z sieciami lokalnymi, o ile brama jest dynamiczna lub oparta na trasach. Aby uzyskać więcej informacji na temat połączeń między sieciami wirtualnymi, zobacz Często zadawane pytania dotyczące połączenia między sieciami wirtualnymi.

W przypadku tej konfiguracji należy utworzyć połączenie bramy sieci VPN za pośrednictwem tunelu sieci VPN IPsec/IKE między sieciami wirtualnymi. Upewnij się, że żaden z zakresów sieci wirtualnych nie nakłada się na siebie ani z dowolną siecią lokalną, z którą się łączą.

W poniższej tabeli przedstawiono przykład sposobu definiowania przykładowych sieci wirtualnych i lokacji lokalnych:

Virtual Network Przestrzeń adresowa Region (Region) Połączenie do lokacji sieci lokalnej
Klasyczna sieć wirtualna (10.1.0.0/16) Zachodnie stany USA RMVNetSite (192.168.0.0/16)
Sieć RMVNet (192.168.0.0/16) Wschodnie stany USA ClassicVNetSite (10.1.0.0/16)

Wymagania wstępne

W poniższych krokach przedstawiono ustawienia niezbędne do skonfigurowania bramy dynamicznej lub opartej na trasach dla każdej sieci wirtualnej i utworzenia połączenia sieci VPN między bramami. Ta konfiguracja nie obsługuje bram statycznych ani opartych na zasadach.

W tych krokach założono, że masz już utworzoną starszą klasyczną sieć wirtualną i sieć wirtualną usługi Resource Manager.

  • Sprawdź, czy zakresy adresów dla sieci wirtualnych nie nakładają się na siebie nawzajem lub nakładają się na zakresy innych połączeń, z którymi mogą być połączone bramy.

  • W tym artykule używamy programu PowerShell. Zainstaluj najnowsze polecenia cmdlet programu PowerShell na komputerze zarówno dla usługi Resource Manager, jak i zarządzania usługami.

    Chociaż istnieje możliwość wykonania kilku poleceń programu PowerShell przy użyciu środowiska usługi Azure Cloud Shell, należy zainstalować obie wersje poleceń cmdlet, aby prawidłowo utworzyć połączenia.

    Aby uzyskać więcej informacji, zobacz Instalowanie i konfigurowanie programu Azure PowerShell.

Przykładowe ustawienia

Możesz użyć tych wartości, aby lepiej zrozumieć przykłady.

Klasyczna sieć wirtualna

Nazwa sieci wirtualnej = ClassicVNet
Grupa zasobów = klasyczna lokalizacjarg = Zachodnie stany USA
Przestrzenie adresowe sieci wirtualnej = 10.1.0.0/16
Podsieć1 = 10.1.0.0/24
GatewaySubnet = 10.1.255.0/27
Nazwa sieci lokalnej = RMVNetSite
GatewayType = DynamicRouting

Sieć wirtualna usługi Resource Manager

Nazwa sieci wirtualnej = RMVNet
Grupa zasobów = RMRG
Przestrzenie adresów IP sieci wirtualnej = 192.168.0.0/16
Podsieć1 = 192.168.1.0/24
GatewaySubnet = 192.168.255.0/27
Lokalizacja = Wschodnie stany USA
Nazwa publicznego adresu IP bramy = rmgwpip
Brama sieci lokalnej = ClassicVNetSite
Nazwa bramy sieci wirtualnej = RMGateway
Konfiguracja adresowania IP bramy = gwipconfig

Konfigurowanie klasycznej sieci wirtualnej

W tej sekcji skonfigurujesz już istniejącą klasyczną sieć wirtualną. Jeśli sieć wirtualna ma już bramę, sprawdź, czy brama jest oparta na trasach, a następnie przejdź do następnej sekcji. Jeśli brama nie jest oparta na trasach, usuń bramę przed przejściem do przodu, wykonując następne kroki. Będziesz mieć możliwość późniejszego utworzenia nowej bramy.

1. Pobierz plik konfiguracji sieci

  1. Zaloguj się do konta platformy Azure w konsoli programu PowerShell z podwyższonym poziomem uprawnień. Następujące polecenie cmdlet wyświetli monit o podanie poświadczeń logowania dla konta platformy Azure. Po zalogowaniu pobiera ustawienia konta, aby były dostępne dla programu Azure PowerShell. Klasyczne polecenia cmdlet programu Azure PowerShell do zarządzania usługami (SM) są używane w tej sekcji.

    Add-AzureAccount
    

    Uzyskaj subskrypcję platformy Azure.

    Get-AzureSubscription
    

    Jeśli masz więcej niż jedną subskrypcję, wybierz tę, której chcesz użyć.

    Select-AzureSubscription -SubscriptionName "Name of subscription"
    
  2. Utwórz katalog na komputerze. W tym przykładzie utworzyliśmy usługę AzureNet.

  3. Wyeksportuj plik konfiguracji sieci platformy Azure, uruchamiając następujące polecenie. W razie potrzeby możesz zmienić lokalizację pliku, aby wyeksportować go do innej lokalizacji.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  4. Otwórz pobrany plik .xml, aby go edytować. Przykładowy plik konfiguracji sieci można znaleźć w temacie Schemat konfiguracji sieci.

  5. Zanotuj VirtualNetworkSite name= wartość. Jeśli utworzono klasyczną sieć wirtualną przy użyciu portalu, nazwa jest zgodna z formatem podobnym do "Group ClassicRG ClassicVNet", a nie "ClassicVNet" w portalu.

2. Sprawdź podsieć bramy

W elemecie VirtualNetworkSites dodaj podsieć bramy do sieci wirtualnej, jeśli jeszcze nie została utworzona. Podsieć bramy musi mieć nazwę "GatewaySubnet" lub platforma Azure nie może rozpoznać jej i użyć jej jako podsieci bramy.

Ważne

Sieciowe grupy zabezpieczeń w podsieci bramy nie są obsługiwane. 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ń?.

Przykład:

<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. Dodaj lokację sieci lokalnej

Dodana lokacja sieci lokalnej reprezentuje sieć wirtualną RM, z którą chcesz nawiązać połączenie. Dodaj element LocalNetworkSites do pliku, jeśli jeszcze nie istnieje. Na tym etapie konfiguracji adres VPNGatewayAddress może być dowolnym prawidłowym publicznym adresem IP, ponieważ nie utworzono jeszcze bramy dla sieci wirtualnej usługi Resource Manager. Po utworzeniu bramy usługi RM zastąpisz ten zastępczy adres IP poprawnym publicznym adresem IP przypisanym do bramy usługi RM.

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

4. Skojarz sieć wirtualną z lokacją sieci lokalnej

W tej sekcji określimy lokalną lokację sieciową, z którą chcesz połączyć sieć wirtualną. W takim przypadku jest to sieć wirtualna usługi Resource Manager, do której odwołujesz się wcześniej. Upewnij się, że nazwy są zgodne. Ten krok nie tworzy bramy. Określa sieć lokalną, z którą brama będzie się łączyć.

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

5. Zapisz plik i przekaż

Zapisz plik, a następnie zaimportuj go na platformę Azure, uruchamiając następujące polecenie. Upewnij się, że zmieniono ścieżkę pliku zgodnie z potrzebami dla środowiska.

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

Zobaczysz podobny wynik pokazujący, że importowanie zakończyło się pomyślnie.

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

6. Tworzenie bramy

Przed uruchomieniem tego przykładu zapoznaj się z plikiem konfiguracji sieci pobranym pod kątem dokładnych nazw, których oczekuje platforma Azure. Plik konfiguracji sieci zawiera wartości klasycznych sieci wirtualnych. Po utworzeniu klasycznej sieci wirtualnej przy użyciu portalu nazwa sieci wirtualnej różni się w pliku konfiguracji sieci. Jeśli na przykład użyto witryny Azure Portal do utworzenia klasycznej sieci wirtualnej o nazwie "Klasyczna sieć wirtualna" i utworzono ją w grupie zasobów o nazwie "ClassicRG", nazwa zawarta w pliku konfiguracji sieciowej jest konwertowana na "Klasyczna sieć wirtualna grupy klasycznej grupy". Zawsze używaj nazwy zawartej w pliku konfiguracji sieci podczas pracy z programem PowerShell.Podczas określania nazwy sieci wirtualnej zawierającej spacje użyj cudzysłowów wokół wartości.

Użyj następującego przykładu, aby utworzyć bramę routingu dynamicznego:

New-AzureVNetGateway -VNetName ClassicVNet -GatewayType DynamicRouting

Stan bramy można sprawdzić przy użyciu polecenia cmdlet Get-AzureVNetGateway .

Konfigurowanie bramy sieci wirtualnej programu RM

W wymaganiach wstępnych założono, że utworzono już sieć wirtualną RM. W tym kroku utworzysz bramę sieci VPN dla sieci wirtualnej RM. Nie uruchamiaj tych kroków dopiero po pobraniu publicznego adresu IP dla bramy klasycznej sieci wirtualnej.

  1. Zaloguj się do konta platformy Azure w konsoli programu PowerShell. Następujące polecenie cmdlet wyświetli monit o podanie poświadczeń logowania dla konta platformy Azure. Po zalogowaniu ustawienia konta zostaną pobrane, aby były dostępne dla programu Azure PowerShell. Opcjonalnie możesz użyć funkcji "Wypróbuj", aby uruchomić usługę Azure Cloud Shell w przeglądarce.

    Jeśli używasz usługi Azure Cloud Shell, pomiń następujące polecenie cmdlet:

    Connect-AzAccount
    

    Aby sprawdzić, czy używasz odpowiedniej subskrypcji, uruchom następujące polecenie cmdlet:

    Get-AzSubscription
    

    Jeśli masz więcej niż jedną subskrypcję, określ subskrypcję, której chcesz użyć.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Utwórz bramę sieci lokalnej. W sieci wirtualnej brama sieci lokalnej zazwyczaj odwołuje się do lokalizacji lokalnej. W takim przypadku brama sieci lokalnej odwołuje się do klasycznej sieci wirtualnej. Nadaj mu nazwę, za pomocą której platforma Azure może się do niego odwoływać, a także określ prefiks przestrzeni adresowej. Platforma Azure używa prefiksu adresu IP w celu określenia, który ruch danych należy skierować do lokalizacji lokalnej. Jeśli musisz później dostosować informacje w tym miejscu, przed utworzeniem bramy możesz zmodyfikować wartości i ponownie uruchomić przykład.

    -Nazwa to nazwa, którą chcesz przypisać, aby odwoływać się do bramy sieci lokalnej.
    -AddressPrefix to przestrzeń adresowa klasycznej sieci wirtualnej.
    -GatewayIpAddress to publiczny adres IP klasycznej bramy sieci wirtualnej. Pamiętaj, aby zmienić następujący przykładowy tekst "n.n.n.n." w celu odzwierciedlenia poprawnego adresu IP.

    New-AzLocalNetworkGateway -Name ClassicVNetSite `
    -Location "West US" -AddressPrefix "10.1.0.0/16" `
    -GatewayIpAddress "n.n.n.n" -ResourceGroupName RMRG
    
  3. Zażądaj przydzielenie publicznego adresu IP do bramy sieci wirtualnej dla sieci wirtualnej usługi Resource Manager. Nie można określić adresu IP, którego chcesz użyć. Adres IP jest dynamicznie przydzielany do bramy sieci wirtualnej. Nie oznacza to jednak zmian adresu IP. Jedyną zmianą adresu IP bramy sieci wirtualnej jest usunięcie i ponowne utworzenie bramy. Nie zmienia się ona między zmianą rozmiaru, resetowaniem ani inną wewnętrzną konserwacją/uaktualnieniami bramy.

    W tym kroku ustawimy również zmienną, która jest używana w późniejszym kroku.

    $ipaddress = New-AzPublicIpAddress -Name rmgwpip `
    -ResourceGroupName RMRG -Location 'EastUS' `
    -AllocationMethod Dynamic
    
  4. Sprawdź, czy sieć wirtualna ma podsieć bramy. Jeśli żadna podsieć bramy nie istnieje, dodaj jedną. Upewnij się, że podsieć bramy ma nazwę 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. Pobierz podsieć używaną dla bramy, uruchamiając następujące polecenie. W tym kroku ustawiliśmy również zmienną, która ma być używana w następnym kroku.

    -Name to nazwa sieci wirtualnej usługi Resource Manager.
    -ResourceGroupName to grupa zasobów skojarzona z siecią wirtualną. Podsieć bramy musi już istnieć dla tej sieci wirtualnej i musi mieć nazwę GatewaySubnet , aby działała prawidłowo.

    $subnet = Get-AzVirtualNetworkSubnetConfig -Name GatewaySubnet `
    -VirtualNetwork (Get-AzVirtualNetwork -Name RMVNet -ResourceGroupName RMRG)
    
  6. Utwórz konfigurację adresowania IP bramy. W ramach konfiguracji bramy zostaje zdefiniowana podsieć i publiczny adres IP do użycia. Poniższy przykład umożliwia utworzenie konfiguracji bramy.

    W tym kroku parametry -SubnetId i -PublicIpAddressId muszą zostać przekazane odpowiednio z podsieci i obiektów adresów IP. Nie można użyć prostego ciągu. Te zmienne są ustawiane w kroku w celu żądania publicznego adresu IP i kroku pobierania podsieci.

    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig `
    -Name gwipconfig -SubnetId $subnet.id `
    -PublicIpAddressId $ipaddress.id
    
  7. Utwórz bramę sieci wirtualnej usługi Resource Manager, uruchamiając następujące polecenie. Element -VpnType musi mieć wartość RouteBased. Utworzenie bramy może potrwać 45 minut lub więcej.

    New-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG `
    -Location "EastUS" -GatewaySKU Standard -GatewayType Vpn `
    -IpConfigurations $gwipconfig `
    -EnableBgp $false -VpnType RouteBased
    
  8. Skopiuj publiczny adres IP po utworzeniu bramy sieci VPN. Jest on używany podczas konfigurowania ustawień sieci lokalnej dla klasycznej sieci wirtualnej. Aby pobrać publiczny adres IP, możesz użyć następującego polecenia cmdlet. Publiczny adres IP jest wymieniony w zwracaniu jako Adres IP.

    Get-AzPublicIpAddress -Name rmgwpip -ResourceGroupName RMRG
    

Modyfikowanie klasycznych ustawień lokacji lokalnej sieci wirtualnej

W tej sekcji pracujesz z klasyczną siecią wirtualną. Zastąpisz zastępczy adres IP użyty podczas określania ustawień lokacji lokalnej, które będą używane do nawiązywania połączenia z bramą sieci wirtualnej usługi Resource Manager. Ponieważ pracujesz z klasyczną siecią wirtualną, użyj programu PowerShell zainstalowanego lokalnie na komputerze, a nie tryIt usługi Azure Cloud Shell.

  1. Wyeksportuj plik konfiguracji sieci.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  2. Za pomocą edytora tekstów zmodyfikuj wartość elementu VPNGatewayAddress. Zastąp zastępczy adres IP publicznym adresem IP bramy usługi Resource Manager, a następnie zapisz zmiany.

    <VPNGatewayAddress>13.68.210.16</VPNGatewayAddress>
    
  3. Zaimportuj zmodyfikowany plik konfiguracji sieci na platformę Azure.

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

Tworzenie połączenia między bramami

Utworzenie połączenia między bramami wymaga programu PowerShell. Może być konieczne dodanie konta platformy Azure w celu użycia klasycznej wersji poleceń cmdlet programu PowerShell. W tym celu użyj polecenia Add-AzureAccount.

  1. W konsoli programu PowerShell ustaw klucz wspólny. Przed uruchomieniem poleceń cmdlet zapoznaj się z plikiem konfiguracji sieci pobranym pod kątem dokładnych nazw, których oczekuje platforma Azure. Podczas określania nazwy sieci wirtualnej zawierającej spacje użyj pojedynczych cudzysłowów wokół wartości.

    W poniższym przykładzie parametr -VNetName jest nazwą klasycznej sieci wirtualnej, a -LocalNetworkSiteName to nazwa określona dla lokacji sieci lokalnej. Sprawdź nazwy obu w pobranym wcześniej pliku konfiguracji sieci.

    - SharedKey to wartość generowana i określana. W tym przykładzie użyliśmy ciągu "abc123", ale można wygenerować i użyć czegoś bardziej złożonego. Ważne jest, aby wartość określona w tym miejscu musi być tą samą wartością, którą określisz w następnym kroku podczas tworzenia połączenia. Powrót powinien zawierać stan : Powodzenie.

    Set-AzureVNetGatewayKey -VNetName ClassicVNet `
    -LocalNetworkSiteName RMVNetSite -SharedKey abc123
    
  2. Utwórz połączenie sieci VPN, uruchamiając następujące polecenia:

    Ustaw zmienne.

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

    Utwórz połączenie. Zwróć uwagę, że parametr -Połączenie ionType to IPsec, a nie Vnet2Vnet.

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

Weryfikowanie połączeń

Klasyczna sieć wirtualna z siecią wirtualną RM

Możesz sprawdzić, czy połączenie powiodło się, używając polecenia cmdlet "Get-AzureVNet Połączenie ion". To polecenie cmdlet musi być uruchamiane lokalnie na komputerze.

  1. Można skorzystać z następującego przykładu użycia polecenia cmdlet, dopasowując wartości do własnych potrzeb. Nazwa sieci wirtualnej musi być w cudzysłowie, jeśli zawiera spacje. Użyj nazwy sieci wirtualnej, jak znaleziono w pliku konfiguracji sieci.

    Get-AzureVNetConnection "ClassicVNet"
    
  2. Po zakończeniu działania polecenia cmdlet sprawdź wartości. W poniższym przykładzie stan Połączenie ivity jest wyświetlany jako "Połączenie ed" i można zobaczyć bajty ruchu przychodzącego i wychodzącego.

    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           :
    

Sieć wirtualna programu RM do klasycznej sieci wirtualnej

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łączenie" i można zobaczyć bajty ruchu przychodzącego i wychodzącego.

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

Następne kroki

Aby uzyskać więcej informacji na temat połączeń między sieciami wirtualnymi, zobacz Brama sieci VPN — często zadawane pytania.