Diagnose des Routingproblems einer VM

In diesem Artikel erfahren Sie, wie Sie ein Routingproblem durch Anzeigen der effektiven Routen für eine Netzwerkschnittstelle in einem virtuellen Computer (VM) diagnostizieren. In Azure werden mehrere Standardrouten für jedes Subnetz eines virtuellen Netzwerks erstellt. Sie können Standardrouten von Azure durch Definieren von Routen in einer Routingtabelle überschreiben und dann die Routingtabelle einem Subnetz zuordnen. Aus der Kombination von Routen, die Sie erstellen, Standardrouten von Azure und allen Routen, die von Ihrem lokalen Netzwerk durch ein Azure-VPN-Gateway (sofern das virtuelle Netzwerk mit Ihrem lokalen Netzwerk verbunden ist) über das Border Gateway Protocol (BGP) verteilt werden, resultieren die effektiven Routen für alle Netzwerkschnittstellen in einem Subnetz. Wenn Sie nicht mit virtuellem Netzwerk, Netzwerkschnittstelle oder Routingkonzepten vertraut sind, lesen Sie Was ist Azure Virtual Network?, Erstellen, Ändern oder Löschen von Netzwerkschnittstellen und Routing von Datenverkehr für virtuelle Netzwerke.

Szenario

Sie versuchen, eine Verbindung mit einer VM herzustellen, aber ohne Erfolg. Um zu bestimmen, warum Sie keine Verbindung mit dem virtuellen Computer herstellen können, können Sie die effektiven Routen für eine Netzwerkschnittstelle mit Azure-Portal, PowerShell oder Azure CLI anzeigen.

Die folgenden Schritte setzen voraus, dass Sie über einen virtuellen Computer verfügen, dessen effektive Routen Sie anzeigen können. Wenn Sie nicht über eine VM verfügen, stellen Sie zuerst eine Linux- oder Windows-VM zum Ausführen der Aufgaben in diesem Artikel bereit. Die Beispiele in diesem Artikel beziehen sich auf eine VM mit dem Namen myVM mit einer Netzwerkschnittstelle namens myVMNic1. VM und Netzwerkschnittstelle gehören zu einer Ressourcengruppe mit dem Namen myResourceGroup in der Region USA, Osten. Ändern Sie die Werte in den Schritten nach Bedarf für die VM, deren Problem Sie diagnostizieren.

Diagnostizieren über das Azure-Portal

  1. Melden Sie sich beim Azure-Portal mit einem Azure-Konto an, dem die erforderlichen Berechtigungen zugewiesen sind.

  2. Geben Sie oben im Azure-Portal in das Suchfeld den Namen eines virtuellen Computers ein, der sich im Ausführungsstatus befindet. Wenn der Name der VM in den Suchergebnissen angezeigt wird, wählen Sie sie aus.

  3. Wählen Sie unter Einstellungen auf der linken Seite Netzwerk aus und navigieren Sie zur Netzwerkschnittstellenressource, indem Sie deren Namen auswählen. Anzeigen von Netzwerkschnittstellen

  4. Wählen Sie auf der linken Seite Effektive Routen aus. Die effektiven Routen für eine Netzwerkschnittstelle namens myVMNic1 werden in der folgenden Abbildung dargestellt: Anzeigen effektiver Routen

    Wenn dem virtuellen Computer mehrere Netzwerkschnittstellen angefügt sind, können Sie die effektiven Routen für eine Netzwerkschnittstelle anzeigen, indem Sie sie auswählen. Da sich jede Netzwerkschnittstelle in einem anderen Subnetz befinden kann, kann jede Netzwerkschnittstelle über unterschiedliche effektive Routen verfügen.

    In dem in der vorherigen Abbildung gezeigten Beispiel sind die aufgelisteten Routen Standardrouten, die Azure für jedes Subnetz erstellt. Ihre Liste verfügt mindestens über diese Routen, aber möglicherweise über zusätzliche Routen, je nach den Funktionen, die Sie für Ihr virtuelles Netzwerk aktiviert haben, z.B. seine Verbindung im Peering mit einem anderen virtuellen Netzwerk oder seine Verbindung mit dem lokalen Netzwerk über ein Azure-VPN-Gateway. Weitere Informationen zu den einzelnen Routen und anderen Routen, die möglicherweise für die Netzwerkschnittstelle angezeigt werden, finden Sie unter Routing von Datenverkehr für virtuelle Netzwerke. Wenn die Liste eine große Anzahl von Routen aufweist, ist es einfacher, wenn Sie Herunterladen auswählen, um eine CSV-Datei mit der Liste der Routen herunterzuladen.

