In diesem Tutorial erfahren Sie, wie Sie ein NAT-Gateway mit Azure Firewall in ein Hub-and-Spoke-Netzwerk integrieren, um eine verbesserte ausgehende Konnektivität und Skalierbarkeit zu erreichen.
Azure Firewall bietet 2.496 SNAT-Ports pro öffentlicher IP-Adresse, die pro VM-Skalierungsgruppeninstanz des Back-Ends konfiguriert sind (mindestens zwei Instanzen). Sie können der Azure Firewall-Instanz bis zu 250 öffentliche IP-Adressen zuordnen. Abhängig von Ihren Architekturanforderungen und Datenverkehrsmustern benötigen Sie möglicherweise mehr SNAT-Ports, als Azure Firewall bereitstellen kann. Möglicherweise benötigen Sie auch weniger öffentliche IP-Adressen und gleichzeitig eine größere Anzahl von SNAT-Ports. Eine bessere Methode für ausgehende Konnektivität ist die Verwendung eines NAT-Gateways. Ein NAT-Gateway bietet 64.512 SNAT-Ports pro öffentlicher IP-Adresse und kann mit bis zu 16 öffentlichen IP-Adressen verwendet werden.
Das NAT-Gateway kann in Azure Firewall integriert werden, indem das NAT-Gateway direkt im Azure Firewall-Subnetz konfiguriert wird. Diese Zuordnung bietet eine besser skalierbare Methode der ausgehenden Konnektivität. Für Produktionsbereitstellungen wird ein Hub-and-Spoke-Netzwerk empfohlen, bei dem sich die Firewall in einem eigenen virtuellen Netzwerk befindet. Die Workloadserver sind virtuelle Netzwerke mit Peering in derselben Region wie das virtuelle Hubnetzwerk, in dem sich die Firewall befindet. In diesem Architekturmodell kann das NAT-Gateway ausgehende Konnektivität vom virtuellen Hubnetzwerk für alle virtuellen Spoke-Netzwerke mit Peering bereitstellen.
Hinweis
Sie können das NAT-Gateway zwar in einer Hub- und Speichen-Netzwerkarchitektur bereitstellen, wie in diesem Lernprogramm beschrieben, das NAT-Gateway wird jedoch nicht im virtuellen Hubnetzwerk einer vWAN-Architektur unterstützt. Um in einer vWAN-Architektur zu verwenden, muss das NAT-Gateway direkt mit den virtuellen Speichennetzwerken konfiguriert werden, die dem gesicherten virtuellen Hub (vWAN) zugeordnet sind. Weitere Informationen zu Azure Firewall-Architekturoptionen finden Sie unter Welche Optionen bietet die Azure Firewall Manager-Architektur?.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen eines virtuellen Hubnetzwerks und Bereitstellen von Azure Firewall und Azure Bastion während der Bereitstellung
- Erstellen eines NAT-Gateways und Zuordnen des Gateways zum Firewallsubnetz im virtuellen Hubnetzwerk
- Erstellen eines virtuellen Spoke-Netzwerks
- Erstellen eines Peerings in virtuellen Netzwerken
- Erstellen einer Routingtabelle für das virtuelle Spoke-Netzwerk
- Erstellen einer Firewallrichtlinie für das virtuelle Hubnetzwerk
- Erstellen einer VM zum Testen der ausgehenden Konnektivität über das NAT-Gateway
Voraussetzungen
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 Cloud Shell-Befehle verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
So starten Sie 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. |
|
Wechseln Sie zu https://shell.azure.com, oder wählen Sie die Schaltfläche "Cloud Shell starten " aus, um Cloud Shell in Ihrem Browser zu öffnen. |
Schaltfläche  |
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+Shift+V auf Windows und Linux oder mit Cmd+Shift+V auf macOS in die Cloud Shell-Sitzung ein.
Wählen Sie Geben Sie ein, 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.
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
- Für diesen Artikel ist mindestens Version 2.0.28 der Azure CLI erforderlich. Wenn Sie Azure Cloud Shell verwenden, ist die neueste Version bereits installiert.
Erstellen des virtuellen Hub-Netzwerks
Das virtuelle Hubnetzwerk enthält das Firewallsubnetz, das der Azure Firewall und dem NAT-Gateway zugeordnet ist. Verwenden Sie das folgende Beispiel, um das virtuelle Hubnetzwerk zu erstellen.
Melden Sie sich beim Azure-Portal an.
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtuelles Netzwerk ein. Wählen Sie in den Suchergebnissen Virtuelle Netzwerke aus.
Wählen Sie + Erstellen aus.
Geben Sie unter Virtuelles Netzwerk erstellen auf der Registerkarte Grundlagen die folgenden Informationen an, oder wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie Neu erstellen.
Geben Sie test-rg ein.
Wählen Sie OK aus. |
Instanzendetails |
|
Name |
Geben Sie vnet-hub ein. |
Region |
Wählen Sie USA, Süden-Mitte aus. |
Wählen Sie Weiter aus, um zur Registerkarte Sicherheit zu gelangen.
Wählen Sie auf der Registerkarte Sicherheit im Abschnitt Azure Bastion die Option Azure Bastion aktivieren aus.
Azure Bastion verwendet Ihren Browser, um mithilfe ihrer privaten IP-Adressen eine Verbindung mit VMs in Ihrem virtuellen Netzwerk über Secure Shell (SSH) oder das Remotedesktopprotokoll (RDP) herzustellen. Die VMs benötigen keine öffentlichen IP-Adressen, keine Clientsoftware und keine spezielle Konfiguration. Weitere Informationen zu Azure Bastion finden Sie unter Azure Bastion.
Hinweis
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion im Rahmen eines Tutorials oder Tests bereitstellen, empfiehlt es sich, diese Ressource zu löschen, sobald Sie sie nicht mehr benötigen.
Geben Sie in Azure Bastion die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Azure Bastion-Hostname |
Geben Sie bastion ein. |
Öffentliche Azure Bastion-IP-Adresse |
Wählen Sie Öffentliche IP-Adresse erstellen aus.
Geben Sie public-ip-bastion als Namen ein.
Wählen Sie OK aus. |
Wählen Sie im Abschnitt Azure Firewall der Registerkarte Sicherheit die Option Azure Firewall aktivieren aus.
Azure Firewall ist ein verwalteter, cloudbasierter Netzwerksicherheitsdienst, der Ihre Azure Virtual Network-Ressourcen schützt. Es ist eine vollständig zustandsbehaftete Firewall-as-a-Service mit integrierter Hochverfügbarkeit und uneingeschränkter Cloudskalierbarkeit. Weitere Informationen zu Azure Firewall finden Sie unter Azure Firewall.
Geben Sie in Azure Firewall die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Name der Azure Firewall-Instanz |
Geben Sie Firewall ein. |
Tarif |
Wählen Sie Standard aus. |
Politik |
Wählen Sie Neu erstellen.
Geben Sie firewall-policy als Namen ein.
Wählen Sie OK aus. |
Öffentliche IP-Adresse von Azure Firewall |
Wählen Sie Öffentliche IP-Adresse erstellen aus.
Geben Sie public-ip-firewall als Namen ein.
Wählen Sie OK aus. |
Wählen Sie Weiter aus, um zur Registerkarte IP-Adressen zu gelangen.
Klicken Sie auf Überprüfen + erstellen.
Klicken Sie auf Erstellen.
Es dauert einige Minuten, bis der Bastionhost und die Firewall bereitgestellt werden. Wenn das virtuelle Netzwerk im Rahmen der Bereitstellung erstellt wird, können Sie mit den nächsten Schritten fortfahren.
Verwenden Sie New-AzResourceGroup , um eine Ressourcengruppe zu erstellen.
# Create resource group
$rgParams = @{
Name = 'test-rg'
Location = 'South Central US'
}
New-AzResourceGroup @rgParams
Verwenden Sie New-AzVirtualNetwork, um das virtuelle Hubnetzwerk zu erstellen.
# Create hub virtual network
$vnetParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'vnet-hub'
AddressPrefix = '10.0.0.0/16'
}
$hubVnet = New-AzVirtualNetwork @vnetParams
Verwenden Sie Add-AzVirtualNetworkSubnetConfig, um ein Subnetz für Azure Firewall und Azure Bastion zu erstellen.
# Create default subnet
$subnetParams = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
VirtualNetwork = $hubVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
# Create subnet for Azure Firewall
$subnetParams = @{
Name = 'AzureFirewallSubnet'
AddressPrefix = '10.0.1.64/26'
VirtualNetwork = $hubVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
# Create subnet for Azure Bastion
$subnetParams = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.0.1.0/26'
VirtualNetwork = $hubVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
Verwenden Sie Set-AzVirtualNetwork, um das virtuelle Netzwerk zu aktualisieren.
# Create the virtual network
$hubVnet | Set-AzVirtualNetwork
Verwenden Sie New-AzPublicIpAddress, um eine öffentliche IP-Adresse für Azure Bastion zu erstellen.
# Create public IP for Azure Bastion
$publicIpBastionParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'public-ip-bastion'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1, 2, 3
}
$publicIpBastion = New-AzPublicIpAddress @publicIpBastionParams
Verwenden Sie New-AzBastion, um Azure Bastion zu erstellen.
# Create Azure Bastion
$bastionParams = @{
ResourceGroupName = "test-rg"
Name = "bastion"
VirtualNetworkName = "vnet-hub"
PublicIpAddressName = "public-ip-bastion"
PublicIPAddressRgName = "test-rg"
VirtualNetworkRgName = "test-rg"
}
New-AzBastion @bastionParams
Verwenden Sie New-AzPublicIpAddress, um eine öffentliche IP-Adresse für Azure Firewall zu erstellen.
# Create public IP for Azure Firewall
$publicIpFirewallParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'public-ip-firewall'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1, 2, 3
}
$publicIpFirewall = New-AzPublicIpAddress @publicIpFirewallParams
Verwenden Sie New-AzFirewallPolicy, um eine Firewallrichtlinie zu erstellen.
# Create firewall policy
$firewallPolicyParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'firewall-policy'
}
$firewallPolicy = New-AzFirewallPolicy @firewallPolicyParams
Verwenden Sie New-AzFirewall, um Azure Firewall zu erstellen.
# Create Azure Firewall
$firewallParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'firewall'
VirtualNetworkName = 'vnet-hub'
PublicIpName = 'public-ip-firewall'
FirewallPolicyId = $firewallPolicy.Id
}
$firewall = New-AzFirewall @firewallParams
Verwenden Sie az group create , um eine Ressourcengruppe zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
LOCATION="southcentralus"
az group create \
--name $RESOURCE_GROUP \
--___location $LOCATION
Verwenden Sie az network vnet create, um das virtuelle Hubnetzwerk zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
VNET_HUB_ADDRESS_PREFIX="10.0.0.0/16"
SUBNET_1_NAME="subnet-1"
SUBNET_1_PREFIX="10.0.0.0/24"
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_HUB_NAME \
--address-prefix $VNET_HUB_ADDRESS_PREFIX \
--subnet-name $SUBNET_1_NAME \
--subnet-prefix $SUBNET_1_PREFIX
Verwenden Sie az network vnet subnet create, um ein Subnetz für Azure Bastion zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
BASTION_SUBNET_NAME="AzureBastionSubnet"
BASTION_SUBNET_PREFIX="10.0.1.0/26"
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $BASTION_SUBNET_NAME \
--address-prefix $BASTION_SUBNET_PREFIX
Verwenden Sie az network vnet subnet create, um ein Subnetz für Azure Firewall zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
FIREWALL_SUBNET_NAME="AzureFirewallSubnet"
FIREWALL_SUBNET_PREFIX="10.0.1.64/26"
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $FIREWALL_SUBNET_NAME \
--address-prefix $FIREWALL_SUBNET_PREFIX
Verwenden Sie az network public-ip create, um eine öffentliche IP-Adresse für Azure Bastion zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
BASTION_PUBLIC_IP_NAME="public-ip-bastion"
ALLOCATION_METHOD="Static"
SKU="Standard"
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name $BASTION_PUBLIC_IP_NAME \
--allocation-method $ALLOCATION_METHOD \
--sku $SKU
Verwenden Sie az network bastion create, um Azure Bastion zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
BASTION_NAME="bastion"
BASTION_PUBLIC_IP_NAME="public-ip-bastion"
VNET_HUB_NAME="vnet-hub"
az network bastion create \
--resource-group $RESOURCE_GROUP \
--name $BASTION_NAME \
--public-ip-address $BASTION_PUBLIC_IP_NAME \
--vnet-name $VNET_HUB_NAME
Verwenden Sie az network public-ip create, um eine öffentliche IP-Adresse für Azure Firewall zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_PUBLIC_IP_NAME="public-ip-firewall"
ALLOCATION_METHOD="Static"
SKU="Standard"
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_PUBLIC_IP_NAME \
--allocation-method $ALLOCATION_METHOD \
--sku $SKU
Verwenden Sie az network firewall policy create, um eine Firewallrichtlinie zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_POLICY_NAME="firewall-policy"
az network firewall policy create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_POLICY_NAME
Verwenden Sie az network firewall create, um Azure Firewall zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
FIREWALL_NAME="firewall"
VNET_HUB_NAME="vnet-hub"
FIREWALL_POLICY_NAME="firewall-policy"
FIREWALL_PUBLIC_IP_NAME="public-ip-firewall"
az network firewall create \
--resource-group $RESOURCE_GROUP \
--name $FIREWALL_NAME \
--vnet-name $VNET_HUB_NAME \
--firewall-policy $FIREWALL_POLICY_NAME \
--public-ip $FIREWALL_PUBLIC_IP_NAME
Erstellen des NAT-Gateways
Der gesamte ausgehende Internetdatenverkehr durchläuft das NAT-Gateway in das Internet. Verwenden Sie das folgende Beispiel, um ein NAT-Gateway für das Hub-and-Spoke-Netzwerk zu erstellen und es dem AzureFirewallSubnet zuzuordnen.
Geben Sie am oberen Rand des Portals den Suchbegriff NAT-Gateway in das Suchfeld ein. Wählen Sie in den Suchergebnissen NAT-Gateways aus.
Wählen Sie + Erstellen aus.
Geben Sie unter Gateway für die Netzwerkadressübersetzung (NAT) erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie test-rg aus. |
Instanzendetails |
|
Name des NAT-Gateways |
Geben Sie nat-gateway ein. |
Region |
Wählen Sie USA, Süden-Mitte aus. |
Verfügbarkeitszone |
Wählen Sie eine Zone oder Keine Zone aus. |
TCP-Leerlauftimeout (Minuten) |
Übernehmen Sie den Standardwert 4. |
Weitere Informationen zu Verfügbarkeitszonen finden Sie unter NAT-Gateway und Verfügbarkeitszonen.
Wählen Sie Weiter: Ausgehende IP-Adresse aus.
Wählen Sie unter Ausgehende IP-Adresse unter Öffentliche IP-Adressen die Option Neue öffentliche IP-Adresse erstellen aus.
Geben Sie public-ip-nat für Name ein.
Klicken Sie auf OK.
Wählen Sie Weiter: Subnetz aus.
Wählen Sie unter Virtuelles Netzwerk die Option vnet-hub aus.
Wählen Sie unter Subnetzname die Option AzureFirewallSubnet aus.
Klicken Sie auf Überprüfen + erstellen.
Klicken Sie auf Erstellen.
Verwenden Sie New-AzPublicIpAddress, um eine öffentliche IP-Adresse für das NAT-Gateway zu erstellen.
# Create public IP for NAT gateway
$publicIpNatParams = @{
ResourceGroupName = 'test-rg'
Location = 'southcentralus'
Name = 'public-ip-nat'
AllocationMethod = 'Static'
Sku = 'Standard'
}
$publicIpNat = New-AzPublicIpAddress @publicIpNatParams
Verwenden Sie New-AzNatGateway, um das NAT-Gateway zu erstellen.
$natGatewayParams = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
PublicIpAddress = $publicIpNat
Sku = 'Standard'
IdleTimeoutInMinutes = 4
Location = 'South Central US'
}
$natGateway = New-AzNatGateway @natGatewayParams
Verwenden Sie Set-AzVirtualNetworkSubnetConfig, um das NAT-Gateway AzureFirewallSubnet zuzuordnen.
# Get the AzureFirewallSubnet from the hub virtual network
$subnetParams = @{
VirtualNetwork = $hubVnet
Name = 'AzureFirewallSubnet'
}
$subnet = Get-AzVirtualNetworkSubnetConfig @subnetParams
$subnet.NatGateway = $natGateway
# Associate NAT gateway with AzureFirewallSubnet
$subnetParams = @{
VirtualNetwork = $hubVnet
Name = 'AzureFirewallSubnet'
AddressPrefix = '10.0.1.64/26'
NatGateway = $natGateway
}
Set-AzVirtualNetworkSubnetConfig @subnetParams
Verwenden Sie Set-AzVirtualNetwork, um das virtuelle Netzwerk zu aktualisieren.
# Update the virtual network
$hubVnet | Set-AzVirtualNetwork
Verwenden Sie az network public-ip create, um eine öffentliche IP-Adresse für das NAT-Gateway zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
NAT_PUBLIC_IP_NAME="public-ip-nat"
ALLOCATION_METHOD="Static"
SKU="Standard"
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name $NAT_PUBLIC_IP_NAME \
--allocation-method $ALLOCATION_METHOD \
--sku $SKU
Verwenden Sie az network nat gateway create, um ein NAT-Gateway zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
NAT_GATEWAY_NAME="nat-gateway"
NAT_PUBLIC_IP_NAME="public-ip-nat"
IDLE_TIMEOUT="4"
az network nat gateway create \
--resource-group $RESOURCE_GROUP \
--name $NAT_GATEWAY_NAME \
--public-ip-address $NAT_PUBLIC_IP_NAME \
--idle-timeout $IDLE_TIMEOUT
Verwenden Sie az network vnet subnet update, um das NAT-Gateway AzureFirewallSubnet zuzuordnen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
FIREWALL_SUBNET_NAME="AzureFirewallSubnet"
NAT_GATEWAY_NAME="nat-gateway"
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $FIREWALL_SUBNET_NAME \
--nat-gateway $NAT_GATEWAY_NAME
Erstellen eines virtuellen Spoke-Netzwerks
Das virtuelle Spoke-Netzwerk enthält die Test-VM, die zum Testen des Routings des Internetdatenverkehrs an das NAT-Gateway verwendet wird. Verwenden Sie das folgende Beispiel, um das Spoke-Netzwerk zu erstellen.
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtuelles Netzwerk ein. Wählen Sie in den Suchergebnissen Virtuelle Netzwerke aus.
Wählen Sie + Erstellen aus.
Geben Sie unter Virtuelles Netzwerk erstellen auf der Registerkarte Grundlagen die folgenden Informationen an, oder wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie test-rg aus. |
Instanzendetails |
|
Name |
Geben Sie vnet-spoke ein. |
Region |
Wählen Sie USA, Süden-Mitte aus. |
Wählen Sie Weiter aus, um zur Registerkarte Sicherheit zu gelangen.
Wählen Sie Weiter aus, um zur Registerkarte IP-Adressen zu gelangen.
Wählen Sie auf der Registerkarte IP-Adressen im IPv4-Adressraum die Option Adressraum löschen aus, um den automatisch mit Daten aufgefüllten Adressraum zu löschen.
Wählen Sie + IPv4-Adressraum hinzufügen aus.
Geben Sie unter IPv4-Adressraum den Adressraum 10.1.0.0 ein. Übernehmen Sie bei der Maskenauswahl den Standardwert /16 (65.536 Adressen).
Wählen Sie + Subnetz hinzufügen aus.
Geben Sie unter Subnetz hinzufügen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Subnetzzweck |
Übernehmen Sie den Standardwert: Standard. |
Name |
Geben Sie subnet-private ein. |
IPv4 |
|
IPv4-Adressbereich |
Übernehmen Sie den Standardwert 10.1.0.0/16. |
Startadresse |
Übernehmen Sie den Standardwert 10.1.0.0. |
Größe |
Übernehmen Sie den Standardwert: /24 (256 Adressen). |
Wählen Sie Hinzufügen.
Klicken Sie auf Überprüfen + erstellen.
Klicken Sie auf Erstellen.
Verwenden Sie New-AzVirtualNetwork, um das virtuelle Spoke-Netzwerk zu erstellen.
# Create spoke virtual network
$vnetParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'vnet-spoke'
AddressPrefix = '10.1.0.0/16'
}
$spokeVnet = New-AzVirtualNetwork @vnetParams
Verwenden Sie Add-AzVirtualNetworkSubnetConfig, um ein Subnetz für das virtuelle Spoke-Netzwerk zu erstellen.
# Create subnet in spoke virtual network
$subnetParams = @{
Name = 'subnet-private'
AddressPrefix = '10.1.0.0/24'
VirtualNetwork = $spokeVnet
}
Add-AzVirtualNetworkSubnetConfig @subnetParams
Verwenden Sie Set-AzVirtualNetwork, um das virtuelle Spoke-Netzwerk zu aktualisieren.
# Create the virtual network
$spokeVnet | Set-AzVirtualNetwork
Verwenden Sie az network vnet create, um das virtuelle Spoke-Netzwerk zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_SPOKE_NAME="vnet-spoke"
VNET_SPOKE_ADDRESS_PREFIX="10.1.0.0/16"
SPOKE_SUBNET_NAME="subnet-private"
SPOKE_SUBNET_PREFIX="10.1.0.0/24"
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_SPOKE_NAME \
--address-prefix $VNET_SPOKE_ADDRESS_PREFIX \
--subnet-name $SPOKE_SUBNET_NAME \
--subnet-prefix $SPOKE_SUBNET_PREFIX
Erstellen von Peering zwischen Hub und Spoke
Peering virtueller Netzwerke wird verwendet, um den Hub mit dem Spoke und den Spoke mit dem Hub zu verbinden. Verwenden Sie das folgende Beispiel, um bidirektionales Netzwerkpeering zwischen dem Hub und dem Spoke zu erstellen.
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtuelles Netzwerk ein. Wählen Sie in den Suchergebnissen Virtuelle Netzwerke aus.
Wählen Sie vnet-hub aus.
Wählen Sie unter Einstellungen die Option Peerings aus.
Wählen Sie + Hinzufügen.
Geben Sie unter Peering hinzufügen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Zusammenfassung zu virtuellen Remotenetzwerken |
|
Name des Peeringlinks |
Geben Sie vnet-spoke-to-vnet-hub ein. |
Bereitstellungsmodell für das virtuelle Netzwerk |
Übernehmen Sie den Standardwert Ressourcen-Manager. |
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Virtuelles Netzwerk |
Wählen Sie vnet-spoke (test-rg) aus. |
Einstellungen für das Peering virtueller Remotenetzwerke |
|
Zulassen des Zugriffs von „vnet-spoke“ auf „vnet-hub“ |
Übernehmen Sie die Standardeinstellung Ausgewählt. |
Zulassen des Empfangs des von „vnet-hub“ weitergeleiteten Datenverkehrs durch „vnet-spoke“ |
Aktivieren Sie das Kontrollkästchen. |
Gateway oder Routenserver in „vnet-spoke“ erlauben, Datenverkehr an „vnet-hub“ weiterzuleiten |
Übernehmen Sie die Standardeinstellung Deaktiviert. |
Zulassen, dass „vnet-spoke“ den Remote-Gateway oder Routenserver von „vnet-hub“ verwendet |
Übernehmen Sie die Standardeinstellung Deaktiviert. |
Lokales virtuelles Netzwerk: Zusammenfassung |
|
Name des Peeringlinks |
Geben Sie vnet-hub-to-vnet-spoke ein. |
Einstellungen für das Peering lokaler virtueller Netzwerke |
|
Zulassen des Zugriffs von „vnet-hub“ auf „vnet-spoke“ |
Übernehmen Sie die Standardeinstellung Ausgewählt. |
Zulassen des Empfangs des von „vnet-spoke“ weitergeleiteten Datenverkehrs durch „vnet-hub“ |
Aktivieren Sie das Kontrollkästchen. |
Gateway oder Routenserver in „vnet-hub“ erlauben, Datenverkehr an „vnet-spoke“ weiterzuleiten |
Übernehmen Sie die Standardeinstellung Deaktiviert. |
Zulassen, dass „vnet-hub“ den Remote-Gateway oder Routenserver von „vnet-spoke“ verwendet |
Übernehmen Sie die Standardeinstellung Deaktiviert. |
Wählen Sie Hinzufügen.
Wählen Sie Aktualisieren aus, und überprüfen Sie, ob der Peeringstatus den Zustand Verbunden aufweist.
Verwenden Sie Add-AzVirtualNetworkPeering, um ein Peering vom Hub zum Spoke zu erstellen.
# Create peering from hub to spoke
$peeringParams = @{
Name = 'vnet-hub-to-vnet-spoke'
VirtualNetwork = $hubVnet
RemoteVirtualNetworkId = $spokeVnet.Id
AllowForwardedTraffic = $true
}
Add-AzVirtualNetworkPeering @peeringParams
Verwenden Sie Add-AzVirtualNetworkPeering, um ein Peering vom Spoke zum Hub zu erstellen.
# Create peering from spoke to hub
$peeringParams = @{
Name = 'vnet-spoke-to-vnet-hub'
VirtualNetwork = $spokeVnet
RemoteVirtualNetworkId = $hubVnet.Id
AllowForwardedTraffic = $true
}
Add-AzVirtualNetworkPeering @peeringParams
Verwenden Sie az network vnet peering create, um ein Peering vom Hub zum Spoke zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_HUB_NAME="vnet-hub"
HUB_TO_SPOKE_PEERING_NAME="vnet-hub-to-vnet-spoke"
VNET_SPOKE_NAME="vnet-spoke"
az network vnet peering create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_HUB_NAME \
--name $HUB_TO_SPOKE_PEERING_NAME \
--remote-vnet $VNET_SPOKE_NAME \
--allow-forwarded-traffic
Verwenden Sie az network vnet peering create, um ein Peering vom Spoke zum Hub zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_SPOKE_NAME="vnet-spoke"
SPOKE_TO_HUB_PEERING_NAME="vnet-spoke-to-vnet-hub"
VNET_HUB_NAME="vnet-hub"
az network vnet peering create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_SPOKE_NAME \
--name $SPOKE_TO_HUB_PEERING_NAME \
--remote-vnet $VNET_HUB_NAME \
--allow-forwarded-traffic
Erstellen einer Netzwerkroutingtabelle
Eine Routingtabelle erzwingt, dass der gesamte Datenverkehr, der das virtuelle Spoke-Netzwerk verlässt, in das virtuelle Hubnetzwerk geleitet wird. Die Routingtabelle wird mit der privaten IP-Adresse der Azure Firewall als virtuelles Gerät konfiguriert.
Abrufen der privaten IP-Adresse der Firewall
Die private IP-Adresse der Firewall wird für die Routingtabelle benötigt, die weiter unten in diesem Artikel erstellt wird. Verwenden Sie das folgende Beispiel, um die private IP-Adresse der Firewall abzurufen.
Geben Sie in das Suchfeld am oberen Rand des Portals Firewall ein. Wählen Sie in den Suchergebnissen Firewalls aus.
Wählen Sie Firewall aus.
Beachten Sie in der Übersicht von Firewall die IP-Adresse im Feld Private IP-Adresse der Firewall. In diesem Beispiel lautet die IP-Adresse 10.0.1.68.
Verwenden Sie Get-AzFirewall, um die private IP-Adresse der Firewall abzurufen.
# Get the private IP address of the firewall
$firewallParams = @{
ResourceGroupName = 'test-rg'
Name = 'firewall'
}
$firewall = Get-AzFirewall @firewallParams
$firewall.IpConfigurations[0].PrivateIpAddress
# Get the private IP address of the firewall
az network firewall show \
--resource-group test-rg \
--name firewall \
--query "ipConfigurations[0].privateIpAddress" \
--output tsv
Erstellen einer Routingtabelle
Erstellen Sie eine Routingtabelle, damit der gesamte Datenverkehr zwischen Spokes und der ausgehende Internetdatenverkehr über die Firewall im virtuellen Hubnetzwerk erzwungen wird.
Geben Sie oben im Portal im Suchfeld den Begriff Routingtabelle ein. Wählen Sie in den Suchergebnissen den Eintrag Routingtabellen aus.
Wählen Sie + Erstellen aus.
Geben Sie in Routingtabelle erstellen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie test-rg aus. |
Instanzendetails |
|
Region |
Wählen Sie USA, Süden-Mitte aus. |
Name |
Geben Sie route-table-spoke ein. |
Gatewayrouten verteilen |
Wählen Sie also Nein. |
Klicken Sie auf Überprüfen + erstellen.
Klicken Sie auf Erstellen.
Geben Sie oben im Portal im Suchfeld den Begriff Routingtabelle ein. Wählen Sie in den Suchergebnissen den Eintrag Routingtabellen aus.
Wählen Sie route-table-spoke aus.
Wählen Sie unter Einstellungen die Option Routen aus.
Wählen Sie unter Routen die Option + Hinzufügen aus.
Geben Sie unter Route hinzufügen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Routenname |
Geben Sie route-to-hub ein. |
Zieltyp |
Wählen Sie IP-Adressen aus. |
Ziel-IP-Adressen/CIDR-Bereiche |
Geben Sie 0.0.0.0/0 ein. |
Typ des nächsten Hops |
Wählen Sie Virtuelles Gerät aus. |
Adresse des nächsten Hops |
Geben Sie 10.0.1.68 ein. |
Wählen Sie Hinzufügen.
Wählen Sie unter Einstellungen die Option Subnetze aus.
Wählen Sie + Zuordnen aus.
Geben Sie unter Subnetz zuordnen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Virtuelles Netzwerk |
Wählen Sie vnet-spoke (test-rg) aus. |
Subnetz |
Wählen Sie subnet-private aus. |
Klicken Sie auf OK.
Verwenden Sie New-AzRouteTable , um die Routentabelle zu erstellen.
# Create route table
$routeTableParams = @{
ResourceGroupName = 'test-rg'
Location = 'South Central US'
Name = 'route-table-spoke'
}
$routeTable = New-AzRouteTable @routeTableParams
Verwenden Sie Add-AzRouteConfig, um eine Route in der Routingtabelle zu erstellen.
# Create route
$routeConfigParams = @{
Name = 'route-to-hub'
AddressPrefix = '0.0.0.0/0'
NextHopType = 'VirtualAppliance'
NextHopIpAddress = $firewall.IpConfigurations[0].PrivateIpAddress
RouteTable = $routeTable
}
Add-AzRouteConfig @routeConfigParams
Verwenden Sie Set-AzRouteTable, um die Routingtabelle zu aktualisieren.
# Update the route table
$routeTable | Set-AzRouteTable
Verwenden Sie Set-AzVirtualNetworkSubnetConfig, um die Routingtabelle dem Spoke-Subnetz zuzuordnen.
# Associate route table with subnet
$subnetConfigParams = @{
VirtualNetwork = $spokeVnet
Name = 'subnet-private'
AddressPrefix = '10.1.0.0/24'
RouteTable = $routeTable
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
Verwenden Sie Set-AzVirtualNetwork, um das virtuelle Spoke-Netzwerk zu aktualisieren.
# Update the virtual network
$spokeVnet | Set-AzVirtualNetwork
Verwenden Sie az network route-table create, um eine Routingtabelle zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
ROUTE_TABLE_NAME="route-table-spoke"
LOCATION="southcentralus"
az network route-table create \
--resource-group $RESOURCE_GROUP \
--name $ROUTE_TABLE_NAME \
--___location $LOCATION
Verwenden Sie az network route-table route create, um eine Route zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
ROUTE_TABLE_NAME="route-table-spoke"
ROUTE_NAME="route-to-hub"
ADDRESS_PREFIX="0.0.0.0/0"
NEXT_HOP_TYPE="VirtualAppliance"
NEXT_HOP_IP="10.0.1.68"
az network route-table route create \
--resource-group $RESOURCE_GROUP \
--route-table-name $ROUTE_TABLE_NAME \
--name $ROUTE_NAME \
--address-prefix $ADDRESS_PREFIX \
--next-hop-type $NEXT_HOP_TYPE \
--next-hop-ip-address $NEXT_HOP_IP
Verwenden Sie az network vnet subnet update , um die Routentabelle dem Subnetz zuzuordnen.
# Variables
RESOURCE_GROUP="test-rg"
VNET_SPOKE_NAME="vnet-spoke"
SPOKE_SUBNET_NAME="subnet-private"
ROUTE_TABLE_NAME="route-table-spoke"
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_SPOKE_NAME \
--name $SPOKE_SUBNET_NAME \
--route-table $ROUTE_TABLE_NAME
Datenverkehr vom Spoke über den Hub muss über eine Firewallrichtlinie und eine Netzwerkregel zugelassen werden. Verwenden Sie das folgende Beispiel, um die Firewallrichtlinie und die Netzwerkregel zu erstellen.
Geben Sie in das Suchfeld am oberen Rand des Portals Firewall ein. Wählen Sie in den Suchergebnissen Firewallrichtlinien aus.
Wählen Sie firewall-policy aus.
Erweitern Sie Einstellungen, und wählen Sie dann Netzwerkregeln aus.
Wählen Sie + Regelsammlung hinzufügen aus.
Geben Sie unter Regelsammlung hinzufügen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Name |
Geben Sie spoke-to-internet ein. |
Regelsammlungstyp |
Wählen Sie Netzwerk aus. |
Priority |
Geben Sie 100 ein. |
Regelsammlungsaktion |
Wählen Sie Zulassen aus. |
Regelsammlungsgruppe |
Wählen Sie DefaultNetworkRuleCollectionGroup aus. |
Regeln |
|
Name |
Geben Sie allow-web ein. |
Quellentyp |
IP Address (IP-Adresse): |
`Source` |
Geben Sie 10.1.0.0/24 ein. |
Protokoll |
Wählen Sie TCP aus. |
Zielports |
Geben Sie 80,443 ein. |
Zieltyp |
Wählen Sie IP-Adresse aus. |
Bestimmungsort |
Geben Sie * ein. |
Wählen Sie Hinzufügen.
Verwenden Sie Get-AzFirewallPolicy, um die vorhandene Firewallrichtlinie abzurufen.
# Get the existing firewall policy
$firewallPolicyParams = @{
Name = 'firewall-policy'
ResourceGroupName = 'test-rg'
}
$firewallPolicy = Get-AzFirewallPolicy @firewallPolicyParams
Verwenden Sie New-AzFirewallPolicyNetworkRule, um eine Netzwerkregel zu erstellen.
# Create a network rule for web traffic
$networkRuleParams = @{
Name = 'allow-internet'
SourceAddress = '10.1.0.0/24'
Protocol = 'TCP'
DestinationAddress = '*'
DestinationPort = '*'
}
$networkRule = New-AzFirewallPolicyNetworkRule @networkRuleParams
Verwenden Sie New-AzFirewallPolicyFilterRuleCollection, um eine Regelsammlung für die Netzwerkregel zu erstellen.
# Create a rule collection for the network rule
$ruleCollectionParams = @{
Name = 'spoke-to-internet'
Priority = 100
Rule = $networkRule
ActionType = 'Allow'
}
$ruleCollection = New-AzFirewallPolicyFilterRuleCollection @ruleCollectionParams
Verwenden Sie New-AzFirewallPolicyRuleCollectionGroup, um eine Regelsammlungsgruppe zu erstellen.
$newRuleCollectionGroupParams = @{
Name = 'DefaultNetworkRuleCollectionGroup'
Priority = 200
FirewallPolicyObject = $firewallPolicy
RuleCollection = $ruleCollection
}
New-AzFirewallPolicyRuleCollectionGroup @newRuleCollectionGroupParams
Verwenden Sie az network firewall policy rule-collection-group create, um eine Regelsammlungsgruppe zu erstellen.
# Variables
RULE_COLLECTION_GROUP_NAME="DefaultNetworkRuleCollectionGroup"
FIREWALL_POLICY_NAME="firewall-policy"
RESOURCE_GROUP="test-rg"
PRIORITY="200"
az network firewall policy rule-collection-group create \
--name $RULE_COLLECTION_GROUP_NAME \
--policy-name $FIREWALL_POLICY_NAME \
--resource-group $RESOURCE_GROUP \
--priority $PRIORITY
Verwenden Sie az network firewall policy rule-collection-group collection add-filter-collection, um eine Netzwerkregelsammlung zu erstellen.
# Variables
COLLECTION_NAME="spoke-to-internet"
ACTION="Allow"
RULE_NAME="allow-web"
RULE_TYPE="NetworkRule"
SOURCE_ADDRESSES="10.1.0.0/24"
IP_PROTOCOLS="TCP"
DESTINATION_ADDRESSES="*"
DESTINATION_PORTS="*"
COLLECTION_PRIORITY="100"
FIREWALL_POLICY_NAME="firewall-policy"
RESOURCE_GROUP="test-rg"
RULE_COLLECTION_GROUP_NAME="DefaultNetworkRuleCollectionGroup"
az network firewall policy rule-collection-group collection add-filter-collection \
--name $COLLECTION_NAME \
--action $ACTION \
--rule-name $RULE_NAME \
--rule-type $RULE_TYPE \
--source-addresses $SOURCE_ADDRESSES \
--ip-protocols $IP_PROTOCOLS \
--destination-addresses $DESTINATION_ADDRESSES \
--destination-ports $DESTINATION_PORTS \
--collection-priority $COLLECTION_PRIORITY \
--policy-name $FIREWALL_POLICY_NAME \
--resource-group $RESOURCE_GROUP \
--rule-collection-group-name $RULE_COLLECTION_GROUP_NAME
Erstellen eines virtuellen Testcomputers
Ein virtueller Ubuntu-Computer wird verwendet, um den ausgehenden Internetdatenverkehr über das NAT-Gateway zu testen. Verwenden Sie das folgende Beispiel, um einen virtuellen Ubuntu-Computer zu erstellen.
Suchen Sie im Portal nach Virtuelle Computer, und klicken Sie darauf.
Wählen Sie unter VM die Option + Erstellen und dann Azure-VM aus.
Geben Sie unter Virtuellen Computer erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Abonnement aus. |
Ressourcengruppe |
Wählen Sie test-rg aus. |
Instanzendetails |
|
Name des virtuellen Computers |
Geben Sie vm-spoke ein. |
Region |
Wählen Sie USA, Süden-Mitte aus. |
Verfügbarkeitsoptionen |
Wählen Sie Keine Infrastrukturredundanz erforderlich aus. |
Sicherheitstyp |
Übernehmen Sie den Standardwert Standard. |
Image |
Wählen Sie Ubuntu Server 24.04 LTS – x64 Gen2 aus. |
VM-Architektur |
Übernehmen Sie den Standardwert x64. |
Größe |
Wählen Sie eine Größe aus. |
Administratorkonto |
|
Authentifizierungsart |
Wählen Sie Kennwort aus. |
Nutzername |
Geben Sie azureuser ein. |
Kennwort |
Geben Sie ein Kennwort ein. |
Kennwort bestätigen |
Geben Sie das Kennwort erneut ein. |
Regeln für eingehende Ports |
|
Öffentliche Eingangsports |
Wählen Sie Keine. |
Wählen Sie am oberen Seitenrand die Registerkarte Netzwerk aus, oder wählen Sie Weiter:Datenträger und anschließend Weiter:Netzwerk aus.
Geben Sie auf der Registerkarte Netzwerk die folgenden Informationen ein, bzw. wählen Sie sie aus:
Einstellung |
Wert |
Netzwerkschnittstelle |
|
Virtuelles Netzwerk |
Wählen Sie vnet-spoke aus. |
Subnetz |
Wählen Sie subnet-private (10.1.0.0/24) aus. |
Öffentliche IP-Adresse |
Wählen Sie Keine. |
NIC-Netzwerksicherheitsgruppe |
Wählen Sie Erweitertaus. |
Konfigurieren von Netzwerksicherheitsgruppen |
Wählen Sie Neu erstellen.
Geben Sie nsg-1 für Name ein.
Behalten Sie für den Rest die Standards bei, und wählen Sie OK aus. |
Behalten Sie für die restlichen Einstellungen die Standards bei, und wählen Sie dann Überprüfen + erstellen aus.
Überprüfen Sie die Einstellungen, und wählen Sie Erstellen aus.
Warten Sie, bis der virtuelle Computer die Bereitstellung fertiggestellt hat, bevor Sie mit den nächsten Schritten fortfahren.
Hinweis
VMs in einem virtuellen Netzwerk mit einem Bastionhost benötigen keine öffentlichen IP-Adressen. Bastion stellt die öffentliche IP-Adresse bereit und die VMs verwenden private IP-Adressen für die Kommunikation innerhalb des Netzwerks. Sie können die öffentlichen IP-Adressen von allen VMs in von Bastion gehosteten virtuellen Netzwerken entfernen. Weitere Informationen finden Sie unter Trennen einer öffentlichen IP-Adresse von einer Azure-VM.
Verwenden Sie New-AzNetworkSecurityGroup , um die Netzwerksicherheitsgruppe zu erstellen.
$nsgParams = @{
ResourceGroupName = "test-rg"
Name = "nsg-1"
Location = "southcentralus"
}
New-AzNetworkSecurityGroup @nsgParams
Verwenden Sie New-AzNetworkInterface , um die Netzwerkschnittstelle zu erstellen.
$nicParams = @{
ResourceGroupName = "test-rg"
Name = "nic-1"
SubnetId = (Get-AzVirtualNetwork -ResourceGroupName "test-rg" -Name "vnet-spoke").Subnets[0].Id
NetworkSecurityGroupId = (Get-AzNetworkSecurityGroup -ResourceGroupName "test-rg" -Name "nsg-1").Id
Location = "southcentralus"
}
New-AzNetworkInterface @nicParams
Legen Sie mit Get-Credential einen Benutzernamen und ein Kennwort für den virtuellen Computer fest und speichern Sie sie in der Variable $cred
.
$cred = Get-Credential
Hinweis
Für die VM ist ein Benutzername erforderlich. Das Kennwort ist optional und wird nicht verwendet, wenn es festgelegt wird. Die Konfiguration von SSH-Schlüsseln wird für Linux-VMs empfohlen.
Verwenden Sie New-AzVMConfig , um einen virtuellen Computer zu definieren.
$vmConfigParams = @{
VMName = "vm-spoke"
VMSize = "Standard_DS4_v2"
}
$vmConfig = New-AzVMConfig @vmConfigParams
Erstellen Sie mit Set-AzVMOperatingSystem und Set-AzVMSourceImage die restliche VM-Konfiguration. Im folgenden Beispiel wird ein virtueller Ubuntu Server-Computer erstellt:
$osParams = @{
VM = $vmConfig
ComputerName = "vm-spoke"
Credential = $cred
}
$vmConfig = Set-AzVMOperatingSystem @osParams -Linux -DisablePasswordAuthentication
$imageParams = @{
VM = $vmConfig
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$vmConfig = Set-AzVMSourceImage @imageParams
Hängen Sie mit Add-AzVMNetworkInterface die zuvor erstellte NIC an den virtuellen Computer an.
# Get the network interface object
$nicParams = @{
ResourceGroupName = "test-rg"
Name = "nic-1"
}
$nic = Get-AzNetworkInterface @nicParams
$vmConfigParams = @{
VM = $vmConfig
Id = $nic.Id
}
$vmConfig = Add-AzVMNetworkInterface @vmConfigParams
Verwenden Sie "New-AzVM ", um den virtuellen Computer zu erstellen. Der Befehl generiert SSH-Schlüssel für den virtuellen Computer zum Anmelden. Notieren Sie sich den Speicherort des privaten Schlüssels. Der private Schlüssel wird in späteren Schritten für das Herstellen einer Verbindung zur VM mit Azure Bastion benötigt.
$vmParams = @{
VM = $vmConfig
ResourceGroupName = "test-rg"
Location = "southcentralus"
SshKeyName = "ssh-key"
}
New-AzVM @vmParams -GenerateSshKey
Verwenden Sie az network nsg create, um eine Netzwerksicherheitsgruppe zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
NSG_NAME="nsg-1"
LOCATION="southcentralus"
az network nsg create \
--resource-group $RESOURCE_GROUP \
--name $NSG_NAME \
--___location $LOCATION
Verwenden Sie az network nic create, um eine Netzwerkschnittstelle zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
NIC_NAME="vm-spoke-nic"
VNET_SPOKE_NAME="vnet-spoke"
SPOKE_SUBNET_NAME="subnet-private"
NSG_NAME="nsg-1"
az network nic create \
--resource-group $RESOURCE_GROUP \
--name $NIC_NAME \
--vnet-name $VNET_SPOKE_NAME \
--subnet $SPOKE_SUBNET_NAME \
--network-security-group $NSG_NAME
Verwenden Sie az vm create, um einen virtuellen Computer zu erstellen.
# Variables
RESOURCE_GROUP="test-rg"
VM_NAME="vm-spoke"
LOCATION="southcentralus"
NIC_NAME="vm-spoke-nic"
VM_IMAGE="Ubuntu2204"
ADMIN_USERNAME="azureuser"
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--___location $LOCATION \
--nics $NIC_NAME \
--image $VM_IMAGE \
--admin-username $ADMIN_USERNAME \
--generate-ssh-keys
Testen des NAT-Gateways
Sie stellen eine Verbindung mit den virtuellen Ubuntu-Computern her, die Sie in den vorherigen Schritten erstellt haben, um zu überprüfen, ob der ausgehende Internetdatenverkehr das NAT-Gateway verlässt.
Abrufen der öffentlichen IP-Adresse des NAT-Gateways
Rufen Sie die öffentliche IP-Adresse des NAT-Gateways ab, um die Schritte weiter unten in diesem Artikel zu überprüfen.
Geben Sie am oberen Rand des Portals den Suchbegriff Öffentliche IP-Adresse in das Suchfeld ein. Wählen Sie in den Suchergebnissen Öffentliche IP-Adressen aus.
Wählen Sie public-ip-nat aus.
Notieren Sie sich den Wert unter IP-Adresse. Das in diesem Artikel verwendete Beispiel lautet 203.0.113.0.25.
Verwenden Sie Get-AzPublicIpAddress, um die öffentliche IP-Adresse des NAT-Gateways abzurufen.
# Get the public IP address of the NAT gateway
$publicIpNatParams = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip-nat'
}
$publicIpNat = Get-AzPublicIpAddress @publicIpNatParams
$publicIpNat.IpAddress
Verwenden Sie az network public-ip show, um die öffentliche IP-Adresse des NAT-Gateways abzurufen.
# Variables
RESOURCE_GROUP="test-rg"
NAT_PUBLIC_IP_NAME="public-ip-nat"
az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name $NAT_PUBLIC_IP_NAME \
--query "ipAddress" \
--output tsv
Testen des NAT-Gateways vom Spoke
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtueller Computer ein. Wählen Sie in den Suchergebnissen Virtuelle Computer aus.
Wählen Sie vm-spoke aus.
Wählen Sie in Übersicht die Option Verbinden und dann Über Bastion verbinden aus.
Wählen Sie SSH als Verbindungstyp aus. Laden Sie die Datei mit Ihrem privaten SSH-Schlüssel hoch. Wählen Sie Verbinden.
Geben Sie an der Bash-Eingabeaufforderung den folgenden Befehl ein:
curl ifconfig.me
Überprüfen Sie, ob die vom Befehl zurückgegebene IP-Adresse mit der öffentlichen IP-Adresse des NAT-Gateways übereinstimmt.
azureuser@vm-1:~$ curl ifconfig.me
203.0.113.0.25
Schließen Sie die Bastion-Verbindung mit vm-spoke.
Wenn Sie mit der Verwendung der von Ihnen erstellten Ressourcen fertig sind, können Sie die Ressourcengruppe und alle zugehörigen Ressourcen löschen.
Suchen Sie im Azure-Portal nach Ressourcengruppen, und wählen Sie die entsprechende Option aus.
Wählen Sie auf der Seite Ressourcengruppen die Ressourcengruppe test-rg aus.
Wählen Sie auf der Seite test-rg die Option Ressourcengruppe löschen aus.
Geben Sie test-rg unter Ressourcengruppennamen eingeben, um die Löschung zu bestätigen und wählen Sie dann Löschen aus.
Verwenden Sie Remove-AzResourceGroup, um die Ressourcengruppe zu entfernen.
# Remove resource group
$rgParams = @{
Name = 'test-rg'
}
Remove-AzResourceGroup @rgParams
Verwenden Sie az group delete, um die Ressourcengruppe zu entfernen.
# Variables
RESOURCE_GROUP="test-rg"
az group delete \
--name $RESOURCE_GROUP \
--yes \
--no-wait
Nächste Schritte
Im nächsten Artikel erfahren Sie, wie Sie ein NAT-Gateway in eine Azure Load Balancer-Instanz integrieren: