Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Convenzioni

Premesse

Che Cos'È Il Bilanciamento Del Carico?

Prima di Cisco Express Forwarding - Raccolta di più percorsi o route

Configurazione della condivisione del carico di inoltro Cisco Express

Meccanismi interni di bilanciamento del carico di inoltro Cisco Express

Verifica del bilanciamento del carico di inoltro Cisco Express

Carica condivisione dopo una modifica del collegamento

Informazioni di condivisione del carico da eliminare

Problemi noti

Supporto hardware per Cisco Express Forwarding Load Balancing

Informazioni correlate

Discussioni correlate nella Cisco Support Community

Introduzione

Questo documento spiega come Cisco IOS? Quando si utilizza Cisco Express Forwarding, il software implementa il bilanciamento del carico di layer 3 su più collegamenti paralleli.

Prerequisiti

Requisiti

Questo documento presuppone la comprensione delle due strutture di dati di Cisco Express Forwarding.

- Forwarding Information Base (FIB)

- Tabella adiacenze

Per una panoramica sul funzionamento di Cisco Express Forwarding, vedere la sezione "Informazioni correlate" di 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

Lo switching IP è il meccanismo interno utilizzato da Cisco IOS per inoltrare i pacchetti tramite un router. I meccanismi disponibili includono la commutazione di processo, la commutazione rapida e Cisco Express Forwarding. A seconda di quale dei tre meccanismi viene utilizzato per commutare la maggior parte dei pacchetti, le prestazioni complessive del sistema e il bilanciamento del carico vengono influenzati.

I meccanismi di switching IP supportano due modalità generali, per pacchetto e per destinazione. Nella tabella seguente vengono descritti i vantaggi e gli svantaggi di entrambe le modalità.

Per destinazione

Per pacchetto

Meccanismo di switching IP

Switching rapido e Cisco Express Forwarding per destinazione.

Switching di processo e Cisco Express Forwarding per pacchetto.

Vantaggi

Con l'opzione di commutazione veloce, si garantisce che i pacchetti per una determinata destinazione prendano lo stesso percorso anche se sono disponibili più percorsi. Con la commutazione Cisco Express Forwarding, si garantisce che i pacchetti per una determinata coppia host origine-destinazione prendano lo stesso percorso, anche se sono disponibili più percorsi. Il traffico destinato a coppie diverse tende a seguire percorsi diversi.

L'utilizzo dei percorsi con il bilanciamento del carico per pacchetto è valido perché il bilanciamento del carico per pacchetto consente al router di inviare pacchetti di dati successivi sui percorsi senza tenere conto dei singoli host o delle sessioni utente. Utilizza il metodo round robin per determinare il percorso di ciascun pacchetto verso l'indirizzo di destinazione

Svantaggi

Con l'opzione di commutazione veloce, il passaggio a una destinazione può determinare una condivisione del carico diversa, in quanto i pacchetti verso una destinazione seguono sempre lo stesso percorso. La commutazione di Cisco Express Forwarding può causare una distribuzione ineguale con un numero ridotto di coppie origine-destinazione. il bilanciamento del carico per destinazione dipende dalla distribuzione statistica del traffico; la condivisione del carico diventa più efficace con l'aumentare del numero di coppie origine-destinazione.

I pacchetti per una determinata coppia host origine-destinazione potrebbero prendere percorsi diversi, introducendo il riordino dei pacchetti. Questa opzione non è consigliata per i flussi VoIP (Voice over IP) e altri flussi che richiedono la consegna in sequenza.

Che Cos'È Il Bilanciamento Del Carico?

Il bilanciamento del carico descrive la capacità di un router di trasmettere i pacchetti a un indirizzo IP di destinazione (noto anche come prefisso IP) su più percorsi.

Quando si parla di bilanciamento del carico, è innanzitutto necessario definire i termini seguenti.

Termine

Definizione

Prefisso

Descrive una rete IP di destinazione, ad esempio 192.16.10.0/24. Cisco IOS aggiunge un prefisso IP di destinazione alla tabella di routing utilizzando le informazioni ottenute scambiando messaggi con un protocollo di routing dinamico o configurando manualmente le route statiche.

Percorso

Descrive una route valida per raggiungere un prefisso di destinazione. Cisco IOS assegna un costo a ciascun percorso. Un insieme di percorsi attivi di un prefisso di destinazione può avere costi uguali o diversi.

Sessione

Descrive un flusso di comunicazione unidirezionale tra due nodi IP. Tutti i pacchetti di una sessione utilizzano lo stesso indirizzo IP di origine e di destinazione.

Per ulteriori informazioni, vedere Funzionamento del bilanciamento del carico

Prima di Cisco Express Forwarding - Raccolta di più percorsi o route

Cisco Express Forwarding utilizza le informazioni sul percorso nella tabella di routing IP per bilanciare il traffico su più collegamenti. Per questo motivo, per verificare che il bilanciamento del carico di Cisco Express Forwarding sia corretto, iniziare con la conferma del contenuto della tabella di routing IP.

Nella topologia seguente, due router, il router A e il router B, si connettono in modalità back-to-back su tre interfacce seriali con incapsulamento HDLC (High-Level Data Link Control).

Router A

Router B

interface Ethernet 0

ip address  192.168.20.1 255.255.255.0

!

interface Serial1

ip address 10.10.10.1 255.255.255.0

!

interface Serial2

ip address 20.20.20.1 255.255.255.0

!

interface Serial3

ip address 30.30.30.1 255.255.255.0

ip ospf cost 100

!

router ospf 1

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

network 30.30.30.0 0.0.0.255 area 0

network 192.168.20.0 0.0.0.255 area 0

interface Serial1

ip address 10.10.10.2 255.255.255.0

clockrate 2000000

!

interface Serial2

ip address 20.20.20.2 255.255.255.0

clockrate 148000

!

interface Serial3

ip address 30.30.30.2 255.255.255.0

ip ospf cost 100

clockrate 148000

router ospf 1

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

network 30.30.30.0 0.0.0.255 area 0

maximum-paths 1

Osserviamo come il router B seleziona uno o più percorsi per raggiungere l'interfaccia Ethernet del router A con la rete IP 192.168.20.0.

- Per impostazione predefinita, Open Shortest Path First (OSPF) supporta quattro percorsi a costo uguale verso una destinazione. In questo scenario, il router B è configurato con un numero massimo di percorsi pari a uno. Pertanto, il router B sceglierà solo un percorso tra i possibili percorsi uguali in base al primo percorso ricevuto. Il router B inizia selezionando Serial 2 come percorso singolo della rete 192.168.20.0. Usare i comandi show ip cef e show ip route per visualizzare il set di percorsi corrente.

RouterB#show ip cef  192.168.20.0

192.168.20.0/24, version 59, cached adjacency to Serial2

0 packets, 0 bytes

via 20.20.20.1, Serial2, 0 dependencies

next hop 20.20.20.1, Serial2

valid cached adjacency

RouterB#show ip route  192.168.20.0

Routing entry for  192.168.20.0/24

Known via "ospf 1", distance 110, metric 74, type intra area

Redistributing via ospf 1

Last update from 20.20.20.1 on Serial2, 00:03:58 ago

Routing Descriptor Blocks:

* 20.20.20.1, from 204.204.204.1, 00:03:58 ago, via Serial2

Route metric is 74, traffic share count is 1

- Utilizzare il comando maximum-paths in OSPF per consentire più percorsi alla tabella di routing. OSPF consente solo un bilanciamento del carico uguale. Per configurare una condivisione del carico non uniforme, configurare il protocollo EIGRP/IGRP (Enhanced Interior Gateway Routing Protocol/Interior Gateway Routing Protocol) come protocollo IGP (Interior Gateway Protocol). Vedere Funzionamento di Bilanciamento del carico di percorsi diversi (scostamento) in IGRP e EIGRP. per ulteriori informazioni.

RouterB(config)#router ospf 1

RouterB(config-router)#maximum-paths ?

<1-6>  Number of paths

RouterB(config-router)#maximum-paths 3

- Utilizzare il comando show ip route per verificare che la tabella di routing contenga due percorsi di 192.168.20.0.

RouterB#show ip route  192.168.20.0

Routing entry for  192.168.20.0/24

Known via "ospf 1", distance 110, metric 74, type intra area

Redistributing via ospf 1

Last update from 10.10.10.1 on Serial1, 00:00:11 ago

Routing Descriptor Blocks:

* 20.20.20.1, from 204.204.204.1, 00:00:11 ago, via Serial2

Route metric is 74, traffic share count is 1

10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1

Route metric is 74, traffic share count is 1

!--- The route metric is 74 for both paths.

- Sebbene sia stata configurata la funzione OSPF in modo da supportare tre percorsi con costi uguali, nell'output di show ip route vengono visualizzati solo due percorsi attivi. Per determinarne la causa, è possibile usare il comando show ip ospf interface. Serial 3 ha un costo più alto rispetto a Serial 1 e Serial 2, ed è quindi diverso.

RouterB#show ip ospf interface s1

Serial1 is up, line protocol is up

Internet Address 10.10.10.4/24, Area 0

Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64

RouterB#show ip ospf interface s2

Serial2 is up, line protocol is up

Internet Address 20.20.20.2/24, Area 0

Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64

RouterB#show ip ospf interface s3

Serial3 is up, line protocol is up

Internet Address 30.30.30.2/24, Area 0

Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 100

- Utilizzare il comando show run per confermare se Serial 3 è configurato con il comando ip ospf cost 100. Usare il comando sottointerfaccia no ip ospf cost 100 per rimuoverla dalla configurazione e rendere uguali i costi su tutti e tre i collegamenti seriali.

RouterB#show run interface s3

Building configuration...

Current configuration:

!

interface Serial3

ip address 30.30.30.2 255.255.255.0

no ip directed-broadcast

ip ospf cost 100

ip ospf interface-retry 0

- Il comando show ip route visualizza ora tre percorsi costo uguali alla rete 192.168.20.0.

RouterB#show ip route  192.168.20.0

Routing entry for  192.168.20.0/24

Known via "ospf 1", distance 110, metric 74, type intra area

Redistributing via ospf 1

Last update from 10.10.10.1 on Serial1, 00:00:01 ago

Routing Descriptor Blocks:

* 20.20.20.1, from 204.204.204.1, 00:00:01 ago, via Serial2

Route metric is 74, traffic share count is 1

30.30.30.1, from 204.204.204.1, 00:00:01 ago, via Serial3

Route metric is 74, traffic share count is 1

10.10.10.1, from 204.204.204.1, 00:00:01 ago, via Serial1

Route metric is 74, traffic share count is

Di seguito viene illustrato come il bilanciamento del carico di Cisco Express Forwarding utilizza le informazioni nella tabella di routing per inoltrare i pacchetti.

Configurazione della condivisione del carico di inoltro Cisco Express

Cisco Express Forwarding esegue il bilanciamento del carico tramite l'utilizzo della tabella di condivisione del carico. Come per tutte le altre soluzioni di bilanciamento del carico sui router Cisco, la decisione di bilanciamento del carico viene presa sulle interfacce in uscita. A differenza di altri metodi di commutazione, Cisco Express Forwarding tiene traccia dei percorsi in base all'indirizzo di origine e di destinazione. Per semplificare questa operazione, è possibile affermare che il percorso è una sessione IP e che ogni sessione è identificata logicamente come una coppia univoca di indirizzi di origine e destinazione.

Per comprendere come viene eseguito il bilanciamento del carico, è innanzitutto necessario verificare le relazioni tra le tabelle. La tabella Cisco Express Forwarding punta a 16 bucket di hash (tabella di condivisione del carico), che puntano alla tabella adiacente per i percorsi paralleli. Per ulteriori informazioni, vedere la sezione Meccanismi interni di bilanciamento del carico di Cisco Express Forwarding. Ciascun pacchetto da commutare viene suddiviso nella coppia di indirizzi di origine e di destinazione e confrontato con la tabella di condivisione del carico.

Nota: sono disponibili due tipi principali di switching di inoltro Cisco Express, per destinazione e per pacchetto. Se entrambi i tipi sono in uso su un router, ciascun tipo dispone della propria tabella di condivisione del carico.