Effektive Routen können nicht nur, wie in den vorherigen Schritten, über die VM angezeigt werden, sondern auch folgendermaßen:

Diagnose mit PowerShell

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Sie können die nachfolgenden Befehle in Azure Cloud Shell oder über PowerShell auf Ihrem Computer ausführen. Azure Cloud Shell ist eine kostenlose interaktive Shell. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert. Wenn Sie PowerShell auf Ihrem Computer ausführen, müssen Sie das Azure PowerShell-Modul Version 1.0.0 oder höher ausführen. Führen Sie Get-Module -ListAvailable Az auf Ihrem Computer aus, um nach der installierten Version zu suchen. 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 sich bei Azure mit einem Konto anzumelden, das über die erforderlichen Berechtigungen verfügt.

Rufen Sie die effektiven Routen für eine Netzwerkschnittstelle mit Get-AzEffectiveRouteTable auf. Im folgenden Beispiel werden die effektiven Routen für eine Netzwerkschnittstelle mit dem Namen myVMNic1 abgerufen, die sich in einer Ressourcengruppe mit dem Namen myResourceGroup befindet:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVMNic1 `
  -ResourceGroupName myResourceGroup `
  | Format-Table

Um die in der Ausgabe zurückgegebenen Informationen zu verstehen, lesen Sie Routing von Datenverkehr für virtuelle Netzwerke. Die Ausgabe wird nur zurückgegeben, wenn der virtuelle Computer ausgeführt wird. Wenn dem virtuellen Computer mehrere Netzwerkschnittstellen angefügt sind, können Sie die effektiven Routen für jede Netzwerkschnittstelle anzeigen. Da sich jede Netzwerkschnittstelle in einem anderen Subnetz befinden kann, kann jede Netzwerkschnittstelle über unterschiedliche effektive Routen verfügen. Wenn das Kommunikationsproblem weiterhin besteht, lesen Sie die Abschnitte Zusätzliche Diagnose und Überlegungen.

Wenn Sie den Namen einer Netzwerkschnittstelle nicht kennen, aber den Namen der VM, der die Netzwerkschnittstelle angefügt ist, geben die folgenden Befehle die IDs aller Netzwerkschnittstellen zurück, die einer VM angefügt sind:

