Risoluzione dei problemi di route con Azure PowerShellTroubleshoot routes using Azure PowerShell

Se si verificano problemi di connettività di rete da o verso una macchina virtuale (VM) di Azure, le route possono influire sui flussi di traffico della VM.If you are experiencing network connectivity issues to or from your Azure Virtual Machine (VM), routes may be impacting your VM traffic flows. In questo articolo viene fornita una panoramica delle funzionalità di diagnostica per le route che consentono di risolvere il problema.This article provides an overview of diagnostics capabilities for routes to help troubleshoot further.

Le tabelle di route sono associate alle subnet e valgono per tutte le interfacce di rete della subnet.Route tables are associated with subnets and are effective on all network interfaces (NIC) in that subnet. I seguenti tipi di route sono applicabili a ogni interfaccia di rete:The following types of routes can be applied to each network interface:

  • Route di sistema: per impostazione predefinita, ogni subnet creata in una rete virtuale di Azure dispone di tabelle di route di sistema che consentono il traffico di rete virtuale locale, il traffico locale tramite gateway VPN e il traffico Internet.System routes: By default, every subnet created in an Azure Virtual Network (VNet) has system route tables that allow local VNet traffic, on-premises traffic via VPN gateways, and Internet traffic. Le route di sistema esistono anche per le reti virtuali con peering.System routes also exist for peered VNets.
  • Route BGP: sono propagate alle interfacce di rete tramite connessioni VPN site-to-site o ExpressRoute.BGP routes: Propagated to network interfaces through ExpressRoute or site-to-site VPN connections. Per altre informazioni sul routing BGP, vedere gli articoli BGP con i gateway VPN e Panoramica relativa a ExpressRoute.Learn more about BGP routing by reading the BGP with VPN gateways and ExpressRoute overview articles.
  • Route definite dall'utente: se si usano dispositivi virtuali di rete o si forza il tunneling del traffico verso una rete locale tramite una VPN site-to-site, potrebbero esserci route definite dall'utente associate alla tabella di route della subnet.User-defined routes (UDR): If you are using network virtual appliances or are forced-tunneling traffic to an on-premises network via a site-to-site VPN, you may have user-defined routes (UDRs) associated with your subnet route table. Se non si ha dimestichezza con le route definite dall'utente, leggere l'articolo sulle route definite dall'utente .If you're not familiar with UDRs, read the user-defined routes article.

Con le varie route che possono essere applicate a un'interfaccia di rete, può essere difficile determinare quali route di aggregazione sono efficaci.With the various routes that can be applied to a network interface, it can be difficult to determine which aggregate routes are effective. Per risolvere i problemi di connettività di rete delle VM, è possibile visualizzare tutte le route valide per un'interfaccia di rete nel modello di distribuzione Azure Resource Manager.To help troubleshoot VM network connectivity, you can view all the effective routes for a network interface in the Azure Resource Manager deployment model.

Uso di regole efficaci per risolvere i problemi di flusso del traffico delle VMUsing Effective Routes to troubleshoot VM traffic flow

In questo articolo viene usato lo scenario seguente come esempio per illustrare come risolvere i problemi di route valide per un'interfaccia di rete:This article uses the following scenario as an example to illustrate how to troubleshoot the effective routes for a network interface:

Una VM (VM1) connessa alla rete virtuale (VNet1, prefisso 10.9.0.0/16) non è in grado di connettersi a un VM (VM3) in una rete virtuale di cui è appena stato eseguito il peering (VNet3, prefisso 10.10.0.0/16).A VM (VM1) connected to the VNet (VNet1, prefix: 10.9.0.0/16) fails to connect to a VM(VM3) in a newly peered VNet (VNet3, prefix 10.10.0.0/16). Non ci sono route definite dall'utente o route BGP applicate all'interfaccia di rete VM1-NIC1 connessa alla VM; sono applicate solo le route di sistema.There are no UDRs or BGP routes applied to VM1-NIC1 network interface connected to the VM, only system routes are applied.

Questo articolo spiega come determinare la causa dell'errore di connessione usando la capacità delle route valide nel modello di distribuzione Azure Resource Manager.This article explains how to determine the cause of the connection failure, using effective routes capability in Azure Resource Management deployment model. Sebbene in questo esempio si usino solo le route di sistema, è possibile attenersi alla stessa procedura per determinare gli errori di connessione in ingresso e in uscita su qualsiasi tipo di route.While the example uses only system routes, the same steps can be used to determine inbound and outbound connection failures over any route type.

Nota

Se alla VM è collegata più di un'interfaccia di rete, verificare le route valide per ciascuna delle interfacce di rete per diagnosticare i problemi di connettività di rete da e verso una VM.If your VM has more than one NIC attached, check effective routes for each of the NICs to diagnose network connectivity issues to and from a VM.

Visualizzare le route valide per una macchina virtualeView effective routes for a virtual machine

Per visualizzare le route di aggregazione applicate a una VM, completare i passaggi seguenti:To see the aggregate routes that are applied to a VM, complete the following steps:

