WFQ (Weighted Fair Queuing) è stato implementato per i collegamenti a bassa velocità (come i collegamenti seriali) per fornire un trattamento equo per ogni tipo di traffico. Per svolgere il proprio lavoro, WFQ classifica il traffico in flussi diversi in base alle informazioni associate sul layer 3 e sul layer 4 (indirizzi IP, porte TCP e così via). A tal fine, non è necessario definire gli elenchi degli accessi. Con WFQ, il traffico a bassa larghezza di banda ha la priorità sul traffico a elevata larghezza di banda. Il traffico a larghezza di banda elevata condivide i supporti di trasmissione in modo proporzionale ai pesi assegnati.
WFQ presenta le limitazioni seguenti:
Se il flusso del traffico aumenta in modo significativo, WFQ non può essere regolato perché non è scalabile.
WFQ non è disponibile sulle interfacce ad alta velocità, ad esempio ATM.
È stata sviluppata una nuova funzionalità, Class-Based Weighted Fair Queuing (CBWFQ), per risolvere i limiti di WFQ. A differenza di WFQ, CBWFQ consente di definire le classi di traffico. Una volta definite le classi, è possibile applicare i parametri. Questi parametri includono la larghezza di banda e il limite della coda.
Quando si utilizza CBWFQ, il peso specificato per una classe diventa il peso di ciascun pacchetto che soddisfa i criteri della classe. Questo valore dipende dalla larghezza di banda assegnata alla classe. WFQ viene quindi applicato a queste classi anziché ai flussi stessi. Le classi possono includere diversi flussi.
Di seguito viene riportato un riepilogo della disponibilità di CBWFQ per VC sui router 7200, 3600 e 2600:
7200: Cisco IOS® versioni 12.0(5)T, 12.0(5)XE, 12.1(1), 12.1(1)T, 12.1(1)E e successive con PA-A3.
7200 con NSE: Cisco IOS versione 12.1(7)E e successive.
7200 con NSE-1 Services Accelerator: Cisco IOS versione 12.2(4)B1.
Gli switch serie 2600/3600 con moduli NM-1A-T3/E3 supportano LLQ / CBWFQ su Cisco IOS versione 12.1(5)T e successive.
2600/3600 con moduli di rete DS3/E3: Cisco IOS versione 12.1(2)T.
Nota: è necessario usare la funzionalità di switching Cisco Express Forwarding (CEF) perché CBWFQ monitora solo pacchetti con commutazione CEF.
Nessun requisito specifico previsto per questo documento.
Le informazioni di questo documento si basano sulle seguenti versioni hardware:
Cisco serie 7200, 3600 e 2600 Router
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
In questa sezione vengono presentate le informazioni necessarie per configurare le funzionalità descritte più avanti nel documento.
Nota: per ulteriori informazioni sui comandi menzionati in questo documento, usare lo strumento di ricerca dei comandi (solo utenti registrati).
Nel documento viene usata questa impostazione di rete:
1/130 è il valore VPI/VCI assegnato su entrambe le estremità del PVC tra il router 7200 e il router A.
Il generatore di traffico è collegato all'interfaccia Fast-Ethernet 3/0.
Sugli switch 7200 è in esecuzione Cisco IOS versione 12.0(5)T.
Il router A viene utilizzato come dispositivo sink per i test.
La configurazione viene eseguita su un 7200, ma è simile a quella dei modelli 2600/3600.
Di seguito è riportata la configurazione 7200 necessaria per implementare CBWFQ:
7200 |
---|
class-map ixia match input-interface FastEthernet3/0 class-map loopbacks match access-group 102 ! policy-map mypol class ixia bandwidth 40000 queue-limit 40 class loopbacks bandwidth 10000 class class-default fair-queue ! interface ATM2/0.130 point-to-point ip address 14.0.0.2 255.0.0.0 no ip directed-broadcast pvc 1/130 service-policy output mypol vbr-nrt 100000 75000 broadcast encapsulation aal5mux ip ! access-list 102 permit ip host 10.0.0.1 host 11.0.0.1 |
Di seguito sono riportati alcuni commenti relativi alla configurazione:
Le mappe di classe classificano e assegnano pesi al traffico. I parametri di classificazione e le mappe di classe vengono definiti nella stessa posizione. In questo caso, una classe viene applicata a tutto il traffico in entrata su Fast-Ethernet 3/0 (il traffico proveniente dal generatore di traffico). L'altra classe è relativa al traffico tra i loopback (definiti sullo switch 7200 e sul router A).
Dopo aver definito i parametri di classificazione, è possibile utilizzare una mappa dei criteri per applicare i parametri del traffico a questi flussi classificati. In questo caso, al flusso proveniente dal generatore di traffico viene "assegnata" una larghezza di banda di 40 Mbps e una profondità di coda di 40 pacchetti. Al traffico tra i loopback viene assegnata una larghezza di banda di 10 Mbps.
La profondità della coda è il numero di pacchetti che possono essere memorizzati per una determinata classe prima che si verifichino cali. Il valore predefinito è 64 (che corrisponde anche alla profondità massima della coda).
Dopo aver definito i parametri del traffico per ciascuna classe, il comando CBWFQ viene applicato su una base VC utilizzando il seguente comando: service-policy [input|output] policy-map-name.
Al traffico che non corrisponde a una delle mappe di classe definite verrà assegnata una mappa di classe predefinita (impostazione predefinita della classe) definita nella mappa dei criteri. Tutto il traffico non classificato verrà applicato ai parametri definiti in questa classe predefinita. In questo caso, è configurato il normale Weighted Fair Queuing.
Per questa configurazione di esempio, il CBWFQ viene applicato a un VC, ma può essere utilizzato anche su un bundle PVC. Inoltre, CBWFQ può essere associato a WRED (Weighted Random Early Discard) come meccanismo di rilascio (quando viene raggiunto il limite di coda).
Importante:
Prima di eseguire le attività di configurazione descritte in questa sezione, è necessario creare le classi che verranno utilizzate per differenziare il traffico sul server VC e quindi definire una mappa dei criteri per includerle. È possibile configurare i criteri di classe per tutte le classi definite sul router, fino a un massimo di 64. Tuttavia, la quantità totale di larghezza di banda VC allocata (per tutte le classi incluse in una mappa dei criteri) non deve superare il 75% della larghezza di banda disponibile del VC.
Poiché CBWFQ fornisce una garanzia di larghezza di banda minima, è possibile applicare CBWFQ solo ai VC con classi di servizio diverse da UBR e UBR+.
Non è possibile applicare WFQ e CBWFQ per ogni VC ai VC UBR e UBR+ perché entrambe queste classi di servizio sono classi di risorse ottimali che non garantiscono una larghezza di banda minima. Quando CBWFQ è abilitato per VC, tutte le classi configurate come parte dei criteri del servizio vengono installate nel sistema Fair Queuing.
Se si applica un criterio per i servizi a un VC ATM e il criterio include una funzionalità non abilitata per Parallel Express Forwarding (PXF), i pacchetti verranno indirizzati al successivo percorso di commutazione inferiore. Eseguire il comando show pxf acc summ e cercare un valore incrementale per le punte dovuto alla "feature di output".
router#show pxf acc sum Pkts Dropped RP Processed Ignored Total 242 328395045 0 10 second averages: PXF complex busy: 28% PXF read pipeline full: 0% PXF Statistic: Packets RP -> PXF: switch ip: 0 switch raw: 556612940 qos fastsend: 0 qos enqueue: 0 Total: 556612940 Packets PXF -> RP: qos pkts: 0 fast pkts: 228217649 drops: total 242 " no route : 242 punts: total 328395045 " not IP : 597 " IP options : 676 " CEF no adjacency : 186770 " CEF receive : 265306 " output feature : 327916956
Sui router Cisco 7200 con Cisco IOS versione 12.1(5)E, 12.1(5)T e successive, è possibile raggruppare le classi di mappe per formare mappe di classi più complesse. È inoltre possibile associare operazioni logiche ai parametri della mappa delle classi per determinare se il traffico corrisponde a una classe.
Esaminiamo le seguenti mappe di classe per chiarire questo concetto:
Configurazione CBWFQ avanzata |
---|
class-map match-all ixia description traffic from Ixia match input-interface FastEthernet1/0 class-map match-all ftp1 description ftp traffic initiated by the traffic generator match class-map ixia match class-map ftp2 class-map match-all ftp2 match access-group 103 class-map match-any test match access-group 102 match input-interface Ethernet0/0 ! access-list 103 permit tcp any any eq ftp ! access-list 102 permit ip host 10.1.1.1 any |
La differenza tra match-all e match-any è la seguente:
abbina tutto: Un flusso viene associato a una mappa di classe se vengono verificate TUTTE le condizioni associate.
match-any significa: un flusso viene associato a una mappa di classe se si verifica ANY (QUALSIASI) delle condizioni associate (non necessariamente tutte).
Una mappa di classe può includere test rispetto ad altre mappe di classe configurate. In questo caso, un flusso viene associato a ftp1 se soddisfa tutte le condizioni definite in mappa di classe ixia e mappa di classe ftp2.
Le informazioni contenute in questa sezione permettono di verificare che la configurazione funzioni correttamente.
Alcuni comandi show sono supportati dallo strumento Output Interpreter (solo utenti registrati); lo strumento permette di visualizzare un'analisi dell'output del comando show.
show policy-map interface atm x/y[.z]: questo comando consente di visualizzare le statistiche per coda, ad esempio le perdite. È utile per monitorare i risultati di una policy sui servizi creata con l'interfaccia della riga di comando (CLI) (MQC) Modular Quality of Service (QoS) di Cisco. Per informazioni più dettagliate su come interpretare l'output di questo comando, consultare il documento sulla descrizione dei contatori dei pacchetti in show policy-map interface Output.
7200#show policy-map interface atm 2/0.130 ATM2/0.130: VC 1/130 - output : mypol Weighted Fair Queueing Class ixia Output Queue: Conversation 264 Bandwidth 40000 (kbps) Packets Matched 0 Max Threshold 40(packets) (discards/tail drops) 0/0 Class loopbacks Output Queue: Conversation 265 Bandwidth 10000 (kbps) Packets Matched 0 Max Threshold 64(packets) (discards/tail drops) 0/0 Class class-default Output Queue: Conversation 266 Bandwidth 0 (kbps) Packets Matched 0 Max Threshold 64 (packets) (discards/tail drops) 0/0
Nota: vedere le seguenti spiegazioni relative ai due tipi di rilascio:
Rigetti: numero totale di rilasci dalla coda.
Gocce di coda: rifiuta da questa coda solo quando un'altra coda ha un pacchetto in arrivo con un numero di sequenza WFQ "inferiore" e il sistema WFQ raggiunge il numero massimo di pacchetti con limite di coda.
show policy-map interface atm x/y[.z] vc [vcd] | vpi/vci]: questo comando offre maggiore granularità per VC specifiche.
7200#show policy-map interface atm 2/0.130 vc 1/130 ATM2/0.130: VC 1/130 - output : mypol Weighted Fair Queueing Class ixia Output Queue: Conversation 264 Bandwidth 40000 (kbps) Packets Matched 0 Max Threshold 40(packets) (discards/tail drops) 0/0 Class loopbacks Output Queue: Conversation 265 Bandwidth 10000 (kbps) Packets Matched 0 Max Threshold 64(packets) (discards/tail drops) 0/0 Class class-default Output Queue: Conversation 266 Bandwidth 0 (kbps) Packets Matched 0 Max Threshold 64 (packets) (discards/tail drops) 0/0
È inoltre possibile utilizzare altri comandi, ad esempio show class-map o show policy-map class, per ottenere informazioni più dettagliate sulle classi di mappe.
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
12-Dec-2005 |
Versione iniziale |