Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konventionen

Übersicht

Class of Service Behavior

Ändern des COS-Verhaltens bei Zugriffs-Links

Auswahl und Zeitplan der Ausgangswarteschlange

Erstellen einer benutzerdefinierten Warteschlangenrichtlinie

Einsprüche

Zugehörige Informationen

Einführung

Dieses Dokument enthält eine Beispielkonfiguration für Quality of Service (QoS)-Funktionen auf dem Cisco Nexus Switch der Serie 7000, um die Klassifizierung und Warteschlangenverwaltung zu vereinfachen.

Voraussetzungen

Anforderungen

Stellen Sie sicher, dass Sie diese Anforderungen erfüllen, bevor Sie versuchen, diese Konfiguration durchzuführen:

- Grundkenntnisse der Konfiguration von Nexus Switches der Serie 7000

- Grundkenntnisse der QoS

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf dem Nexus Switch der Serie 7000.

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).

Übersicht

Die QoS-Standardparameter auf dem Nexus 7000 sind für die meisten Bereitstellungen ausreichend. Sie müssen jedoch die Einschränkungen und Konfigurationsdetails kennen, die zum Erstellen benutzerdefinierter Richtlinien erforderlich sind.

Bei QoS auf Linecards der Nexus 7000 M-Serie sind zwei Aspekte zu berücksichtigen:

- Warteschlangenrichtlinien

- QoS-Richtlinien

Die Warteschlangenverwaltung wird in der Hardware durchgeführt und mithilfe von Warteschlangenrichtlinien für modulare QoS CLI (MQC) konfiguriert. Die QoS-Richtlinien, die zur Markierung oder Überwachung des Datenverkehrs verwendet werden, werden über eine MQC-Richtlinie im exakten Format als Standard-QoS-Richtlinie auf anderen Cisco Plattformen verwendet. Beispielsweise wird eine Zugriffsliste verwendet, um Datenverkehr in einer Klassenzuordnung mit einer entsprechenden Richtlinienzuordnung zu klassifizieren, die den Datenverkehr festlegt/regelt.

Derzeit führen Module der M-Serie Warteschlangen ausschließlich auf Basis des CoS-Werts (Class of Service) durch. Daher müssen Sie zunächst verstehen, wie der CoS-Wert abgeleitet wird. Wenn Sie wissen, welcher CoS-Wert in den Switch eintritt/diesen verlässt, können Sie sich auf die Warteschlangenkonfiguration konzentrieren, um die gewünschte QoS für verschiedene Datenverkehrstypen zu erhalten.

Class of Service Behavior

Für gerouteten Unicast-Datenverkehr wird der CoS-Wert aus den 3 höchstwertigen Bits des DSCP-Werts (Differentiated Services Code Point) abgeleitet. Für überbrückten Unicast-Datenverkehr wird der CoS-Wert aus dem CoS-Wert kopiert, der im 802.1q-Header empfangen wurde. Beachten Sie, dass auf L2-Zugriffs-Links kein Trunk-Header vorhanden ist. Wenn Datenverkehr über einen Access-Port empfangen und überbrückt wird, wird der Switch daher mit CoS 0 ausgeleitet. Der DSCP-Wert wird nicht geändert, aber das Paket erhält möglicherweise nicht die gewünschte Priorität. Sie können den CoS-Wert manuell in einer Richtlinienzuordnung festlegen, indem Sie eine QoS-Richtlinie verwenden, die den CoS- oder DSCP-Wert manuell festlegt.

Es ist wichtig, auch das Verhalten von Multicast zu verstehen. Gerouteter Multicast-Datenverkehr leitet seinen CoS-Wert auf die gleiche Weise ab wie gerouteter Unicast-Datenverkehr. Bei überbrücktem Multicast-Datenverkehr hängt das Verhalten vom L3-Status ab. Wenn für die Multicast-Gruppe kein L3-Status vorhanden ist, wird die CoS auf die gleiche Weise abgeleitet wie der überbrückte Unicast-Datenverkehr. Wenn ein L3-Status für die Multicast-Gruppe vorhanden ist, wird die CoS auf die gleiche Weise abgeleitet wie der geroutete Unicast-Datenverkehr. Beachten Sie, dass bei Aktivierung von Protocol Independent Multicast (PIM) im Sparse-Mode auf der virtuellen Switch-Schnittstelle (SVI) für das VLAN, in dem der Datenverkehr empfangen wird, ein S,G-Eintrag erstellt wird, wenn Multicast angezeigt wird.