Il bilanciamento del carico per destinazione consente al router di utilizzare più percorsi per ottenere la condivisione del carico. Il bilanciamento del carico per destinazione è abilitato per impostazione predefinita quando si abilita Cisco Express Forwarding ed è il metodo di bilanciamento del carico preferito nella maggior parte delle situazioni. Poiché il bilanciamento del carico per destinazione dipende dalla distribuzione statistica del traffico, la condivisione del carico diventa più efficace con l'aumentare del numero di coppie origine-destinazione.

Il bilanciamento del carico per pacchetto consente al router di inviare pacchetti di dati successivi su percorsi diversi a prescindere dagli host o dalle sessioni utente. Utilizza il metodo round robin per determinare il percorso di ciascun pacchetto verso la destinazione. Il bilanciamento del carico per pacchetto garantisce il bilanciamento su più collegamenti. L'utilizzo dei percorsi con il bilanciamento del carico per pacchetto è buono, ma i pacchetti per una determinata coppia host origine-destinazione potrebbero utilizzare percorsi diversi, causando il riordino dei pacchetti. Per questo motivo, il bilanciamento del carico per pacchetto non è appropriato per alcuni tipi di traffico di dati, ad esempio il VoIP, che dipendono dai pacchetti in arrivo a destinazione in sequenza. Utilizzare il bilanciamento del carico per pacchetto per evitare che un percorso per una singola coppia origine-destinazione diventi sovraccarico.

Per passare dal metodo per pacchetto a quello per destinazione, usare il comando ip load-sharing.

7200-1.3(config)#interface fast 0/0

7200-1.3(config-if)#ip load-sharing ?

per-destination  Deterministic distribution

per-packet       Random distribution

7200-1.3(config-if)#ip load-sharing per-packet

Utilizzare il comando show cef interface per confermare le modifiche.

7200-1.3#show cef interface fast 0/0

FastEthernet0/0 is up (if_number 3)

Corresponding hwidb fast_if_number 3

Corresponding hwidb firstsw->if_number 3

Internet address is 172.16.81.13/24

ICMP redirects are always sent

Per packet load-sharing is enabled

IP unicast RPF check is disabled

Inbound access list is not set

Outbound access list is not set

IP policy routing is disabled

Hardware idb is FastEthernet0/0

Fast switching type 1, interface type 18

IP CEF switching enabled

IP Feature Fast switching turbo vector

IP Feature CEF switching turbo vector

Input fast flags 0x0, Output fast flags 0x0

ifindex 1(1)

Slot 0 Slot unit 0 VC -1

Transmit limit accumulator 0x0 (0x0)

IP MTU 1500

Meccanismi interni di bilanciamento del carico di inoltro Cisco Express

Per prima cosa, occorre scomporre il meccanismo interno alla base del bilanciamento del carico di Cisco Express Forwarding.

- Ogni sessione (vedere la tabella precedente) viene assegnata a un percorso attivo.

- L'assegnazione da sessione a percorso viene eseguita utilizzando una funzione hash che accetta gli indirizzi IP di origine e di destinazione e, nelle versioni più recenti di Cisco IOS, un ID hash univoco che casualizza l'assegnazione nel percorso end-to-end.

- I percorsi attivi vengono assegnati internamente a diversi dei 16 bucket di hash. L'assegnazione da percorso a bucket varia in base al tipo di bilanciamento del carico e al numero di percorsi attivi.

- Il risultato della funzione hash viene utilizzato per scegliere uno dei bucket abilitati e quindi il percorso da utilizzare per la sessione.

- Per tutte le sessioni inoltrate dal router, ogni percorso attivo porta lo stesso numero di sessioni.

Guardiamo un esempio di questi internal di inoltro Cisco Express.

1. Utilizzare il comando maximum-paths per ridurre a due il numero di percorsi attivi per il prefisso di destinazione.

RouterB(config)#router ospf 1

RouterB(config-router)#maximum-paths 2

2. Utilizzare il comando show ip cef {prefix} internal per visualizzare l'assegnazione da percorso a bucket.

RouterB#show ip cef  192.168.20.0 internal

192.168.20.0/24, version 66, per-destination sharing

0 packets, 0 bytes

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 30.30.30.1, Serial3, 0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

0 packets, 0 bytes switched through the prefix

Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 1)

!--- The load distribution line summarizes how each path is !--- assigned to the hash buckets.

Hash  OK  Interface                 Address         Packets

