Ottimizzare il routing in ExpressRouteOptimize ExpressRoute Routing

In presenza di più circuiti ExpressRoute sono disponibili più percorsi per connettersi a Microsoft.When you have multiple ExpressRoute circuits, you have more than one path to connect to Microsoft. Il routing può quindi risultare non ottimale, ovvero è possibile che il traffico usi un percorso più lungo per raggiungere Microsoft e da Microsoft la rete del cliente.As a result, suboptimal routing may happen - that is, your traffic may take a longer path to reach Microsoft, and Microsoft to your network. Più lungo è il percorso di rete, maggiore sarà la latenzaThe longer the network path, the higher the latency. che ha un impatto diretto sull'esperienza utente e sulle prestazioni dell'applicazione.Latency has direct impact on application performance and user experience. Questo articolo descrive il problema e illustra come ottimizzare il routing con tecnologie di routing standard.This article will illustrate this problem and explain how to optimize routing using the standard routing technologies.

Routing non ottimale dal cliente a MicrosoftSuboptimal routing from customer to Microsoft

Per esaminare il problema di routing si userà un esempio.Let's take a close look at the routing problem by an example. Si supponga di avere due sedi negli Stati Uniti: una a Los Angeles e una a New York.Imagine you have two offices in the US, one in Los Angeles and one in New York. Gli uffici sono connessi tramite una rete WAN (Wide Area Network), che può essere la propria rete backbone o la VPN IP del provider di servizi.Your offices are connected on a Wide Area Network (WAN), which can be either your own backbone network or your service provider's IP VPN. Sono disponibili due circuiti ExpressRoute, uno negli Stati Uniti occidentali e uno negli Stati Uniti orientali, anch'essi connessi tramite la rete WAN.You have two ExpressRoute circuits, one in US West and one in US East, that are also connected on the WAN. Naturalmente, per la connessione alla rete Microsoft esistono due percorsi.Obviously, you have two paths to connect to the Microsoft network. Si supponga ora di avere una distribuzione di Azure, ad esempio il servizio app di Azure, negli Stati Uniti occidentali e negli Stati Uniti orientali.Now imagine you have Azure deployment (for example, Azure App Service) in both US West and US East. Si vogliono connettere gli utenti di Los Angeles alla distribuzione di Azure negli Stati Uniti occidentali e gli utenti di New York alla distribuzione di Azure negli Stati Uniti orientali perché, secondo quanto annunciato dall'amministratore del servizio, per assicurare esperienze ottimali è consigliabile che gli utenti di ogni ufficio accedano ai servizi di Azure nelle vicinanze.Your intention is to connect your users in Los Angeles to Azure US West and your users in New York to Azure US East because your service admin advertises that users in each office access the nearby Azure services for optimal experiences. Sfortunatamente, il piano funziona correttamente per gli utenti della costa orientale, ma non per quelli della costa occidentale.Unfortunately, the plan works out well for the east coast users but not for the west coast users. Di seguito è riportata la causa del problema.The cause of the problem is the following. In ogni circuito ExpressRoute vengono pubblicati sia il prefisso di Azure negli Stati Uniti orientali (23.100.0.0/16) che il prefisso di Azure negli Stati Uniti occidentali (13.100.0.0/16).On each ExpressRoute circuit, we advertise to you both the prefix in Azure US East (23.100.0.0/16) and the prefix in Azure US West (13.100.0.0/16). Se non si conosce l'area di provenienza di un prefisso, non si potrà differenziarne la gestione.If you don't know which prefix is from which region, you are not able to treat it differently. Ritenendo che entrambi i prefissi siano più vicini agli Stati Uniti orientali rispetto agli Stati Uniti occidentali, la rete WAN potrebbe indirizzare gli utenti di entrambi gli uffici al circuito ExpressRoute negli Stati Uniti orientali.Your WAN network may think both of the prefixes are closer to US East than US West and therefore route both office users to the ExpressRoute circuit in US East. Molti utenti nell'ufficio di Los Angeles avranno di conseguenza un'esperienza insoddisfacente.In the end, you will have many unhappy users in the Los Angeles office.

Problema caso 1 ExpressRoute: routing non ottimale dal cliente a Microsoft

Soluzione: usare BGP CommunitySolution: use BGP Communities

