Połączenie sieci wirtualnych z komunikacją równorzędną sieci wirtualnych przy użyciu programu PowerShell

Sieci wirtualne możesz łączyć ze sobą za pomocą komunikacji równorzędnej sieci wirtualnych. Po połączeniu sieci wirtualnych za pomocą komunikacji równorzędnej zasoby w obu sieciach wirtualnych mogą komunikować się ze sobą przy takim samym opóźnieniu i z taką samą przepustowością, jakby zasoby były w tej samej sieci wirtualnej.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Tworzenie dwóch sieci wirtualnych

  • Łączenie dwóch sieci wirtualnych za pomocą komunikacji równorzędnej sieci wirtualnych

  • Wdrażanie maszyny wirtualnej w każdej sieci wirtualnej

  • Nawiązywanie komunikacji między maszynami wirtualnymi

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Azure Cloud Shell

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.

Aby uruchomić środowisko Azure Cloud Shell:

Opcja Przykład/link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. Zrzut ekranu przedstawiający przykład narzędzia Try It dla usługi Azure Cloud Shell.
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Przycisk uruchamiania usługi Azure Cloud Shell.
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Zrzut ekranu przedstawiający przycisk usługi Cloud Shell w witrynie Azure Portal

Aby użyć usługi Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.

  3. Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając klawisze Ctrl+Shift V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift++V w systemie macOS.

  4. Wybierz klawisz Enter, aby uruchomić kod lub polecenie.

Jeśli zdecydujesz się zainstalować program PowerShell i korzystać z niego lokalnie, ten artykuł wymaga modułu Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az, aby dowiedzieć się, jaka wersja jest zainstalowana. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.

Tworzenie sieci wirtualnych

Przed utworzeniem sieci wirtualnej należy utworzyć grupę zasobów dla sieci wirtualnej i wszystkie inne zasoby utworzone w tym artykule. Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup. Poniższy przykład tworzy grupę zasobów o nazwie test-rg w lokalizacji eastus .

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

Utwórz sieć wirtualną przy użyciu polecenia New-AzVirtualNetwork. Poniższy przykład tworzy sieć wirtualną o nazwie vnet-1 z prefiksem adresu 10.0.0.0/16.

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

Utwórz konfigurację podsieci za pomocą polecenia Add-AzVirtualNetworkSubnetConfig. Poniższy przykład tworzy konfigurację podsieci z prefiksem adresu 10.0.0.0/24 :

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

Zapisz konfigurację podsieci w sieci wirtualnej za pomocą polecenia Set-AzVirtualNetwork, która tworzy podsieć:

$virtualNetwork1 | Set-AzVirtualNetwork

Utwórz sieć wirtualną z prefiksem adresu 10.1.0.0/16 i jedną podsiecią:

# 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

Tworzenie komunikacji równorzędnej sieci wirtualnych

Utwórz komunikację równorzędną za pomocą polecenia Add-AzVirtualNetworkPeering. W poniższym przykładzie komunikacja równorzędna między sieciami wirtualnymi vnet-1 i vnet-2.

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

W danych wyjściowych zwróconych po wykonaniu poprzedniego polecenia zobaczysz, że element PeeringState jest inicjowany. Komunikacja równorzędna pozostaje w stanie Zainicjowane do momentu utworzenia komunikacji równorzędnej z sieci vnet-2 do sieci wirtualnej-1. Utwórz komunikację równorzędną z sieci wirtualnej vnet-2 do sieci vnet-1.

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

W danych wyjściowych zwróconych po wykonaniu poprzedniego polecenia zobaczysz, że element PeeringState jest Połączenie. Platforma Azure zmieniła również stan komunikacji równorzędnej sieci wirtualnej vnet-1-to-vnet-2 na Połączenie. Upewnij się, że stan komunikacji równorzędnej dla komunikacji równorzędnej vnet-1-vnet-2 został zmieniony na Połączenie zpoleceniem Get-AzVirtualNetworkPeering.

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

Zasoby w jednej sieci wirtualnej nie mogą komunikować się z zasobami w drugiej sieci wirtualnej, dopóki element PeeringState dla komunikacji równorzędnej w obu sieciach wirtualnych nie zostanie Połączenie.

Tworzenie maszyn wirtualnych

Utwórz maszynę wirtualną w każdej sieci wirtualnej, dzięki czemu będzie można komunikować się między nimi w kolejnym kroku.

Tworzenie pierwszej maszyny wirtualnej

Utwórz maszynę wirtualną przy użyciu polecenia New-AzVM. Poniższy przykład tworzy maszynę wirtualną o nazwie vm-1 w sieci wirtualnej vnet-1 . Opcja -AsJob tworzy maszynę wirtualną w tle, aby móc przejść do następnego kroku. Po wyświetleniu monitu wprowadź nazwę użytkownika i hasło dla maszyny wirtualnej.

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

Tworzenie drugiej maszyny wirtualnej

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

W ciągu kilku minut zostanie utworzona maszyna wirtualna. Nie wykonuj dalszych kroków, dopóki platforma Azure nie utworzy maszyny wirtualnej VM-2 i zwróci dane wyjściowe do programu PowerShell.