Zusammenfassend wird das CoS-Verhalten für einen Datenverkehrstyp hier angezeigt:

Datenverkehrstyp

CoS-Verhalten

geroutete Unicast

von 3-MSB von ToS kopiert

überbrückte Unicast

unverändert

geroutete Multicast

von 3-MSB von ToS kopiert

Bridge-Multicast mit L3-Status für Gruppe

von 3-MSB von ToS kopiert

Bridge-Multicast ohne L3-Status für Gruppe

unverändert

Ändern des COS-Verhaltens bei Zugriffs-Links

Nehmen wir ein Beispiel, an dem Datenverkehr am Access-Port (Eth8/1) empfangen und im VLAN überbrückt wird. Der CoS-Wert für überbrückten Unicast-Datenverkehr ist standardmäßig unverändert. Wenn Datenverkehr auf einem Access-Port eingeht, wird der CoS-Standardwert 0 zugewiesen. In diesem Beispiel wird Prioritätsdatenverkehr (DSCP 46) an einem Zugriffsport empfangen und an den Switch ausgeleitet, wobei der DSCP-Wert unverändert bleibt und der CoS-Wert 0 lautet. Daher erhält das Paket nicht die richtige Priorität.

Hinweis: Der CoS-Header wird nur zur Klarstellung angezeigt. E8/1 ist ein Access-Port, daher ist der CoS-Wert 0. Der Paketfluss verläuft von links nach rechts.

Eine mögliche Lösung besteht darin, eine QoS-Richtlinie zu erstellen, um den CoS-Wert für den Eingangsport manuell festzulegen.

Im Beispiel werden die CoS-Werte nur für Pakete mit DSCP 46 aktualisiert. Wenn mehrere DSCP-Werte erforderlich sind, um einen angemessenen CoS-Wert sicherzustellen, müssen in der Richtlinienzuordnung weitere Klassenzuordnungen und Aktionen definiert werden.

Eine Alternative ist die Verwendung einer Tabellenzuordnung mit der Aktion 'default copy'. Mit der Tabellenübersicht können Sie das DSCP auf Basis des aktuellen DSCP-Werts zurücksetzen. Wenn z. B. Datenverkehr mit einem DSCP-Wert von 40 empfangen wurde und Sie sicherstellen müssen, dass der Datenverkehr auf einen DSCP-Wert von 46 markiert wurde, können Sie eine Tabellenübersicht mit der Aktion "von 40 bis 46" verwenden.

Eine Tabellenübersicht enthält auch eine Aktion der Standardkopie, die den DSCP-Wert auf den ursprünglichen Wert festlegt. Dies ähnelt dem Erstellen einer Richtlinienzuordnung mit der Klassifizierung von 'match dscp ef' und der Aktion von 'set dscp ef'.  Logisch ist, dass der DSCP-Wert unverändert ist, die Aktion "set dscp" jedoch impliziert, dass der CoS-Wert auf 3-MSB des neuen DSCP-Werts festgelegt wird.

Wenn Sie also sicherstellen müssen, dass der CoS-Wert immer auf 3-MSB des DSCP-Werts aktualisiert wird, verwenden Sie eine Tabellenübersicht mit einer einzelnen Aktion von 'default copy'.

Auswahl und Zeitplan der Ausgangswarteschlange

Nachdem der CoS-Wert abgeleitet wurde, können Sie die globalen Klassenzuordnungen für Warteschlangen bearbeiten, um die Zuordnungen von cos-to-queue zu beeinflussen. Diese Klassenzuordnungen sind global und betreffen alle Module in allen Virtual Device Contexts (VDCs) für den jeweiligen Warteschlangentyp. Betrachten Sie zum Beispiel die folgenden Standard-Klassenzuordnungen für Warteschlangen für die Module M108 und M132 (1p7q4t):