Per ottimizzare il routing per gli utenti di entrambi gli uffici, è necessario sapere quale prefisso proviene da Azure negli Stati Uniti occidentali e quale da Azure negli Stati Uniti orientali.To optimize routing for both office users, you need to know which prefix is from Azure US West and which from Azure US East. Queste informazioni vengono codificate con i valori di BGP Community.We encode this information by using BGP Community values. È stato assegnato un valore di BGP Community univoco per ogni area di Azure, ad esempio "12076:51004" per gli Stati Uniti orientali, "12076:51006" per gli Stati Uniti occidentali.We've assigned a unique BGP Community value to each Azure region, e.g. "12076:51004" for US East, "12076:51006" for US West. Dopo aver appreso da quale area di Azure proviene ogni prefisso, si può scegliere il circuito ExpressRoute da configurare come preferito.Now that you know which prefix is from which Azure region, you can configure which ExpressRoute circuit should be preferred. Poiché si usa BGP per lo scambio di informazioni di routing, è possibile usare il valore di BGP relativo alla preferenza locale per determinare il routing.Because we use the BGP to exchange routing info, you can use BGP's Local Preference to influence routing. In questo esempio è possibile assegnare un valore di preferenza locale 13.100.0.0/16 più alto negli Stati Uniti occidentali di quello negli Stati Uniti orientali e, in modo analogo, un valore di preferenza locale 23.100.0.0/16 più alto negli Stati Uniti orientali rispetto a quello negli Stati Uniti occidentali.In our example, you can assign a higher local preference value to 13.100.0.0/16 in US West than in US East, and similarly, a higher local preference value to 23.100.0.0/16 in US East than in US West. Questa configurazione garantirà che, quando sono disponibili entrambi i percorsi per connettersi a Microsoft, gli utenti di Los Angeles useranno il circuito ExpressRoute negli Stati Uniti occidentali per connettersi ad Azure negli Stati Uniti occidentali, mentre gli utenti di New York useranno il circuito ExpressRoute negli Stati Uniti orientali per connettersi ad Azure negli Stati Uniti orientali.This configuration will make sure that, when both paths to Microsoft are available, your users in Los Angeles will take the ExpressRoute circuit in US West to connect to Azure US West whereas your users in New York take the ExpressRoute in US East to Azure US East. Il routing è ottimizzato su entrambi i lati.Routing is optimized on both sides.

Soluzione caso 1 ExpressRoute: usare BGP Community

Nota

La stessa tecnica, con la preferenza locale, può essere applicata al routing dal cliente alla rete virtuale di Azure.The same technique, using Local Preference, can be applied to routing from customer to Azure Virtual Network. I prefissi annunciati da Azure alla rete del cliente non vengono contrassegnati con il valore di BGP Community.We don't tag BGP Community value to the prefixes advertised from Azure to your network. Dato che si sa quale distribuzione della rete virtuale è vicina a un determinato ufficio, tuttavia, è possibile configurare i router di conseguenza in modo che venga preferito un circuito ExpressRoute rispetto a un altro.However, since you know which of your Virtual Network deployment is close to which of your office, you can configure your routers accordingly to prefer one ExpressRoute circuit to another.

Routing non ottimale da Microsoft al clienteSuboptimal routing from Microsoft to customer

Ecco un altro esempio in cui le connessioni da Microsoft usano un percorso più lungo per raggiungere la rete del cliente.Here is another example where connections from Microsoft take a longer path to reach your network. In questo caso, si usano i server di Exchange in locale ed Exchange Online in un ambiente ibrido.In this case, you use on-premises Exchange servers and Exchange Online in a hybrid environment. Gli uffici sono connessi a una rete WAN.Your offices are connected to a WAN. Si annunciano a Microsoft i prefissi dei server locali in entrambi gli uffici tramite i due circuiti ExpressRoute.You advertise the prefixes of your on-premises servers in both of your offices to Microsoft through the two ExpressRoute circuits. Nel caso, ad esempio, di migrazione delle cassette postali, Exchange Online avvierà le connessioni ai server locali.Exchange Online will initiate connections to the on-premises servers in cases such as mailbox migration. La connessione all'ufficio di Los Angeles viene purtroppo instradata al circuito ExpressRoute negli Stati Uniti orientali, attraversando l'intero continente prima di ritornare alla costa occidentale.Unfortunately, the connection to your Los Angeles office is routed to the ExpressRoute circuit in US East before traversing the entire continent back to the west coast. La causa di questo problema è simile a quella del primo.The cause of the problem is similar to the first one. Senza indicazioni la rete Microsoft non può stabilire quale prefisso del cliente è più vicino agli Stati Uniti orientali e quale agli Stati Uniti occidentali.Without any hint, the Microsoft network can't tell which customer prefix is close to US East and which one is close to US West. Può quindi accadere che venga scelga il percorso errato per l'ufficio di Los Angeles.It happens to pick the wrong path to your office in Los Angeles.

