Introduzione
In questo documento viene descritto come il bilanciamento del carico funziona nelle funzionalità del software e delle piattaforme del router.
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Convenzioni
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Premesse
Il bilanciamento del carico è una funzionalità standard del software router Cisco IOS® ed è disponibile su tutte le piattaforme router. È inerente al processo di inoltro nel router e viene attivata automaticamente se la tabella di routing ha più percorsi per raggiungere una destinazione. È basato su protocolli di routing standard, quali RIP (Routing Information Protocol), RIPv2, EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) e IGRP (Interior Gateway Routing Protocol), o derivato da route configurate staticamente e meccanismi di inoltro pacchetti. Consente a un router di utilizzare più percorsi verso una destinazione quando inoltra i pacchetti.
Bilanciamento del carico
Quando un router apprende più route verso una rete specifica tramite più processi di routing (o protocolli di routing, ad esempio RIP, RIPv2, IGRP, EIGRP e OSPF), installa la route con la distanza amministrativa più bassa nella tabella di routing. per ulteriori informazioni, fare riferimento a Selezione router in Cisco Router.
A volte il router deve selezionare un percorso tra quelli individuati tramite lo stesso processo di routing e alla stessa distanza amministrativa. In questo caso, il router sceglie il percorso con il costo (o la metrica) più basso per raggiungere la destinazione. Ogni processo di routing calcola i costi in modo diverso e talvolta è necessario manipolarli per ottenere il bilanciamento del carico.
Se il router riceve e installa più percorsi con la stessa distanza amministrativa e lo stesso costo per una destinazione, è possibile che si verifichi il bilanciamento del carico. Il numero di percorsi utilizzati è limitato dal numero di voci inserite dal protocollo di routing nella tabella di routing. Quattro voci sono l'impostazione predefinita in Cisco IOS per la maggior parte dei protocolli di routing IP, ad eccezione del Border Gateway Protocol (BGP), dove una voce è l'impostazione predefinita. Il numero massimo è costituito da sei percorsi diversi configurati.
I processi di routing IGRP ed EIGRP supportano inoltre un bilanciamento del carico di costo diverso. Per ottenere un bilanciamento del carico diverso, è possibile utilizzare il comando variance con i protocolli IGRP e EIGRP. Usare il comando maximum-paths per determinare il numero di route che possono essere installate in base al valore configurato per il protocollo. Se si imposta la tabella di routing su una voce, il bilanciamento del carico viene disattivato. Per ulteriori informazioni sulla varianza, fare riferimento a Funzionamento di Bilanciamento del carico del percorso con costo diseguale (varianza) in IGRP e EIGRP? (informazioni in lingua inglese).
Per individuare le route con costi uguali, è in genere possibile utilizzare il comando show ip route. Nell'esempio successivo viene mostrato l'output del comando show ip route su una subnet specifica con più route. Sono disponibili due blocchi descrittori di routing. Ogni blocco è costituito da un percorso. Accanto a una delle voci del blocco è inoltre presente un asterisco (*). Corrisponde al percorso attivo utilizzato per il nuovo traffico. Il termine "nuovo traffico" corrisponde a un singolo pacchetto o a un intero flusso verso una destinazione, in base al tipo di commutazione configurato.
-
Per la commutazione di contesto: il bilanciamento del carico si basa sul singolo pacchetto e l'asterisco (*) indica l'interfaccia a cui deve essere inviato il pacchetto successivo.
-
Per la commutazione rapida: il bilanciamento del carico si basa sulla singola destinazione e l'asterisco (*) indica l'interfaccia a cui deve essere inviato il successivo flusso basato sulla destinazione.
La posizione dell'asterisco (*) continua a ruotare tra percorsi dei costi uguali ogni volta che viene fornito un pacchetto/flusso.
M2515-B#show ip route 10.0.0.0
Routing entry for 10.0.0.0/8
Known via "rip", distance 120, metric 1
Redistributing via rip
Advertised by rip (self originated)
Last update from 192.168.75.7 on Serial1, 00:00:00 ago
Routing Descriptor Blocks:
* 192.168.57.7, from 192.168.57.7, 00:00:18 ago, via Serial0
Route metric is 1, traffic share count is 1
192.168.75.7, from 192.168.75.7, 00:00:00 ago, via Serial1
Route metric is 1, traffic share count is 1
Load balancing per destinazione e per pacchetto
È possibile impostare il bilanciamento del carico in modo che funzioni per destinazione o per pacchetto. Per bilanciamento del carico per destinazione si intende la distribuzione da parte del router dei pacchetti in base all'indirizzo di destinazione. Dati due percorsi alla stessa rete, tutti i pacchetti per destination1 su quella rete passano attraverso il primo percorso, tutti i pacchetti per destination2 su quella rete passano attraverso il secondo percorso, e così via. In questo modo viene preservato l'ordine dei pacchetti, con un potenziale utilizzo impari dei link. Se un host riceve la maggior parte del traffico, tutti i pacchetti utilizzano un solo collegamento, lasciando inutilizzata la larghezza di banda degli altri collegamenti. Un numero maggiore di indirizzi di destinazione porta a collegamenti utilizzati in modo più uniforme. Per ottenere collegamenti usati in modo più equo, usare il software Cisco IOS per creare una voce route-cache per ogni indirizzo di destinazione, anziché per ogni rete di destinazione, come accade quando esiste un solo percorso. Pertanto, il traffico per host diversi sulla stessa rete di destinazione può utilizzare percorsi diversi. Lo svantaggio di questo approccio è che per i router della backbone core che trasportano traffico per migliaia di host di destinazione, i requisiti di memoria ed elaborazione per mantenere la cache diventano una sfida.
Il bilanciamento del carico per pacchetto indica che il router invia un pacchetto per destination1 sul primo percorso, il secondo pacchetto per destination1 (lo stesso) sul secondo percorso, e così via. Il bilanciamento del carico per pacchetto garantisce lo stesso carico su tutti i collegamenti. Tuttavia, esiste la possibilità che i pacchetti arrivino non ordinati a destinazione perché nella rete può esistere un ritardo differenziale. Nel software Cisco IOS, ad eccezione della versione 11.1CC, il bilanciamento del carico per pacchetto disabilita l'accelerazione di inoltro tramite una cache route, in quanto le informazioni della cache route includono l'interfaccia in uscita. Per il bilanciamento del carico per pacchetto, il processo di inoltro determina l'interfaccia in uscita per ogni pacchetto quando cerca la tabella di routing e sceglie l'interfaccia meno utilizzata. Ciò assicura un utilizzo uniforme dei collegamenti, ma è un'attività a elaborazione intensiva e influisce sulle prestazioni complessive dell'inoltro. Questa forma di bilanciamento del carico per pacchetto non è adatta per le interfacce a velocità più elevata.
Il bilanciamento del carico per destinazione o per pacchetto dipende dal tipo di schema di commutazione utilizzato per i pacchetti IP. Per impostazione predefinita, sulla maggior parte dei router Cisco, la commutazione veloce è abilitata nelle interfacce. Si tratta di uno schema di caching della domanda che esegue il bilanciamento del carico per destinazione. Per impostare il bilanciamento del carico per pacchetto, abilitare la commutazione di contesto (o disabilitare la commutazione veloce), utilizzare i seguenti comandi:
Router#configure terminal
Router(config)#interface Ethernet 0
Router(config-if)#no ip route-cache
Router(config-if)#^Z
Ora la CPU del router analizza ogni singolo pacchetto e bilanciamento del carico sul numero di route nella tabella di routing per la destinazione. Ciò può causare il blocco di un router di fascia bassa perché la CPU deve eseguire tutte le operazioni di elaborazione. Per riattivare l'opzione di commutazione veloce, utilizzare i seguenti comandi:
Router#configure terminal
Router(config)#interface Ethernet 0
Router(config-if)#ip route-cache
Router(config-if)#^Z
Gli schemi di switching più recenti, ad esempio Cisco Express Forwarding(CEF), consentono di eseguire più rapidamente il bilanciamento del carico per pacchetto e per destinazione. Tuttavia, significa che avete le risorse extra per mantenere le voci CEF e adiacenza.
Quando si lavora con il CEF, ci si potrebbe chiedere: chi fa il bilanciamento del carico, il CEF o il protocollo di routing utilizzato? Il modo in cui funziona il CEF è che il CEF cambia il pacchetto in base alla tabella di routing compilata dai protocolli di routing, come l'EIGRP. In breve, il CEF esegue il bilanciamento del carico una volta calcolata la tabella del protocollo di routing.
per ulteriori informazioni sul load balancing CEF, fare riferimento a Risoluzione dei problemi di load balancing su collegamenti paralleli tramite Cisco Express Forwarding e Load Balancing con CEF.
Nei documenti seguenti vengono fornite ulteriori informazioni su come i vari protocolli selezionano il percorso migliore, calcolano i costi per determinate destinazioni e su come eseguono il bilanciamento del carico quando vengono applicati.
Informazioni correlate