$VM = Get-AzVM -Name myVM `
  -ResourceGroupName myResourceGroup
$VM.NetworkProfile

Eine Ausgabe ähnlich wie im folgenden Beispiel wird angezeigt:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic1

In der vorangehenden Ausgabe ist der Netzwerkschnittstellenname myVMNic1.

Diagnose über die Azure CLI

Sie können die nachfolgenden Befehle in Azure Cloud Shell oder über die Befehlszeilenschnittstelle auf Ihrem Computer ausführen. Für diesen Artikel ist die Azure CLI-Version 2.0.32 oder höher erforderlich. Führen Sie az --version aus, um die installierte Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sei bei Bedarf unter Installieren der Azure CLI. Wenn Sie die Azure CLI lokal ausführen, müssen Sie auch az login ausführen, um sich bei Azure mit einem Konto anzumelden, das über die erforderlichen Berechtigungen verfügt.

Rufen Sie mit az network nic show-effective-route-table die effektiven Routen für eine Netzwerkschnittstelle ab. Im folgenden Beispiel werden die effektiven Routen für eine Netzwerkschnittstelle namens myVMNic1 abgerufen, die sich in einer Ressourcengruppe mit dem Namen myResourceGroup befindet:

az network nic show-effective-route-table \
  --name myVMNic1 \
  --resource-group myResourceGroup

Um die in der Ausgabe zurückgegebenen Informationen zu verstehen, lesen Sie Routing von Datenverkehr für virtuelle Netzwerke. Die Ausgabe wird nur zurückgegeben, wenn der virtuelle Computer ausgeführt wird. Wenn dem virtuellen Computer mehrere Netzwerkschnittstellen angefügt sind, können Sie die effektiven Routen für jede Netzwerkschnittstelle anzeigen. Da sich jede Netzwerkschnittstelle in einem anderen Subnetz befinden kann, kann jede Netzwerkschnittstelle über unterschiedliche effektive Routen verfügen. Wenn das Kommunikationsproblem weiterhin besteht, lesen Sie die Abschnitte Zusätzliche Diagnose und Überlegungen.

Wenn Sie den Namen einer Netzwerkschnittstelle nicht kennen, aber den Namen der VM, der die Netzwerkschnittstelle angefügt ist, geben die folgenden Befehle die IDs aller Netzwerkschnittstellen zurück, die einer VM angefügt sind:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

Beheben eines Problems

Die Lösung von Routingproblemen erfolgt in der Regel folgendermaßen:

  • Fügen Sie eine benutzerdefinierte Route hinzu, um die Standardrouten von Azure außer Kraft zu setzen. Erfahren Sie, wie Sie eine benutzerdefinierte Route hinzufügen.
  • Ändern oder entfernen Sie eine benutzerdefinierte Route, die eine Weiterleitung an einen unerwünschten Ort zur Folge haben könnte. Erfahren Sie, wie Sie eine benutzerdefinierte Route ändern oder löschen.
  • Stellen Sie sicher, dass die Routingtabelle, die benutzerdefinierte Routen enthält, die Sie definiert haben, dem Subnetz zugeordnet ist, in dem sich die Netzwerkschnittstelle befindet. Erfahren Sie, wie Sie eine Routingtabelle einem Subnetz zuordnen.
  • Stellen Sie sicher, dass Geräte wie das Azure-VPN-Gateway oder virtuelle Netzwerkappliances, die Sie bereitgestellt haben, funktionsfähig sind. Verwenden Sie die VPN-Diagnose von Network Watcher, um Probleme mit einem Azure-VPN-Gateway zu bestimmen.

Falls weiterhin Probleme mit der Kommunikation bestehen, lesen Sie die Abschnitte Überlegungen und „Zusätzliche Diagnose“.

Überlegungen

Beachten Sie bei der Behandlung von Kommunikationsproblemen die folgenden Punkte:

  • Routing basiert auf der längsten Präfixübereinstimmung (Longest Prefix Match, LPM) bei Routen, die Sie definiert haben, Border Gateway Protocol (BGP) und Systemrouten. Wenn mehrere Routen mit identischer längster Präfixübereinstimmung vorhanden sind, wird die Route gemäß ihrem Ursprung in der unter Auswahl einer Route durch Azure aufgelisteten Reihenfolge ausgewählt. Mit effektiven Routen können Sie nur die effektiven Routen mit der basierend auf allen verfügbaren Routen jeweils längsten Präfixübereinstimmung anzeigen. Zu sehen, wie die Routen für eine Netzwerkschnittstelle ausgewertet werden, vereinfacht die Problembehandlung bestimmter Routen erheblich, die die Verbindung mit dem virtuellen Computer beeinträchtigen können.
  • Wenn Sie benutzerdefinierte Routen zu einer virtuellen Netzwerkappliance (Network Virtual Appliance, NVA) mit Virtuelles Gerät als nächstem Hoptyp definiert haben, müssen Sie sicherstellen, dass die IP-Weiterleitung auf der NVA aktiviert ist, die den Datenverkehr empfängt – andernfalls werden Pakete verworfen. Erfahren Sie mehr über das Aktivieren der IP-Weiterleitung für eine Netzwerkschnittstelle. Darüber hinaus muss das Betriebssystem oder die Anwendung innerhalb der NVA auch Netzwerkdatenverkehr weiterleiten können und dafür konfiguriert sein.
  • Wenn Sie eine Route zu 0.0.0.0/0 erstellt haben, wird der gesamte ausgehende Internetdatenverkehr an den nächsten Hop weitergeleitet, den Sie angegeben haben, z.B. zu einer NVA oder einem VPN-Gateway. Das Erstellen einer solchen Route wird häufig als Tunnelerzwingung bezeichnet. Remoteverbindungen zwischen dem Internet und Ihrem virtuellen Computer mithilfe der Protokolle RDP oder SSH funktionieren mit dieser Route möglicherweise nicht, je nachdem, wie der nächste Hop den Datenverkehr verarbeitet. Die Tunnelerzwingung kann in folgenden Fällen aktiviert werden:
    • Bei Verwendung eines Site-to-Site-VPN beim Erstellen einer Route mit dem nächsten Hoptyp VPN Gateway. Weitere Informationen zum Konfigurieren der Tunnelerzwingung.
    • Wenn 0.0.0.0/0 (Standardroute) über BGP über ein virtuelles Netzwerkgateway angekündigt wird, bei Verwendung eines Site-to-Site-VPN oder einer ExpressRoute-Leitung. Weitere Informationen zur Verwendung von BGP mit Site-to-Site-VPN oder ExpressRoute finden Sie hier.
  • Damit der Peering-Datenverkehr des virtuellen Netzwerks ordnungsgemäß weitergeleitet wird, muss eine Systemroute mit einem nächsten Hoptyp VNET-Peering für den Präfixbereich des per Peering verknüpften virtuellen Netzwerks vorhanden sein. Wenn eine solche Route nicht vorhanden und der Peeringlink des virtuellen Netzwerks Verbunden ist:
  • Wenn dem virtuellen Computer mehrere Netzwerkschnittstellen angefügt sind, wird nur der primären Netzwerkschnittstelle im Betriebssystem des virtuellen Computers eine Standardroute (0.0.0.0/0) oder ein Gateway zugewiesen, obwohl Azure jeder Azure-Netzwerkschnittstelle Standardrouten zuweist. Erfahren Sie, wie Sie eine Standardroute für sekundäre Netzwerkschnittstellen erstellen, die einer Windows- oder Linux-VM angefügt sind. Erfahren Sie mehr über primäre und sekundäre Netzwerkschnittstellen.

Zusätzliche Diagnose

  • Um einen Schnelltest zur Bestimmung des nächsten Hoptyps für den an einen bestimmten Standort gerichteten Datenverkehr durchzuführen, nutzen Sie die Funktion Nächster Hop von Azure Network Watcher. „Nächster Hop“ gibt Ihnen Aufschluss über den nächsten Hoptyp für Datenverkehr, der an einen bestimmten Standort gerichtet ist.
  • Wenn keine Routen vorliegen, die bei der Netzwerkkommunikation eines virtuellen Computers einen Fehler auslösen, wird das Problem möglicherweise durch die Firewallsoftware verursacht, die im Betriebssystem des virtuellen Computers ausgeführt wird.
  • Wenn Sie eine Tunnelerzwingung für den Datenverkehr zu einem lokalen Gerät über ein VPN-Gateway oder eine NVA durchführen, können Sie je nachdem, wie Sie das Routing für die Geräte konfiguriert haben, möglicherweise keine Verbindung mit einer VM aus dem Internet herstellen. Vergewissern Sie sich, dass das Routing, das Sie für das Gerät konfiguriert haben, den Datenverkehr entweder an eine öffentliche oder private IP-Adresse für den virtuellen Computer weiterleitet.
  • Verwenden Sie die Funktion Problembehandlung für Verbindung von Network Watcher, um Probleme mit der ausgehenden Kommunikation zu ermitteln, deren Ursache in Routing oder Filtern liegt bzw. betriebssystemintern ist.

Nächste Schritte