Visualizzare le route valide per un'interfaccia di reteView effective routes for a network interface

Per visualizzare le route di aggregazione applicate a un'interfaccia di rete, completare i passaggi seguenti:To see the aggregate routes that are applied to a network interface, complete the following steps:

  1. Avviare una sessione di Azure PowerShell e accedere ad Azure.Start an Azure PowerShell session and login to Azure. Se non si ha dimestichezza con Azure PowerShell, leggere l'articolo Come installare e configurare Azure PowerShell .If you’re not familiar with Azure PowerShell, read the How to install and configure Azure PowerShell article.
  2. Il comando seguente restituisce tutte le route applicate a un'interfaccia di rete denominata VM1 NIC1 nel gruppo di risorse RG1.The following command returns all routes applied to a network interface named VM1-NIC1 in the resource group RG1.

    Get-AzureRmEffectiveRouteTable -NetworkInterfaceName VM1-NIC1 -ResourceGroupName RG1
    

    Suggerimento

    Se non si conosce il nome di un'interfaccia di rete, digitare il comando seguente per recuperare i nomi di tutte le interfacce di rete in un gruppo di risorse.If you don’t know the name of a network interface, type the following command to retrieve the names of all network interfaces in a resource group.

    Get-AzureRmNetworkInterface -ResourceGroupName RG1 | Format-Table Name
    

    L'output seguente ha un aspetto simile all'output per ciascuna route applicata alla subnet a cui è connessa l'interfaccia di rete:The following output looks similar to the output for each route applied to the subnet the NIC is connected to:

    Name :
    State : Active
    AddressPrefix : {10.9.0.0/16}
    NextHopType : VNetLocal
    NextHopIpAddress : {}
    
    Name :
    State : Active
    AddressPrefix : {0.0.0.0/16}
    NextHopType : Internet
    NextHopIpAddress : {}
    

    Prestare attenzione agli aspetti seguenti nell'output:Notice the following in the output:

    • Name: il nome della route valida può essere vuoto, a meno che non venga specificato esplicitamente, per le route definite dall'utente.Name: Name of the effective route may be empty, unless explicitly specified, for user-defined routes.
    • State: indica lo stato della route valida.State: Indicates state of the effective route. Alcuni valori possibili sono "Active" o "Invalid"Possible values are "Active" or "Invalid"
    • AddressPrefixes: specifica il prefisso dell'indirizzo della route valida in notazione CIDR.AddressPrefixes: Specifies the address prefix of the effective route in CIDR notation.
    • nextHopType: indica l'hop successivo per la route specificata.nextHopType: Indicates the next hop for the given route. I valori possibili sono VirtualAppliance, Internet, VNetLocal, VNetPeering e Null.Possible values are VirtualAppliance, Internet, VNetLocal, VNetPeering, or Null. Un valore Null per nextHopType in una route definita dall'utente potrebbe indicare una route non valida.A value of Null for nextHopType in a UDR may indicate an invalid route. Ad esempio, se nextHopType è VirtualAppliance e la VM del dispositivo virtuale di rete non si trova nello stato di provisioning/esecuzione.For example, if nextHopType is VirtualAppliance and the network virtual appliance VM is not in a provisioned/running state. Se nextHopType è VPNGateway e non sono presenti gateway in provisioning/in esecuzione nella rete virtuale specificata, la route potrebbe diventare non valida.If nextHopType is VPNGateway and there is no gateway provisioned/running in the given VNet, the route may become invalid.
    • NextHopIpAddress: specifica l'indirizzo IP dell'hop successivo della route valida.NextHopIpAddress: Specifies the IP address of the next hop of the effective route.

    Il comando seguente restituisce le route in una tabella più semplice da visualizzare:The following command returns the routes in an easier to view table:

    Get-AzureRmEffectiveRouteTable -NetworkInterfaceName VM1-NIC1 -ResourceGroupName RG1 | Format-Table
    

    L'output seguente è parte dell'output ricevuto per lo scenario descritto in precedenza:The following output is some of the output received for the scenario described previously:

    Name State AddressPrefix NextHopType NextHopIpAddress
    ---- ----- ------------- ----------- ----------------
    Active {10.9.0.0/16} VnetLocal {}
    Active {0.0.0.0/0} Internet {}
    
  3. Non sono presenti route elencate per la rete virtuale WestUS VNet3 (prefisso 10.10.0.0/16) da WestUS VNet1 (prefisso 10.9.0.0/16) nell'output del passaggio precedente.There is no route listed to the WestUS-VNet3 VNet (Prefix 10.10.0.0/16)** from WestUS-VNet1 (Prefix 10.9.0.0/16) in the output from the previous step. Come illustrato nell'immagine seguente, la rete virtuale che collega in peering il collegamento con la rete virtuale WestUS VNet3 è disconnessa.As shown in the following picture, the VNet peering link with the WestUS-VNet3 VNet is in the Disconnected state.

    Il collegamento bidirezionale per il peering è interrotto, il che spiega il motivo per cui non è riuscita la connessione tra VM1 e VM3 nella rete virtuale WestUS VNet3 .The bi-directional link for the peering is broken, which explains why VM1 could not connect to VM3 in the WestUS-VNet3 VNet. Configurare di nuovo un collegamento di peering di rete virtuale bidirezionale per le reti virtuali WestUS VNet1 WestUS VNet3.Setup a bi-directional VNet peering link again for WestUS-VNet1 and WestUS-VNet3 VNets. Di seguito è mostrato l'output restituito dopo che il collegamento di peering della rete virtuale è stato stabilito correttamente:The output returned after the VNet peering link is correctly established follows:

     Name State AddressPrefix NextHopType NextHopIpAddress
     ---- ----- ------------- ----------- ----------------
     Active {10.9.0.0/16} VnetLocal {}
     Active {10.10.0.0/16} VNetPeering {}
     Active {0.0.0.0/0} Internet {}
    

    Dopo aver determinato il problema, è possibile aggiungere, rimuovere, o modificare le route e le relative tabelle.Once you determine the issue, you can add, remove, or change routes and route tables. Digitare il comando seguente per visualizzare un elenco dei comandi usati per eseguire questa operazione:Type the following command to see a list of the commands used to do so:

     Get-Help *-AzureRmRouteConfig
    

