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.
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
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.
Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).
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.
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 |
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.
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'.
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.
Gehen Sie wie folgt vor, um eine benutzerdefinierte Warteschlangenrichtlinie zu erstellen:
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
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:
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
29-May-2013 |
Erstveröffentlichung |