1     Y   Serial2                   point2point           0

2     Y   Serial3                   point2point           0

3     Y   Serial2                   point2point           0

4     Y   Serial3                   point2point           0

5     Y   Serial2                   point2point           0

6     Y   Serial3                   point2point           0

7     Y   Serial2                   point2point           0

8     Y   Serial3                   point2point           0

9     Y   Serial2                   point2point           0

10    Y   Serial3                   point2point           0

11    Y   Serial2                   point2point           0

12    Y   Serial3                   point2point           0

13    Y   Serial2                   point2point           0

14    Y   Serial3                   point2point           0

15    Y   Serial2                   point2point           0

16    Y   Serial3                   point2point

I 16 bucket di hash vengono impostati in base al tipo di bilanciamento del carico e al numero di percorsi attivi. Il caso più semplice riguarda un numero pari di percorsi. I 16 bucket sono riempiti uniformemente con i percorsi attivi. Se 16 non è divisibile per il numero di percorsi attivi, gli ultimi bucket che rappresentano il resto vengono disattivati. Nella tabella seguente viene illustrato l'aspetto dei bucket di hash per due e tre percorsi attivi.

Bucket/Percorsi

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

2

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

3

0

1

2

0

1

2

0

1

2

0

1

2

0

1

2

x

Nell'esempio seguente sono disponibili tre percorsi per raggiungere la destinazione. Si noti come Cisco Express Forwarding abbia rimosso il bucket di hash 16 e come i tre collegamenti seriali siano assegnati uniformemente ai bucket di hash da 1 a 15.

RouterB#show ip cef  192.168.20.0 interface

192.168.20.0/24, version 64, per-destination sharing

0 packets, 0 bytes

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 30.30.30.1, Serial3, 0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

0 packets, 0 bytes switched through the prefix

Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)

!--- The active paths are assigned to hash buckets in a !--- round-robin pattern.

Hash  OK  Interface                 Address         Packets

1     Y   Serial2                   point2point           0

2     Y   Serial3                   point2point           0

3     Y   Serial1                   point2point           0

4     Y   Serial2                   point2point           0

5     Y   Serial3                   point2point           0

6     Y   Serial1                   point2point           0

7     Y   Serial2                   point2point           0

8     Y   Serial3                   point2point           0

9     Y   Serial1                   point2point           0

10    Y   Serial2                   point2point           0

11    Y   Serial3                   point2point           0

12    Y   Serial1                   point2point           0

13    Y   Serial2                   point2point           0

14    Y   Serial3                   point2point           0

15    Y   Serial1                   point2point           0

!--- Hash bucket 16 has been removed.

Nota: anche se selezionano un singolo percorso per una destinazione, i meccanismi di inoltro rapido e di commutazione veloce di Cisco Express differiscono nella modalità di selezione del percorso. Cisco Express Forwarding considera sia gli indirizzi IP di origine che di destinazione, mentre l'opzione di commutazione veloce considera solo l'indirizzo IP di destinazione.

Verifica del bilanciamento del carico di inoltro Cisco Express

Per verificare il bilanciamento del carico di Cisco Express Forwarding sul router, attenersi alla procedura seguente.

1. Verificare che Cisco Express Forwarding sia abilitato a livello globale sul router.

S3-4K-2#show ip cef

%CEF not running

Prefix                      Next Hop                     Interface

!--- This output shows Cisco Express Forwarding is not enabled. !--- Use ip cef command in global configuration to enable it.

2. Verificare che la commutazione per pacchetto o per destinazione sia abilitata sulle interfacce in uscita specifiche. Il valore predefinito è per destinazione.

RouterA#show cef interface s1

Serial1 is up (if_number 3)

Internet address is 10.10.10.1/24

ICMP redirects are always sent

Per packet loadbalancing is disabled

IP unicast RPF check is disabled

Inbound access list is not set

Outbound access list is not set

Interface is marked as point to point interface

Hardware idb is Serial1

Fast switching type 4, interface type 40

IP CEF switching enabled

!--- Cisco Express Forwarding is enabled on the interface.

IP CEF Fast switching turbo vector

Input fast flags 0x0, Output fast flags 0x0

ifindex 5(5)

Slot 0 Slot unit 1 VC -1