Caso 2 ExpressRoute: routing non ottimale da Microsoft al cliente

Soluzione: anteporre AS PATHSolution: use AS PATH prepending

Esistono due soluzioni al problema.There are two solutions to the problem. La prima consiste semplicemente nell'annunciare il prefisso locale per l'ufficio di Los Angeles, 177.2.0.0/31, sul circuito ExpressRoute negli Stati Uniti occidentali e il prefisso locale per l'ufficio di New York, 177.2.0.2/31, sul circuito ExpressRoute negli Stati Uniti orientali.The first one is that you simply advertise your on-premises prefix for your Los Angeles office, 177.2.0.0/31, on the ExpressRoute circuit in US West and your on-premises prefix for your New York office, 177.2.0.2/31, on the ExpressRoute circuit in US East. Di conseguenza, Microsoft avrà un solo percorso per connettersi agli uffici del cliente.As a result, there is only one path for Microsoft to connect to each of your offices. Non esistono ambiguità e il routing risulta ottimizzato.There is no ambiguity and routing is optimized. Con questa progettazione è necessario considerare la strategia di failover.With this design, you need to think about your failover strategy. Nel caso di interruzione del percorso verso Microsoft tramite ExpressRoute, è necessario assicurarsi che Exchange Online possa comunque connettersi ai server locali.In the event that the path to Microsoft via ExpressRoute is broken, you need to make sure that Exchange Online can still connect to your on-premises servers.

La seconda soluzione consiste nel continuare ad annunciare entrambi i prefissi in entrambi i circuiti ExpressRoute e, inoltre, indicare qual è il prefisso vicino a un determinato ufficio.The second solution is that you continue to advertise both of the prefixes on both ExpressRoute circuits, and in addition you give us a hint of which prefix is close to which one of your offices. Poiché è supportata l'anteposizione di AS PATH in BGP, si può configurare AS PATH nel prefisso per determinare il routing.Because we support BGP AS Path prepending, you can configure the AS Path for your prefix to influence routing. In questo esempio si può estendere AS PATH per 172.2.0.0/31 negli Stati Uniti orientali, in modo che venga preferito il circuito ExpressRoute negli Stati Uniti occidentali per il traffico destinato a questo prefisso. La rete Microsoft considera infatti più breve il percorso per questo prefisso rispetto a quello negli Stati Uniti orientali.In this example, you can lengthen the AS PATH for 172.2.0.0/31 in US East so that we will prefer the ExpressRoute circuit in US West for traffic destined for this prefix (as our network will think the path to this prefix is shorter in the west). Allo stesso modo si può estendere AS PATH per 172.2.0.2/31 negli Stati Uniti occidentali, in modo che venga preferito il circuito ExpressRoute negli Stati Uniti orientali.Similarly you can lengthen the AS PATH for 172.2.0.2/31 in US West so that we'll prefer the ExpressRoute circuit in US East. Il routing è ottimizzato per entrambi gli uffici.Routing is optimized for both offices. Con questa progettazione, se un circuito ExpressRoute viene interrotto, Exchange Online può comunque raggiungere il cliente tramite un altro circuito ExpressRoute e la rete WAN.With this design, if one ExpressRoute circuit is broken, Exchange Online can still reach you via another ExpressRoute circuit and your WAN.

Importante

I numeri AS privati in AS PATH per i prefissi ricevuti su peering Microsoft vengono rimossi.We remove private AS numbers in the AS PATH for the prefixes received on Microsoft Peering. L'aggiunta di numeri AS pubblici in AS PATH è necessaria per determinare il routing per peering Microsoft.You need to append public AS numbers in the AS PATH to influence routing for Microsoft Peering.

Soluzione caso 2 ExpressRoute: anteporre AS PATH

