Catalyst 4000 con Supervisor III (WS-X4014) o Supervisor IV (WS-X4515) supporta funzionalità QoS (Quality of Service) avanzate, tra cui classificazione, applicazione di policy, contrassegno, coda e pianificazione. In questo documento vengono descritte le funzionalità di accodamento e pianificazione, tra cui traffic shaping, condivisione e accodamento a bassa latenza e a priorità assoluta. L'accodamento determina il modo in cui i pacchetti vengono accodati nelle diverse code dell'interfaccia di uscita, mentre la pianificazione determina il modo in cui, in tempi di congestione, viene data la preferenza al traffico ad alta priorità rispetto al traffico a bassa priorità.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
I lettori di questo documento devono essere a conoscenza di quanto segue:
La definizione delle priorità dei frame al layer 2 (L2) si basa su un valore CoS (Class of Service), disponibile nell'intestazione ISL (InterSwitch Link) (tre bit meno significativi nel campo utente a 4 bit) e nell'intestazione 802.1Q (tre bit più significativi nel campo delle informazioni sul controllo dei tag a 2 byte).
La prioritizzazione dei pacchetti al layer 3 (L3) si basa sul valore DSCP (Differentiated Services Code Point), disponibile nel byte ToS (Type of Service) nell'intestazione IP (sei bit più significativi) o nel valore IP precedence nel byte ToS (tre bit più significativi).
Per ulteriori informazioni sulla configurazione, consultare la guida alla configurazione software.
Le informazioni di questo documento si basano sulle seguenti versioni software di un Supervisor III (WS-X4014):
Software Cisco IOS® versione 12.1(8)EW
Nota: il software Cisco IOS versione 12.1(12c)EW supporta per la prima volta Supervisor IV. Le funzionalità descritte in questo documento si applicano anche al Supervisor IV, a meno che non sia diversamente differenziato esplicitamente.
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.
Catalyst 4000 Supervisor III e IV utilizzano un'architettura di switching della memoria condivisa e sono in grado di fornire funzionalità di accodamento e pianificazione alle schede di linea esistenti. Poiché il Supervisor fornisce un'architettura di switching non bloccante, non è disponibile alcuna coda di input. I pacchetti vengono inoltrati attraverso il backplane alla porta di uscita o di uscita. Il lato output dell'interfaccia fornisce quattro code di trasmissione. Le dimensioni della coda sono attualmente fissate a 240 pacchetti per le porte Fast Ethernet e a 1920 pacchetti per le interfacce Gigabit Ethernet non bloccanti. Non bloccante significa che le porte non hanno sottoscrizioni in eccesso nella connessione al backplane. Di seguito è riportato un elenco di porte Gigabit Ethernet non bloccanti:
Porte uplink su Supervisor Engine III (WS-X4014) e IV (WS-X4515)
porte sulla scheda di linea WS-X4306-GB
due porte 1000BASE-X sulla scheda di linea WS-X4232-GB-RJ
prime due porte sulla scheda di linea WS-X4418-GB
due porte 1000BASE-X sulla scheda di linea WS-X4412-2 GB-TX
Anche le dimensioni della coda delle porte Gigabit Ethernet che bloccano (superano la sottoscrizione) sono attualmente fisse a 240 pacchetti. Le porte bloccanti sono elencate come segue:
Porte 10/100/1000 T su scheda di linea WS-X4412-2 GB-TX
porte su scheda di linea WS-4418-GB, ad eccezione delle prime due porte
porte della scheda di linea WS-X442-GB-RJ45
porte della scheda di linea WS-X448-GB-LX
porte della scheda di linea WS-X448-GB-RJ45
Nota: le dimensioni della coda si basano sul numero di pacchetti e non sulle dimensioni dei pacchetti. Al momento, il Supervisor III non supporta alcun meccanismo di prevenzione della congestione, ad esempio WRED (Weighted Random Early Detection), per le code di trasmissione.
Nota: Supervisor IV supporta la funzionalità Active Queue Management (AQM) in Cisco IOS versione 12.1(13)EW e successive. AQM è una tecnica di prevenzione della congestione che agisce prima che si verifichi un overflow del buffer. L'AQM è ottenuto tramite Dynamic Buffer Limiting (DBL). DBL tiene traccia della lunghezza della coda per ogni flusso di traffico nello switch. Quando la lunghezza della coda di un flusso specifico supera il limite, DBL rifiuta i pacchetti o imposta i bit ECN (Explicit Congestion Notification) nelle intestazioni dei pacchetti. Per ulteriori informazioni su come configurare DBL, consultare il documento sulla configurazione di QoS.
Quando QoS è disabilitato, i pacchetti vengono considerati attendibili per il DSCP in ingresso sulle porte in entrata e accodati alle code appropriate. Queste code vengono servite come round-robin.
Quando QoS è abilitato, i pacchetti vengono accodati in base al DSCP interno, derivato dal CoS/DSCP in ingresso utilizzando gli stati di attendibilità delle porte o una configurazione predefinita CoS/DSCP sulla porta di input o sull'elenco di accesso (ACL) o sul contrassegno basato su classi. La coda viene selezionata in base al mapping globale DSCP - tx-queue, completamente configurabile. La mappatura può essere visualizzata nel modo seguente:
Switch#show qos maps dscp tx-queue DSCP-TxQueue Mapping Table (dscp = d1d2) d1 : d2 0 1 2 3 4 5 6 7 8 9 ------------------------------------- 0 : 01 01 01 01 01 01 01 01 01 01 1 : 01 01 01 01 01 01 02 02 02 02 2 : 02 02 02 02 02 02 02 02 02 02 3 : 02 02 03 03 03 03 03 03 03 03 4 : 03 03 03 03 03 03 03 03 04 04 5 : 04 04 04 04 04 04 04 04 04 04 6 : 04 04 04 04
La mappatura sopra riportata è quella predefinita. Se necessario, è possibile modificare il mapping eseguendo il comando qos map dscp dscp-values to tx-queue queue-id. Ad esempio, per mappare un valore DSCP di 50 a tx-queue 2, viene eseguita la configurazione seguente in modalità di configurazione globale:
Switch(config)#qos map dscp 50 to tx-queue 2 !--- You can verify to make sure the changes have been made. Switch #show qos maps dscp tx-queue DSCP-TxQueue Mapping Table (dscp = d1d2) d1 : d2 0 1 2 3 4 5 6 7 8 9 ------------------------------------- 0 : 01 01 01 01 01 01 01 01 01 01 1 : 01 01 01 01 01 01 02 02 02 02 2 : 02 02 02 02 02 02 02 02 02 02 3 : 02 02 03 03 03 03 03 03 03 03 4 : 03 03 03 03 03 03 03 03 04 04 5 : 02 04 04 04 04 04 04 04 04 04 6 : 04 04 04 04
Per ulteriori informazioni sui passaggi di configurazione per la modifica della mappatura, consultare il seguente documento:
A causa della limitazione dello switch ASIC (Application-Specific Integrated Circuit), se la porta di entrata è impostata su trust-cos, il CoS di trasmissione è uguale al CoS del pacchetto in entrata o al CoS predefinito (per pacchetti senza tag) configurato sulla porta. Se una policy è configurata per impostare il DSCP per il pacchetto usando il comando set ip dscp value per tali pacchetti, i pacchetti verranno usati come origine per il DSCP interno invece del CoS predefinito/pacchetto e messi in coda nelle code appropriate. Se la porta non è considerata attendibile per CoS, il CoS in uscita si baserà sul valore DSCP interno.
La coda di trasmissione 3 può essere configurata come coda con priorità rigida, se necessario, in modo che i pacchetti in coda in tale coda vengano pianificati per essere trasmessi prima dei pacchetti in coda nel resto delle code, a condizione che non superino il valore di condivisione configurato. Questa condizione viene spiegata nella sezione seguente.
La funzione di priorità assoluta (strict priority) è disattivata per impostazione predefinita. Il mapping predefinito accoda i pacchetti con CoS 4 e 5 e da DSCP 32 a 47 nella coda di trasmissione 3. Il mapping da DSCP a tx-queue può essere modificato in modo che i pacchetti desiderati vengano accodati nella coda ad alta priorità.
Per non far morire di fame i pacchetti a bassa priorità, questa coda deve essere configurata principalmente per il traffico a basso volume ma ad alta priorità, ad esempio il traffico vocale, e non per il traffico TCP/IP a bassa priorità. Si consiglia inoltre di configurare il shaping e la condivisione per la coda ad alta priorità se si desidera evitare la fame delle altre code non strettamente prioritarie. Configurando il shaping o la condivisione, gli altri pacchetti a bassa priorità verranno pianificati una volta raggiunto il valore di shape/share per la coda strict.
Switch#show run interface gigabitEthernet 1/1 interface GigabitEthernet1/1 no switchport ip address 10.1.1.1 255.255.255.0 tx-queue 3 priority high end
Catalyst 4000 Supervisor III e IV supportano il comando bandwidth, un sottocomando del comando tx-queue. Questo comando consente di garantire una larghezza di banda minima a ciascuna delle quattro code di trasmissione. Non confondere questo comando con il comando interface level bandwidth usato ai fini del protocollo di routing. Questa funzionalità, insieme al mapping delle code DSCP-tx, offre un controllo granulare della larghezza di banda garantita per ciascuna classe di traffico in ciascuna delle quattro code. In genere, al traffico ad alta priorità, come il traffico vocale, viene garantita una certa quantità minima di traffico durante i periodi di congestione tramite le code a priorità ridotta, con una condivisione configurata per la coda di trasmissione 3. La condivisione della larghezza di banda del collegamento è supportata solo sulle porte Gigabit Ethernet non bloccanti. Questa funzione non è attualmente disponibile sul blocco delle porte Gigabit Ethernet o delle interfacce FastEthernet 10/100.
Quando QoS è abilitato a livello globale sullo switch, a tutte e quattro le code viene assegnata per impostazione predefinita una larghezza di banda minima di 250 Mbps su tutte le porte. Potrebbe essere necessario modificare le impostazioni predefinite per assicurarsi che corrispondano alle impostazioni desiderate per l'applicazione o la rete in questione.
Switch#show run interface gigabitEthernet 1/1 interface GigabitEthernet1/1 no switchport ip address 10.1.1.1 255.255.255.0 tx-queue 1 bandwidth 500 mbps tx-queue 2 bandwidth 25 mbps tx-queue 3 bandwidth 50 mbps priority high tx-queue 4 bandwidth 200 mbps end Switch#show qos interface GigabitEthernet 1/1 QoS is enabled globally Port QoS is enabled Port Trust State: 'untrusted' Default DSCP: 0 Default CoS: 0 tx-Queue Bandwidth ShapeRate Priority QueueSize (bps) (BPS) (packets) 1 500000000 disabled N/A 1920 2 250000000 disabled N/A 1920 3 50000000 disabled high 1920 4 200000000 disabled N/A 1920
Lo switch non convalida attualmente che la somma della condivisione di larghezza di banda per coda <= 1 Gbps. Ad esempio, se Q1 = 300 Mbps, Q2 = 200 Mbps, Q3= 100 Mbps e Q4 = 500 Mbps, si supera la larghezza di banda totale di 1 Gbps disponibile per l'interfaccia. Per comprendere il comportamento dello switch in questo scenario di sottoscrizione eccessiva, è necessario comprendere come funziona la programmazione.
Quando la velocità di output di una coda di trasmissione è inferiore ai valori di forma e condivisione configurati, viene considerata una coda ad alta priorità. Inizialmente, tutte le code saranno ad alta priorità poiché a nessuna di esse è stata concessa la relativa condivisione e pertanto verranno servite in round-robin (si noti che una coda configurata come ad alta priorità verrà sempre servita per prima se non è vuota finché non raggiunge la condivisione). Se alcune code raggiungono la condivisione, se vi sono altre code con priorità alta, verranno servite. Se non sono presenti code con priorità alta, tutte le code con priorità bassa (che hanno già raggiunto la propria quota) vengono servite in round-robin.
In base a questa descrizione del funzionamento, nello scenario di esempio precedente, Q1, Q2 e Q3 otterrebbero la loro quota, ma non Q4 in tempi di congestione, poiché l'interfaccia non può allocare larghezza di banda maggiore di quella fisica disponibile. Occorre prestare attenzione nella scelta dei valori di condivisione in base ai requisiti dell'utente/dell'applicazione.
Catalyst 4000 Supervisor III e IV supportano altre funzionalità di traffic shaping oltre alla funzione di policy. Le funzioni di shaping possono essere configurate per coda di trasmissione su Fast Ethernet e Gigabit Ethernet. La funzione Shaping limita la larghezza di banda trasmessa per coda al secondo al valore massimo configurato configurabile da 16 Kbps a 1 Gbps (100 Mbps per porta FastEthernet). Il shaping ha una varianza molto bassa dal valore configurato, in quanto la decisione di trasmettere un pacchetto da una coda specifica viene presa per pacchetto.
Switch#show run interface FastEthernet 5/9 interface FastEthernet5/9 no switchport no snmp trap link-status ip address 10.1.1.1 255.255.255.0 tx-queue 1 shape 50 mbps tx-queue 2 shape 35 mbps tx-queue 3 priority high shape 5 mbps tx-queue 4 shape 10 mbps Switch#show qos interface FastEthernet 5/9 QoS is enabled globally Port QoS is enabled Port Trust State: 'untrusted' Default DSCP: 0 Default CoS: 0 tx-Queue Bandwidth ShapeRate Priority QueueSize (BPS) (BPS) (packets) 1 N/A 50000000 N/A 240 2 N/A 35000000 N/A 240 3 N/A 5000000 high 240 4 N/A 10000000 N/A 240
I pacchetti vengono accodati in base al DSCP interno in una delle quattro code descritte in precedenza. Il DSCP interno può derivare dal DSCP in entrata, dal DSCP della porta di entrata o dal contrassegno basato su classi. La pianificazione della coda di trasmissione viene eseguita nel modo seguente. Se è stata configurata la modellazione, il pacchetto nella coda di trasmissione viene controllato se rientra nel valore massimo configurato per la forma. Se supera il valore, viene accodato e non viene trasmesso.
Se il pacchetto è idoneo, viene presa in considerazione la funzione di condivisione/priorità assoluta. In primo luogo, ai pacchetti in coda con priorità rigorosa viene assegnata la preferenza purché siano al di sotto del parametro di forma configurato per la coda. Dopo aver servito la coda con priorità rigida (ossia, non vi sono pacchetti nella coda con priorità rigida o non è stata raggiunta la relativa condivisione), i pacchetti nella coda con priorità non rigida vengono serviti in round robin. Poiché esistono tre code di questo tipo, la condivisione configurata per tali code viene presa nuovamente in considerazione. Ad esempio, se la coda di trasmissione 1 non ha raggiunto la condivisione, ha una priorità più alta rispetto alla coda di trasmissione 2, che ha raggiunto la condivisione. Una volta rimossi dalla coda i pacchetti con priorità più alta, vengono considerati i pacchetti nelle code che hanno già raggiunto la loro condivisione.
Nota: una priorità più alta in questo contesto non significa un valore DSCP, CoS o IP precedenza migliore. Si basa esclusivamente sul fatto che una determinata coda abbia raggiunto o meno la propria quota. Se la coda di priorità non rigida specifica non ha raggiunto la condivisione, viene considerata con priorità più alta tra le code di priorità non rigida che hanno raggiunto la condivisione.