Transmit limit accumulator 0x0 (0x0)

IP MTU 1500

3. Verificare che la tabella di routing e la tabella di inoltro Cisco Express contengano tutti i percorsi paralleli utilizzando il comando show ip route.

RouterB#show ip route 192.168.20.0

Routing entry for 192.168.20.0/32, 1 known subnets

O       192.168.20.1 [110/65] via 20.20.20.1, 00:06:54, Serial1

[110/65] via 10.10.10.1, 00:06:54, Serial2

[110/65] via 30.30.30.1, 00:06:54, Serial3

4. Controllare Cisco Express Forwarding FIB con il comando show ip cef.

RouterB#show ip cef 192.168.20.0

192.168.20.0/24, version 18, per-destination sharing

0 packets, 0 bytes

via 30.30.30.1, Serial3,   0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

0 packets, 0 bytes switched through the prefix

tmstats: external 0 packets, 0 bytes

internal 0 packets, 0 bytes

RouterB#show ip cef 192.168.20.0 internal

192.168.20.0/24, version 18, per-destination sharing

0 packets, 0 bytes

via 30.30.30.1, Serial3, 0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

0 packets, 0 bytes switched through the prefix

tmstats: external 0 packets, 0 bytes

internal 0 packets, 0 bytes

Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)

Hash  OK  Interface                 Address         Packets

1     Y   Serial3                   point2point           0

2     Y   Serial2                   point2point           0

3     Y   Serial1                   point2point           0

4     Y   Serial3                   point2point           0

5     Y   Serial2                   point2point           0

6     Y   Serial1                   point2point           0

7     Y   Serial3                   point2point           0

8     Y   Serial2                   point2point           0

9     Y   Serial1                   point2point           0

10    Y   Serial3                   point2point           0

11    Y   Serial2                   point2point           0

12    Y   Serial1                   point2point           0

13    Y   Serial3                   point2point           0

14    Y   Serial2                   point2point           0

15    Y   Serial1                   point2point           0

Nota: la tabella di condivisione del carico sopra riportata mostra la distribuzione del carico 0 1 2 0 1 2 . . . e la condivisione del traffico è 1 per ogni route. Ciò significa che il costo per destinazione e la ripartizione del carico sono uguali per tre percorsi di costo uguale.

5. Controllare le adiacenze di Cisco Express Forwarding.

RouterB#show adjacency detail

Protocol Interface                 Address

IP       Serial1                   point2point(11)

0 packets, 0 bytes

0F000800

CEF   expires: 00:02:31

refresh: 00:00:31

IP       Serial2                   point2point(11)

0 packets, 0 bytes

0F000800

CEF   expires: 00:02:31

refresh: 00:00:31

IP       Serial3                   point2point(11)

0 packets, 0 bytes

0F000800

CEF   expires: 00:02:31

refresh: 00:00:31

6. Verificare che il meccanismo di bilanciamento del carico previsto di Cisco Express Forwarding sia configurato su tutte le interfacce in uscita.

RouterB#show ip cef  192.168.20.0

192.168.20.0/24, version 89, per-destination sharing

0 packets, 0 bytes

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

[output omitted]

7. Abilitare l'accounting bucket di hash per raccogliere statistiche e comprendere meglio i modelli di inoltro Cisco Express nella rete. È possibile, ad esempio, raccogliere informazioni quali il numero di pacchetti e byte passati a una destinazione o il numero di pacchetti passati attraverso una destinazione. Utilizzare il comando seguente:

router(config)# ip cef accounting load-balance-hash

Verificare il flusso del pacchetto osservando i valori nel campo Pacchetto.

RouterB#show ip cef 192.168.20.0 internal

[...]

Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)

Hash  OK  Interface                 Address         Packets

1     Y   Serial                    point2point           0

2     Y   Serial2                   point2point           0

3     Y   Serial1                   point2point           0

4     Y   Serial3                   point2point           0

5     Y   Serial2                   point2point          35

6     Y   Serial1                   point2point           0

7     Y   Serial3                   point2point           0

8     Y   Serial2                   point2point          60

9     Y   Serial1                   point2point           0

10    Y   Serial3                   point2point           0

11    Y   Serial2                   point2point           0