class-map type queuing match-any 1p7q4t-out-pq1

Description: Classifier for egress priority queue of type 1p7q4t

match cos 5-7

class-map type queuing match-any 1p7q4t-out-q2

Description: Classifier for egress queue 2 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q3

Description: Classifier for egress queue 3 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q4

Description: Classifier for egress queue 4 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q5

Description: Classifier for egress queue 5 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q6

Description: Classifier for egress queue 6 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q7

Description: Classifier for egress queue 7 of type 1p7q4t

class-map type queuing match-any 1p7q4t-out-q-default

Description: Classifier for egress default queue of type 1p7q4t

match cos 0-4

Standardmäßig ist cos 0-4 der Standardwarteschlange zugeordnet, und cos 5-7 wird der Prioritätswarteschlange zugeordnet. Diese werden mit der Standardrichtlinie für Warteschlangen des gleichen Warteschlangentyps kombiniert:

policy-map type queuing default-out-policy

class type queuing out-pq1

priority level 1

queue-limit percent 16

class type queuing out-q2

queue-limit percent 1

class type queuing out-q3

queue-limit percent 1

class type queuing out-q-default

queue-limit percent 82

bandwidth remaining percent 25

Bei der Prioritätswarteschlange handelt es sich um "Priority" (Priorität) mit einem Warteschlangenlimit von 16 %. Die Standardwarteschlange hat eine Warteschlangengrenze von 82 %, wobei die Standardbandbreite noch gewichtsmäßig ist. Den anderen Warteschlangen, die nicht verwendet werden, wird ein Warteschlangenlimit von 1 % zugewiesen. Beachten Sie, dass q4, q5 und q6 nicht in der Standard-Warteschlangenrichtlinie enthalten sind und daher in der Hardware ein noch geringeres Warteschlangenlimit und Bandbreitengewicht programmiert sind.

Erstellen einer benutzerdefinierten Warteschlangenrichtlinie

Gehen Sie wie folgt vor, um eine benutzerdefinierte Warteschlangenrichtlinie zu erstellen:

1. Erstellen Sie eine benutzerdefinierte Warteschlangenrichtlinie mit der gewünschten Warteschlangenbegrenzung und Bandbreitenzuweisung.

2. Ändern Sie die globalen Klassenzuordnungen für Warteschlangen, um die erforderliche CoS-Warteschlangenzuordnung zu erstellen.

3. Wenden Sie die neue Warteschlangenrichtlinie auf die entsprechenden Schnittstellen an.

Nehmen wir ein Beispiel für M132-Module mit einer 1p7q4t-Warteschlangenarchitektur, bei denen alle 8 CoS-Werte einer separaten Warteschlange zugeordnet sind. Die Ausgabe zeigt die benutzerdefinierte Warteschlangenrichtlinie zusammen mit den Änderungen an den Klassenzuordnungen für globale Warteschlangen:

policy-map type queuing 10G_POLICY

class type queuing 1p7q4t-out-pq1

priority level 1

queue-limit percent 10

class type queuing 1p7q4t-out-q2

queue-limit percent 10

bandwidth remaining percent 10

class type queuing 1p7q4t-out-q3

queue-limit percent 5

bandwidth remaining percent 5

class type queuing 1p7q4t-out-q4

queue-limit percent 5

bandwidth remaining percent 5

class type queuing 1p7q4t-out-q5

queue-limit percent 10

bandwidth remaining percent 20

class type queuing 1p7q4t-out-q6

queue-limit percent 5

bandwidth remaining percent 10

class type queuing 1p7q4t-out-q7

queue-limit percent 5

bandwidth remaining percent 10

class type queuing 1p7q4t-out-q-default

queue-limit percent 50

bandwidth remaining percent 40

! voice

class-map type queuing match-any 1p7q4t-out-pq1

match cos 5

! scavenger

class-map type queuing match-any 1p7q4t-out-q2

match cos 1

! transactional

class-map type queuing match-any 1p7q4t-out-q3

match cos 2

! call signaling