Uwaga

Platforma Azure udostępnia domyślny adres IP dostępu wychodzącego dla maszyn wirtualnych, które nie są przypisane do publicznego adresu IP lub znajdują się w puli zaplecza wewnętrznego podstawowego modułu równoważenia obciążenia platformy Azure. Domyślny mechanizm adresów IP dostępu wychodzącego zapewnia wychodzący adres IP, który nie jest konfigurowalny.

Domyślny adres IP dostępu wychodzącego jest wyłączony, gdy wystąpi jedno z następujących zdarzeń:

  • Publiczny adres IP jest przypisywany do maszyny wirtualnej.
  • Maszyna wirtualna jest umieszczana w puli zaplecza standardowego modułu równoważenia obciążenia z regułami ruchu wychodzącego lub bez tych reguł.
  • Zasób usługi Azure NAT Gateway jest przypisywany do podsieci maszyny wirtualnej.

Maszyny wirtualne tworzone przy użyciu zestawów skalowania maszyn wirtualnych w trybie elastycznej aranżacji nie mają domyślnego dostępu wychodzącego.

Aby uzyskać więcej informacji na temat połączeń wychodzących na platformie Azure, zobacz Domyślny dostęp wychodzący na platformie Azure i Używanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla połączeń wychodzących.

Nawiązywanie komunikacji między maszynami wirtualnymi

Możesz nawiązać połączenie z publicznym adresem IP maszyny wirtualnej z Internetu. Użyj polecenia Get-AzPublicIpAddress, aby uzyskać publiczny adres IP maszyny wirtualnej. Poniższy przykład zwraca publiczny adres IP maszyny wirtualnej vm-1 :

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

Użyj następującego polecenia, aby utworzyć sesję pulpitu zdalnego z maszyną wirtualną vm-1 z komputera lokalnego. Zastąp ciąg <publicIpAddress> adresem IP zwróconym w poprzednim poleceniu.

mstsc /v:<publicIpAddress>

Zostanie utworzony i otwarty plik Remote Desktop Protocol (rdp). Wprowadź nazwę użytkownika i hasło (może być konieczne wybranie pozycji Więcej opcji, a następnie użyj innego konta, aby określić poświadczenia wprowadzone podczas tworzenia maszyny wirtualnej), a następnie kliknij przycisk OK. Podczas procesu logowania może pojawić się ostrzeżenie o certyfikacie. Kliknij przycisk Tak lub Kontynuuj, aby kontynuować nawiązywanie połączenia.

Na maszynie wirtualnej vm-1 włącz protokół ICMP (Internet Control Message Protocol) za pośrednictwem zapory systemu Windows, aby można było wysłać polecenie ping do tej maszyny wirtualnej z maszyny wirtualnej vm-2 w późniejszym kroku przy użyciu programu PowerShell:

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

Chociaż polecenie ping jest używane do komunikacji między maszynami wirtualnymi w tym artykule, zezwolenie na ICMP za pośrednictwem Zapory systemu Windows dla wdrożeń produkcyjnych nie jest zalecane.

Aby nawiązać połączenie z maszyną wirtualną-2, wprowadź następujące polecenie w wierszu polecenia w maszynie wirtualnej VM-1:

mstsc /v:10.1.0.4

Włączono polecenie ping na maszynie wirtualnej vm-1. Teraz możesz wysłać polecenie ping do maszyny wirtualnej vm-1 według adresu IP z wiersza polecenia na maszynie wirtualnej vm-2.

ping 10.0.0.4

Otrzymasz cztery odpowiedzi. Rozłącz sesje protokołu RDP z maszyną wirtualną vm-1 i vm-2.

Czyszczenie zasobów

Gdy grupa zasobów i wszystkie zawarte w niej zasoby nie będą już potrzebne, użyj polecenia Remove-AzResourcegroup .

Remove-AzResourceGroup -Name test-rg -Force

Następne kroki

W tym artykule przedstawiono sposób łączenia dwóch sieci w tym samym regionie świadczenia usługi Azure za pomocą komunikacji równorzędnej sieci wirtualnych. Możesz też nawiązać komunikację równorzędną między sieciami wirtualnymi w różnych obsługiwanych regionach i w różnych subskrypcjach platformy Azure, a także utworzyć projekty sieci w topologii gwiazdy z komunikacją równorzędną. Aby dowiedzieć się więcej na temat komunikacji równorzędnej sieci wirtualnych, zobacz Virtual network peering overview (Omówienie komunikacji równorzędnej sieci wirtualnych) i Manage virtual network peerings (Zarządzanie komunikacją równorzędną sieci wirtualnych).

Możesz połączyć własny komputer z siecią wirtualną za pośrednictwem sieci VPN i wchodzić w interakcje z zasobami w sieci wirtualnej lub w równorzędnych sieciach wirtualnych. Aby użyć skryptów wielokrotnego użytku w celu wykonania wielu zadań opisanych w artykułach dotyczących sieci wirtualnej, zobacz przykłady skryptów.