12    Y   Serial1                   point2point           0

13    Y   Serial3                   point2point           0

14    Y   Serial2                   point2point          30

15    Y   Serial1                   point2point           0

125 pacchetti passati attraverso il numero di serie 2. Se si usa ping per generare il traffico, verificare che i pacchetti ping debbano transitare sul router Cisco Express Forwarding-switched. In altre parole, i pacchetti ping devono entrare da un'interfaccia Cisco Express Forwarding-switched, essere Cisco Express Forwarding-switched e uscire da un'altra interfaccia Cisco Express Forwarding-switched.

Nota: la condivisione del carico per destinazione diventa più efficace con l'aumento del numero di coppie origine-destinazione.

8. Durante l'invio del traffico al prefisso, acquisire diversi output del comando show interface. Analizzare i valori "txload" e "rxload". (Alcune interfacce visualizzano un unico valore di "carico", che considera sia la trasmissione che la ricezione). Sebbene il bilanciamento del carico per pacchetto fornisca una distribuzione uniforme nel numero di pacchetti, i collegamenti paralleli possono presentare una percentuale leggermente diversa a seconda delle dimensioni del pacchetto.

Serial1/0:0 is up, line protocol is up

reliability 255/255, txload 10/255, rxload 3/255

Serial1/1:0 is up, line protocol is up

reliability 255/255, txload 18/255, rxload 3/255

9. Con il bilanciamento del carico per destinazione di Cisco Express Forwarding, è possibile determinare il percorso a cui è assegnata una sessione con il comando seguente. Aggiungere la parola chiave internal per visualizzare il bucket di hash utilizzato.

show ip cef exact-route {source-ip-address} {dest-ip-address} [internal]

RouterB# show ip cef exact-route 50.50.50.2 192.168.20.1  internal

50.50.50.2      -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 4 from 15, total 3 paths

RouterB# show ip cef exact-route 5.5.5.1 192.168.20.1  internal

5.5.5.1         ->192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 7 from 15, total 3 paths

RouterB# show ip cef exact-route 6.6.6.1 192.168.20.1  internal

6.6.6.1         -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 7 from 15, total 3 paths

RouterB# show ip cef exact-route 8.8.8.1 192.168.20.1  internal

8.8.8.1         -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 13 from 15, total 3 paths

10. Se l'output appare irregolare, considerare quanto segue:

- Numero di coppie o sessioni di indirizzi univoche di origine e destinazione che attraversano i collegamenti paralleli.

- Il numero e le dimensioni dei pacchetti in ciascuna sessione. Una sessione dispone di un numero elevato di pacchetti? Il bilanciamento del carico per destinazione dipende dalla distribuzione statistica del traffico e diventa più efficace con l'aumentare del numero di coppie origine-destinazione.

Carica condivisione dopo una modifica del collegamento

Quando una modifica della tabella di routing regola il numero di percorsi attivi verso una destinazione, Cisco Express Forwarding aggiorna le strutture di bilanciamento del carico visualizzate nell'output del comando show ip cef {prefix} interno. Cisco Express Forwarding confronta quindi i nuovi pacchetti in arrivo con un'adiacenza e un bucket di hash corrispondente. Il periodo fisso selezionato può essere o non essere uguale a quello utilizzato in precedenza.

I passaggi seguenti descrivono il modo in cui le informazioni sul bilanciamento del carico di Cisco Express Forwarding vengono aggiornate dopo una modifica del numero di percorsi attivi di un prefisso di destinazione.

1. Si supponga che un prefisso di destinazione sia raggiungibile attraverso due percorsi. Il percorso 1 è inattivo, il percorso 2 è attivo e supporta tutto il traffico.

2. Quando il percorso 1 è nuovamente disponibile, richiede i processi di riconvergenza del routing IP.

3. Cisco Express Forwarding ora bilancia il carico su entrambi i percorsi e non mantiene i flussi esistenti sul percorso 2. In questo modo, il percorso 1 rimarrebbe inutilizzato. In altre parole, Cisco Express Forwarding non considera di poter inoltrare i pacchetti per una sessione su un percorso valido e può selezionare un nuovo percorso per un flusso a seconda del bucket di hash selezionato.

Informazioni di condivisione del carico da eliminare