ConsiderazioniConsiderations

Alcuni aspetti da tenere presenti quando si esamina l'elenco delle route restituito:A few things to keep in mind when reviewing the list of routes returned:

  • Il routing è basato sulla corrispondenza del prefisso più lunga (LPM) tra le route definite dall'utente, BGP e di sistema.Routing is based on Longest Prefix Match (LPM) among UDRs, BGP and system routes. Se è presente più di una route con la stessa corrispondenza LPM, allora la route viene selezionata in base alla sua origine nell'ordine seguente:If there is more than one route with the same LPM match, then a route is selected based on its origin in the following order:

    • Route definita dall'utenteUser-defined route
    • Route BGPBGP route
    • Route di sistema (predefinita)System (Default) route

      Con route valide, è possibile vedere solo route valide con corrispondenza LPM basata su tutte le route disponibili.With effective routes, you can only see effective routes that are LPM match based on all the availble routes. Mostrando come le route vengono effettivamente valutate per un'interfaccia di rete specificata, è molto più semplice risolvere i problemi delle route specifiche che potrebbero influire sulle connettività da e verso la VM.By showing how the routes are actually evaluated for a given NIC, this makes it a lot easier to troubleshoot specific routes that may be impacting connectivity to/from your VM.

  • Se si dispone di route definite dall'utente e si invia traffico a un dispositivo virtuale di rete, con VirtualAppliance come nextHopType, assicurarsi che l'inoltro IP sia abilitato nel dispositivo virtuale di rete che riceve il traffico o che i pacchetti vengano eliminati.If you have UDRs and are sending traffic to a network virtual appliance (NVA), with VirtualAppliance as nextHopType, ensure that IP forwarding is enabled on the NVA receiving the traffic or packets are dropped.
  • Se è abilitato il tunneling forzato, tutto il traffico Internet in uscita verrà instradato in locale.If Forced tunneling is enabled, all outbound Internet traffic will be routed to on-premises. Una connessione RDP o SSH da Internet alla VM potrebbe non funzionare con questa impostazione, a seconda di come l'hardware di rete locale gestisce il traffico.RDP/SSH from Internet to your VM may not work with this setting, depending on how the on-premises handles this traffic. Il tunneling forzato può essere abilitato:Forced-tunneling can be enabled:
    • Se si usa una VPN site-to-site, impostando una route definita dall'utente con nextHopType come Gateway VPNIf using site-to-site VPN, by setting a user-defined route (UDR) with nextHopType as VPN Gateway
    • Se una route predefinita è pubblicizzata su BGPIf a default route is advertised over BGP
  • Per il corretto funzionamento del traffico peering di rete virtuale, deve esistere una route di sistema con nextHopType VNetPeering per l'intervallo dei prefissi della rete virtuale con peering.For VNet peering traffic to work correctly, a system route with nextHopType VNetPeering must exist for the peered VNet’s prefix range. Se non esiste una route di questo tipo e il collegamento di peering della rete virtuale ha un aspetto corretto:If such a route doesn’t exist and the VNet peering link looks OK:
    • Attendere alcuni secondi e riprovare, se si tratta di un collegamento di peering appena stabilito.Wait a few seconds and retry if it's a newly established peering link. In alcuni casi è necessario più tempo per propagare le route a tutte le interfacce di rete in una subnet.It occasionally takes longer to propagate routes to all the network interfaces in a subnet.
    • Le regole del gruppo di sicurezza di rete possono influire sui flussi di traffico.Network Security Group (NSG) rules may be impacting the traffic flows. Per altre informazioni, vedere l'articolo Troubleshoot Network Security Groups (Risolvere i problemi dei gruppi di sicurezza di rete).For more information, see the Troubleshoot Network Security Groups article.