class-map type queuing match-any 1p7q4t-out-q4

match cos 3

! video

class-map type queuing match-any 1p7q4t-out-q5

match cos 4

! routing

class-map type queuing match-any 1p7q4t-out-q6

match cos 6

! management

class-map type queuing match-any 1p7q4t-out-q7

match cos 7

! best effort

class-map type queuing match-any 1p7q4t-out-q-default

match cos 0

Der letzte Schritt besteht in der Anwendung der benutzerdefinierten Warteschlangenrichtlinie auf jede 1p7q4t-Schnittstelle:

interface Ethernet8/1

service-policy type queuing output 10G_POLICY

Einsprüche

Die Standardrichtlinie für Warteschlangen setzt voraus, dass CoS 0-4 der Standardwarteschlange zugeordnet und CoS 5-7 der Prioritätswarteschlange zugeordnet wird. Daher sind die Warteschlangenbeschränkungen für die Warteschlangen q3, q4, q5, q6 und q7 extrem klein. Sie können den Befehl show queuing interface eingeben, um die aktuelle Warteschlangengröße und Bandbreite zu validieren, die in der Hardware konfiguriert und angewendet wurden.

Betrachten Sie die Beispielrichtlinie im vorherigen Abschnitt, in der jeder CoS-Wert einer bestimmten Warteschlange zugeordnet wurde. Am Ende des Beispiels wurde die benutzerdefinierte Warteschlangenrichtlinie auf Eth8/1 angewendet. Angenommen, es gibt eine weitere 1p7q4t-Schnittstelle (Eth6/1), für die die Standard-Warteschlangenrichtlinie beibehalten wurde:

N7k# show queuing interface e6/1

<some output omitted>

Configured queue-limit ratios

queue-limit ratios:     78[1p7q4t-out-q-default] 1[1p7q4t-out-q2] 1[1p7q4t-out-q3]

*1[1p7q4t-out-q4] *1[1p7q4t-out-q5] *1[1p7q4t-out-q6] *1[1p7q4t-out-q7] 16[1p7q4t-out-pq1]

* means unused queue with mandatory minimum queue-limit

Thresholds:

COS   Queue                      Threshold Type     Min    Max

______________________________________________________________

0    1p7q4t-out-q-default           DT             100    100

1    1p7q4t-out-q2                  DT             100    100

2    1p7q4t-out-q3                  DT             100    100

3    1p7q4t-out-q4                  DT             100    100

4    1p7q4t-out-q5                  DT             100    100

5    1p7q4t-out-pq1                 DT             100    100

6    1p7q4t-out-q6                  DT             100    100

7    1p7q4t-out-q7                  DT             100    100

Aus der obigen Ausgabe können Sie sehen, dass die Warteschlangen q2 und q3 eine Warteschlangengrenze von 1 % haben, während q4, q5, q6 und q7 *1 % haben, was der Mindestwert für obligatorische Warteschlangen ist (d. h. deutlich weniger als 1 %). Außerdem können Sie sehen, dass die CoS-Werte 1-4 und 6-7 diese sehr kleinen Warteschlangen verwenden. Die kleinen Warteschlangengrößen führen schnell zu Rückwürfen und können die Netzwerkleistung beeinträchtigen. Dies wird noch verschärft, wenn CoS 0 für den Standarddatenverkehr einer dieser kleinen Warteschlangen zugeordnet wird.

Zusammengefasst: Wenn Sie eine benutzerdefinierte Warteschlangenrichtlinie erstellen und die globalen Klassenzuordnungen für Warteschlangen ändern, ist es wichtig, die benutzerdefinierte Warteschlangenrichtlinie auf alle Schnittstellen im Chassis anzuwenden, die denselben Warteschlangentyp verwenden.

Außerdem sind einige hilfreiche Drop-Befehle aufgelistet:

- show policy-map interface ex/y

- Anzeige der internen Warteschlangenstatusschnittstelle ex/y

Zugehörige Informationen

- Cisco Nexus 7000 NX-OS Quality of Service Configuration Guide, Version 5.x

- Technischer Support und Dokumentation - Cisco Systems