Dopo una modifica nella tabella di routing, Cisco Express Forwarding elimina e quindi ricostruisce le strutture di bilanciamento del carico che assegnano i percorsi attivi ai bucket di hash. Durante il processo di ricostruzione, alcuni pacchetti potrebbero essere persi e il comando show ip cef {prefix}internal indica le informazioni sulla condivisione del carico da eliminare.

router#show ip cef 10.10.128.0 int

10.10.128.0/28, version 63, per-destination sharing

0 packets, 0 bytes

via 10.8.0.31, 0 dependencies, recursive

next hop 10.8.2.49, POS0/0/0

valid adjacency

Load sharing information due for deletion

Le modifiche implementate con l'ID bug Cisco CSCdm87127 riducono al minimo la perdita di pacchetti durante una modifica del numero di percorsi attivi per la route predefinita 0.0.0. In particolare, Cisco Express Forwarding alloca ora una voce FIB con spazio per i percorsi attivi massimi possibili per questa route.

Problemi noti

Il bilanciamento del carico di Cisco Express Forwarding non è uguale su quattro percorsi. Per ulteriori informazioni, fare riferimento a CSCdm87756 (solo utenti registrati).

Nelle versioni di Cisco IOS precedenti alla 12.0(16)S, l'immissione del comando show ip cef precise-route può causare il ricaricamento del Route Processor (RP) di un router Internet Cisco serie 12000 o di un router Cisco serie 7500/RSP. Questa situazione si verifica quando il prefisso di destinazione è ricorsivo e il router condivide il carico per l'hop successivo. Per ulteriori informazioni, fare riferimento a CSCdt80914 (solo utenti registrati) per risolvere il problema.

Nella piattaforma serie 6500, il bilanciamento del carico CEF per pacchetto non è supportato. Ciò è dovuto alle limitazioni dell'hardware ed è possibile avere attualmente solo il bilanciamento del carico per destinazione. Pertanto, l'unica opzione è quella di utilizzare il protocollo MLPPP (Distributed Multilink Point-to-Point Protocol) o la condivisione del carico di flusso di livello 4.

Supporto hardware per Cisco Express Forwarding Load Balancing

Il bilanciamento del carico per pacchetto di Cisco Express Forwarding è stato originariamente supportato nelle piattaforme che utilizzano l'inoltro basato su software. Tali piattaforme includono la serie 2600, 3600 e 7200. Il bilanciamento del carico per pacchetto è ora supportato nell'hardware utilizzando Parallel Express Forwarding (PXF) sulla serie 7200 con una serie NSE-1 e 10000. Sui Catalyst serie 6000, i comandi Cisco IOS Cisco Express Forwarding ip load-sharing per pacchetto, ip cef accounting per prefisso e ip cef accounting non ricorsivo sull'MSFC2 si applicano solo al traffico sul quale il software Cisco Express Forwarding è stato commutato sull'MSFC2. I comandi non influiscono sul traffico sul layer 3 dell'hardware commutato sui moduli di switching PFC2 o dotati di DFC. Per ulteriori informazioni, vedere Configurazione dello switching IP Unicast Layer 3 sul Supervisor Engine 2.

Nota: un router Cisco 7300 con una scheda del processore NSE-100 non supporta il bilanciamento del carico CEF per pacchetto in PXF. Il PXF supporta solo il bilanciamento del carico per destinazione. Tuttavia, è risultato che disponevano del supporto perché i comandi di configurazione erano disponibili nella CLI del router. L'errore viene corretto e registrato nell'ID bug Cisco CSCdx63389.

Sulla serie 12000, il bilanciamento del carico per pacchetto è disponibile su tutti i motori di inoltro di layer 3 ad eccezione dei motori 3 e 4. Ogni scheda di linea prende decisioni di inoltro indipendenti. Per visualizzare il percorso esatto di ciascun flusso IP, usare il comando exec slot X show ip hardware-cef precise-route src dst sulle schede di linea che usano tabelle di inoltro Cisco Express basate su hardware.

Informazioni correlate

- Cisco Express Forwarding

- Bilanciamento del carico con Cisco Express Forwarding

- Supporto routing IP

- Documentazione e supporto tecnico – Cisco Systems