Nota

Anche se gli esempi illustrati qui si riferiscono ai peer Microsoft e pubblici, le stesse funzionalità sono supportate per il peer privato.While the examples given here are for Microsoft and Public peerings, we do support the same capabilities for the Private peering. L'anteposizione di AS PATH funziona poi in un singolo circuito ExpressRoute, per determinare la selezione dei percorsi primari e secondari.Also, the AS Path prepending works within one single ExpressRoute circuit, to influence the selection of the primary and secondary paths.

Routing non ottimale tra reti virtualiSuboptimal routing between virtual networks

Con ExpressRoute, è possibile abilitare la comunicazione da rete virtuale a rete virtuale collegando le reti virtuali a un circuito ExpressRoute.With ExpressRoute, you can enable Virtual Network to Virtual Network (which is also known as "VNet") communication by linking them to an ExpressRoute circuit. Se vengono collegate a più circuiti ExpressRoute, il routing tra le reti virtuali può risultare non ottimale.When you link them to multiple ExpressRoute circuits, suboptimal routing can happen between the VNets. Si consideri ad esempioLet's consider an example. di avere due circuiti ExpressRoute, uno negli Stati Uniti occidentali e uno negli Stati Uniti orientali.You have two ExpressRoute circuits, one in US West and one in US East. In ogni area sono presenti due reti virtuali,In each region, you have two VNets. in una sono distribuiti i server Web e nell'altra i server applicazioni.Your web servers are deployed in one VNet and application servers in the other. A scopo di ridondanza, si collegano le due reti virtuali di ogni area sia al circuito ExpressRoute locale che al circuito ExpressRoute remoto.For redundancy, you link the two VNets in each region to both the local ExpressRoute circuit and the remote ExpressRoute circuit. Come illustrato di seguito, da ogni rete virtuale esistono due percorsi all'altra rete virtuale.As can be seen below, from each VNet there are two paths to the other VNet. Le reti virtuali non rilevano quale circuito ExpressRoute è locale e quale è invece remoto.The VNets don't know which ExpressRoute circuit is local and which one is remote. Di conseguenza, eseguendo il routing ECMP (Equal-Cost-Multi-Path) per il bilanciamento del carico del traffico tra reti virtuali, alcuni flussi di traffico seguono il percorso più lungo e vengono instradati sul circuito ExpressRoute remoto.Consequently as they do Equal-Cost-Multi-Path (ECMP) routing to load-balance inter-VNet traffic, some traffic flows will take the longer path and get routed at the remote ExpressRoute circuit.

Caso 3 ExpressRoute: routing non ottimale tra reti virtuali

Soluzione: assegnare un peso elevato alla connessione localeSolution: assign a high weight to local connection

La soluzione è semplice.The solution is simple. Dato che la posizione delle reti virtuali e dei circuiti è nota, è possibile indicare il percorso che dovrà essere preferito da ogni rete virtuale.Since you know where the VNets and the circuits are, you can tell us which path each VNet should prefer. Per questo esempio, in particolare, si assegna alla connessione locale un peso superiore rispetto alla connessione remota (vedere l'esempio di configurazione qui).Specifically for this example, you assign a higher weight to the local connection than to the remote connection (see the configuration example here). Quando una rete virtuale riceve un prefisso dell'altra rete virtuale su più connessioni, per l'invio del traffico destinato a tale prefisso preferisce la connessione con il peso più elevato.When a VNet receives the prefix of the other VNet on multiple connections it will prefer the connection with the highest weight to send traffic destined for that prefix.

Soluzione caso 3 ExpressRoute: assegnare un peso elevato alla connessione locale

Nota

Per determinare il routing dalla rete virtuale alla rete locale, se si hanno più circuiti ExpressRoute, è anche possibile configurare il peso di una connessione anziché anteporre AS PATH applicando la tecnica descritta nel secondo scenario riportato sopra.You can also influence routing from VNet to your on-premises network, if you have multiple ExpressRoute circuits, by configuring the weight of a connection instead of applying AS PATH prepending, a technique described in the second scenario above. Per ogni prefisso, per decidere come inviare il traffico verrà sempre esaminato il peso della connessione prima della lunghezza di AS PATH.For each prefix, we will always look at the connection weight before the AS Path length when deciding how to send traffic.