Herstellen von Verbindungen zwischen virtuellen Netzwerken durch Peering virtueller Netzwerke mit PowerShell
Sie können durch Peering virtueller Netzwerke Verbindungen zwischen virtuellen Netzwerken herstellen. Sobald ein Peering zwischen virtuellen Netzwerken eingerichtet wurde, können Ressourcen in beiden virtuellen Netzwerken untereinander mit der gleichen Latenz und Bandbreite kommunizieren, als befänden sie sich im selben virtuellen Netzwerk.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
Erstellen zweier virtueller Netzwerke
Herstellen einer Verbindung zwischen zwei virtuellen Netzwerken mit einem Peering virtueller Netzwerke
Bereitstellen eines virtuellen Computers (VM) in jedem virtuellen Netzwerk
Kommunikation zwischen VMs
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
Option | Beispiel/Link |
---|---|
Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. | |
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. | |
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. |
So verwenden Sie Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.
Wenn Sie PowerShell lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens Version 1.0.0 des Azure PowerShell-Moduls verwenden. Führen Sie Get-Module -ListAvailable Az
aus, um die installierte Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount
ausführen, um eine Verbindung mit Azure herzustellen.
Erstellen virtueller Netzwerke
Vor der Erstellung eines virtuellen Netzwerks müssen Sie eine Ressourcengruppe für das virtuelle Netzwerk und alle anderen in diesem Artikel erstellten Ressourcen erstellen. Erstellen Sie mit New-AzResourceGroup eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen test-rg am Standort eastus erstellt.
$resourceGroup = @{
Name = "test-rg"
Location = "EastUS"
}
New-AzResourceGroup @resourceGroup
Erstellen Sie mit New-AzVirtualNetwork ein virtuelles Netzwerk. Im folgenden Beispiel wird ein virtuelles Netzwerk namens vnet-1 mit dem Adresspräfix 10.0.0.0/16 erstellt.
$vnet1 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork1 = New-AzVirtualNetwork @vnet1
Erstellen Sie mit Add-AzVirtualNetworkSubnetConfig eine Subnetzkonfiguration. Das folgende Beispiel erstellt eine Subnetzkonfiguration mit dem Adresspräfix 10.0.0.0/24:
$subConfig = @{
Name = "subnet-1"
AddressPrefix = "10.0.0.0/24"
VirtualNetwork = $virtualNetwork1
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig
Schreiben Sie die Subnetzkonfiguration mit Set-AzVirtualNetwork in das virtuelle Netzwerk. Dabei wird das folgende Subnetz erstellt:
$virtualNetwork1 | Set-AzVirtualNetwork
Erstellen Sie ein virtuelles Netzwerk mit dem Adresspräfix 10.1.0.0/16 und einem Subnetz:
# 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
Einrichten eines Peerings von virtuellen Netzwerken
Richten Sie das Peering mit Add-AzVirtualNetworkPeering ein. Im folgenden Beispiel wird ein Peering zwischen vnet-1 und vnet-2 eingerichtet.
$peerConfig1 = @{
Name = "vnet-1-to-vnet-2"
VirtualNetwork = $virtualNetwork1
RemoteVirtualNetworkId = $virtualNetwork2.Id
}
Add-AzVirtualNetworkPeering @peerConfig1
In der Ausgabe, die nach der Ausführung des vorherigen Befehl zurückgegeben wird, können Sie sehen, dass PeeringState den Wert Initiiert aufweist. Das Peering verbleibt im Zustand Initiiert, bis Sie das Peering von vnet-2 zu vnet-1 erstellen. Erstellen Sie ein Peering von vnet-2 zu vnet-1.
$peerConfig2 = @{
Name = "vnet-2-to-vnet-1"
VirtualNetwork = $virtualNetwork2
RemoteVirtualNetworkId = $virtualNetwork1.Id
}
Add-AzVirtualNetworkPeering @peerConfig2
In der Ausgabe, die nach der Ausführung des vorherigen Befehl zurückgegeben wird, können Sie sehen, dass PeeringState den Wert Verbunden aufweist. Azure hat auch den Peeringstatus des Peerings vnet-1-to-vnet-2 in Verbunden geändert. Überprüfen Sie mit Get-AzVirtualNetworkPeering, ob der Peeringstatus für das Peering vnet-1-to-vnet-2 in Verbunden geändert wurde.
$peeringState = @{
ResourceGroupName = "test-rg"
VirtualNetworkName = "vnet-1"
}
Get-AzVirtualNetworkPeering @peeringState | Select PeeringState
Ressourcen in einem virtuellen Netzwerk können erst dann mit Ressourcen in anderen virtuellen Netzwerk kommunizieren, wenn PeeringState für die Peerings in beiden virtuellen Netzwerken den Wert Verbunden aufweist.
Erstellen von virtuellen Computern
Erstellen Sie eine VM in jedem virtuellen Netzwerk, damit in einem späteren Schritt die Kommunikation untereinander möglich ist.
Erstellen des ersten virtuellen Computers
Erstellen Sie mit New-AzVM einen virtuellen Computer. Im folgenden Beispiel wird eine VM namens vm-1 im virtuellen Netzwerk vnet-1 erstellt. Mit der Option -AsJob
wird der virtuelle Computer im Hintergrund erstellt, sodass Sie mit dem nächsten Schritt fortfahren können. Geben Sie bei entsprechender Aufforderung den Benutzernamen und das Kennwort für die VM ein.
$vm1 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
ImageName = "Win2019Datacenter"
Name = "vm-1"
}
New-AzVm @vm1 -AsJob
Erstellen des zweiten virtuellen Computers
$vm2 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
VirtualNetworkName = "vnet-2"
SubnetName = "subnet-1"
ImageName = "Win2019Datacenter"
Name = "vm-2"
}
New-AzVm @vm2
Die Erstellung des virtuellen Computers dauert einige Minuten. Fahren Sie nicht mit späteren Schritten fort, bis Azure vm-2 erstellt und die Ausgabe an PowerShell zurückgegeben hat.
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:
- Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Backendpool eines Standardlastenausgleichs platziert (mit oder ohne Ausgangsregeln).
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Kommunikation zwischen VMs
Sie können über das Internet eine Verbindung mit der öffentlichen IP-Adresse einer VM herstellen. Geben Sie mit Get-AzPublicIpAddress die öffentliche IP-Adresse eines virtuellen Computers zurück. Das folgende Beispiel gibt die öffentliche IP-Adresse der VM vm-1 zurück:
$ipAddress = @{
ResourceGroupName = "test-rg"
Name = "vm-1"
}
Get-AzPublicIpAddress @ipAddress | Select IpAddress
Erstellen Sie mit dem folgenden Befehl auf Ihrem lokalen Computer eine Remotedesktopsitzung mit der VM vm-1. Ersetzen Sie <publicIpAddress>
durch die vom vorherigen Befehl zurückgegebene IP-Adresse.
mstsc /v:<publicIpAddress>
Eine Remotedesktopprotokoll-Datei (RDP-Datei) wird erstellt und geöffnet. Geben Sie den Benutzernamen und das Kennwort ein. (Unter Umständen müssen Sie auf Weitere Optionen und dann auf Anderes Konto verwenden klicken, um die Anmeldeinformationen anzugeben, die Sie beim Erstellen der VM eingegeben haben.) Klicken Sie anschließend auf OK. Während des Anmeldevorgangs wird unter Umständen eine Zertifikatwarnung angezeigt. Klicken Sie auf Ja bzw. Weiter, um mit dem Herstellen der Verbindung fortzufahren.
Aktivieren Sie auf vm-1 das Internet Control Message-Protokoll (ICMP) für die Windows-Firewall, damit Sie diese VM in einem späteren Schritt mit PowerShell über vm-2 per Ping erreichen können:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
In diesem Artikel wird Ping zwar für die Kommunikation zwischen VMs verwendet, aber das Zulassen des ICMP für die Windows-Firewall wird für Produktionsbereitstellungen nicht empfohlen.
Um eine Verbindung mit vm-2 herzustellen, geben Sie den folgenden Befehl an einer Eingabeaufforderung auf vm-1 ein:
mstsc /v:10.1.0.4
Sie haben Ping auf vm-1 aktiviert. Sie können jetzt vm-1 anhand der IP-Adresse über eine Eingabeaufforderung auf vm-2 pingen.
ping 10.0.0.4
Sie erhalten vier Antworten. Trennen Sie Ihre RDP-Sitzungen auf vm-1 und vm-2.
Bereinigen von Ressourcen
Wenn Sie die Ressourcengruppe und alle darin enthaltenen Ressourcen nicht mehr benötigen, entfernen Sie sie mit dem Befehl Remove-AzResourcegroup.
Remove-AzResourceGroup -Name test-rg -Force
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie zwei Netzwerke in derselben Azure-Region durch das Peering virtueller Netzwerke verbunden werden. Sie können auch virtuelle Netzwerke in unterschiedlichen unterstützten Regionen und verschiedenen Azure-Abonnements durch Peering verbinden und Netzwerke vom Typ „Nabe und Speiche“ mit Peering erstellen. Weitere Informationen zum Peering in virtuellen Netzwerken finden Sie unter Peering in virtuellen Netzwerken und Erstellen, Ändern oder Löschen eines Peerings virtueller Netzwerke.
Sie können über ein VPN eine Verbindung zwischen Ihrem eigenen Computer und einem virtuellen Netzwerk herstellen und mit Ressourcen in einem virtuellen Netzwerk oder in durch Peering verbundenen virtuellen Netzwerken interagieren. Wiederverwendbare Skripts, um viele der in den Artikeln zu virtuellen Netzwerken behandelten Aufgaben durchzuführen, finden Sie unter Azure CLI-Beispiele für Linux-VMs.