Einführung
Lassen Sie mich zunächst schreiben, dass ich den größten Teil des Sommers damit verbringe, einen richtigen Weg zu finden, um dies zu erreichen. Mehr noch, ich musste einen CCIE für ungefähr eine Woche in Vollzeit einstellen, um zu helfen, und dabei hatte Cisco TAC versucht, einen Fehler bei unseren Switches der 6500-Serie herauszufinden.
Wieso würdest du das machen?
Heute gibt es eine virtuelle Explosion von Rich Media-Anwendungen im IP-Netzwerk. Diese Explosion von verwalteten und nicht verwalteten Inhalten und Medientypen erfordert, dass Netzwerkarchitekten ihre QoS-Designs (Quality of Service) neu betrachten.
Der erste Schritt mag offensichtlich und überflüssig erscheinen, aber in Wirklichkeit ist es entscheidend: Definieren Sie klar die Geschäftsziele, die Ihre QoS-Richtlinien ermöglichen sollen. Diese können Folgendes umfassen:
- Die Gewährleistung der Sprachqualität entspricht den Unternehmensstandards.
- Sicherstellung einer hohen Qualität der Erfahrung (Quality of Experience, QoE) für Videos.
- Steigerung der Benutzerproduktivität durch Verlängerung der Netzwerkantwortzeiten für interaktive Anwendungen.
- Verwalten von Anwendungen, die "Bandbreitenfresser" sind.
- Identifizieren und De-Priorisieren von Verbraucheranwendungen.
- Verbesserung der Netzwerkverfügbarkeit.
- Härten der Netzwerkinfrastruktur.
Unter Berücksichtigung dieser Ziele können Netzwerkarchitekten klar identifizieren, welche Anwendungen für ihr Unternehmen relevant sind. Umgekehrt wird aus dieser Erfahrung auch deutlich, welche Anwendungen für die Erreichung der Geschäftsziele nicht relevant sind. Solche Anwendungen können verbraucherorientierte und / oder unterhaltungsorientierte Anwendungen sein. Am Ende liegt alles bei Ihnen.
Die Lösung
Ich wollte dies so einfach und konfigurationsfrei wie möglich machen. Vor diesem Hintergrund und der Tatsache, dass QoS immer in Hardware verarbeitet werden sollte, wurde mir von der von mir beauftragten CCIE empfohlen, die Auto-QoS-Funktion in Cisco zu verwenden.
Anstatt den Datenverkehr auf der Zugriffsebene zu markieren, kann die Kennzeichnung von den Endbenutzern oder Servern selbst vorgenommen werden. Auto-QoS bietet dann die richtigen Klassen für den Transport des Datenverkehrs im gesamten Netzwerk. Auf diese Weise konnte ich entscheiden, welche Anwendungen oder Dienste über Active Directory-Gruppenrichtlinien priorisiert oder depriorisiert werden sollen.
Für den Anfang wollte ich es einfach machen. Dies bedeutete die Priorisierung von VoIP- und Videoanwendungen, die bereits in Auto-QoS vordefiniert sind, wenn Sie Cisco IP-Geräte / TelePresence / Kameras usw. verwenden, was wir tun.
Topologieübersicht
Wir verwenden die folgenden Zugangs- / Kerngeräte.
- Kern: Cisco 897-Serie, Cisco 3650-Serie, Cisco 3850-Serie und Cisco 6500-Serie
- Zugriff: Cisco 3560CX Compact-Serie und Cisco 2960X-Serie
Unsere Topologie basiert hauptsächlich auf einer Sterntopologie. Beachten Sie die folgende Topologiezeichnung (wir verwenden BGP in unseren WAN-MPLS):
QoS auf der Zugriffsebene
Die Konfiguration ist bei Verwendung von Auto-QoS sehr einfach und unkompliziert. Das Bemerken des Datenverkehrs und das Senden an den MPLS-ISP ist etwas komplizierter, aber ich werde im Folgenden Beispiele vorstellen.
Alle Zugriffsschalter werden mit Auto-QoS eingerichtet, wobei allen Ports sowohl Zugriff als auch Trunk / Uplinks mit DSCP vertraut wird. Beachten Sie die folgende QoS-Tabelle, in der alle Werte für DSCP, CoS, ToS usw. in einer Tabelle eingerichtet sind. Dies gibt einen guten Überblick über die ausgewählten Klassen und die Struktur, in der ich versuche, in meinem Design zu erreichen:
Auto-QoS verwendet AF-Werte (Assured Forwarding) für die DSCP-Markierung.
Aktivieren von Auto-QoS auf dem Zugriffsschalter
Globale Konfiguration
mls qos (Activates QoS)
mls qos map cos-dscp 0 8 16 24 32 46 48 56 (Maps CoS to DSCP values, because CoS is a layer 2 marking, which cannot be routed)
auto qos srnd4 (Autogenerates all configuration in accordance to Cisco best practice SRND4 standard)
Portkonfiguration
auto qos trust dscp (Activates QoS and trusts DSCP on a port)
priority-queue out (Sends all traffic to the priority queues)
Das war's, der Switch und die Ports werden jetzt Auto-QoS ausführen.
Handbuch zur automatischen QoS-Konfiguration für die 2960X-Serie: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/15-0_2_EX/qos/configuration_guide/b_qos_152ex_2960-x_cg/ b_qos_152ex_2960-x_cg_chapter_011.html
Aktivieren von Auto-QoS auf der Core-Ebene
Es gibt einen großen Unterschied in der Art und Weise, wie QoS von Core-Switches gehandhabt wird. Die Cisco 6500-Serie unterstützt Auto-QoS SRND4 nicht. Daher müssen wir QoS manuell konfigurieren und den richtigen Klassen zuordnen, um das Auto-QoS-Design beizubehalten. Die Cisco 3650- und 3850-Serien unterstützen Auto-QoS SRND4 und daher ist die Konfiguration ziemlich einfach:
Aktivieren von Auto-QoS für die Serien 3650 und 3850
Globale Konfiguration
auto qos srnd4 (Activates and autogenerates the QoS configuration)
Portkonfiguration
auto qos trust dscp (Activates and autogenerates the QoS configuration)
Wenn Sie den Core mit dem MPLS-ISP verbinden, möchten wir den Datenverkehr in 5 Klassen unterteilen (da dies von unserem ISP unterstützt wird). Auf diese Weise wird der Datenverkehr über das MPLS zu allen Positionen in der Topologie priorisiert (siehe Zeichnung als Referenz). Ihr ISP kann anders sein und daher sollte die Bemerkung so gemacht werden, dass sie zu Ihrem Design passt. Im folgenden Beispiel wird der gesamte Datenverkehr in 5 Klassen unterteilt.
Sie müssen die automatisch generierte Auto-QoS-Richtlinienzuordnung "AutoQos-4.0-Output-Policy" kopieren und dann eine neue erstellen. Sie MÜSSEN dieselben Klassenzuordnungen verwenden, die von Auto-QoS generiert wurden. Wenn Sie versuchen, Ihre eigenen zu erstellen, werden diese ignoriert. Daher werden dieselben Klassenzuordnungen verwendet und die Markierung erfolgt aus diesen Klassen:
policy-map WAN-OUTPUT-QoS (The name can be whatever you like)
class AutoQos-4.0-Output-Priority-Queue
set dscp ef
priority level 1 percent 10
class AutoQos-4.0-Output-Control-Mgmt-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af21
class AutoQos-4.0-Output-Multimedia-Conf-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af41
class AutoQos-4.0-Output-Trans-Data-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af21
class AutoQos-4.0-Output-Bulk-Data-Queue
bandwidth remaining percent 2
queue-buffers ratio 10
set dscp default
class AutoQos-4.0-Output-Scavenger-Queue
bandwidth remaining percent 1
queue-buffers ratio 10
set dscp cs1
class AutoQos-4.0-Output-Multimedia-Strm-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af41
class class-default
bandwidth remaining percent 25
Die 5 Klassen werden im Folgenden wie folgt priorisiert und an das MPLS gesendet:
- DSCP-AF-Wert: EF (VoIP)
- DSCP-AF-Wert: af41 (Alle Videomedien)
- DSCP AF-Wert: af21 (Transaktionsdaten usw.)
- DSCP-AF-Wert: Standard (AF = 0 & DSCP = 0, z. B. Massendaten)
- DSCP-AF-Wert: cs1 (Scavenger-Klasse für Bittorrent usw.)
Die prozentualen Bandbreiten werden als verbleibende verwendet. Dies bedeutet, dass alle Klassen 100% der Bandbreite nutzen und von den anderen Klassen ausleihen dürfen, wenn die Bandbreite nicht verwendet wird. Es ist wie bei der gemeinsamen Nutzung der Bandbreite, was bedeutet, dass jede Klasse mit der höchsten Priorität Datenverkehr senden kann, wenn die Verbindung überlastet ist.
Die Richtlinienzuordnungsklassen und Prozentsätze können nach Bedarf an Ihre individuellen Anforderungen angepasst werden.
Auf dem Port-Uplink zum ISP muss Folgendes konfiguriert werden:
interface XXX
auto qos trust dscp
service-policy input AutoQos-4.0-Trust-Dscp-Input-Policy
service-policy output WAN-OUTPUT-QoS
Das war's für die Serien 3650 und 3850.
Aktivieren der QoS bei der 6500-Serie
Die 6500-Serie unterstützt Auto-QoS SRND4 nicht. Es ist sehr einfach und versteht nur Layer-2-CoS-Werte für VoIP. Dies bedeutet, dass Sie alle QoS von Grund auf konfigurieren müssen, um die Auto-QoS-Infrastruktur von der Zugriffsebene aus anzupassen. QoS muss basierend darauf konfiguriert werden, welches Modul auf dem Gehäuse installiert ist. Sie müssen auch Richtlinienzuordnungen für den Ein- und Ausgang (Eingabe / Ausgabe) erstellen.
Der Supervisor versteht nur CoS zwischen dem Modul und dem ASIC im Gehäuse.
Um Auto-QoS für CoS zu aktivieren, müssen Sie den folgenden globalen Befehl verwenden:
auto qos default
Dadurch wird eine Tabellenzuordnung von CoS zu DSCP erstellt, aber die Werte entsprechen nicht alle dem Auto-QoS-SRND4-Standard (CoS 7 ist 54 zugeordnet, was 56 sein sollte). Daher müssen Sie die Tabellenzuordnung entfernen und durch Folgendes ersetzen:
no table-map cos-discard-class-map
table-map cos-discard-class-map
map from 0 to 0
map from 1 to 8
map from 2 to 16
map from 3 to 24
map from 4 to 32
map from 5 to 46
map from 6 to 48
map from 7 to 56
Um QoS- und Policy-Maps zu erstellen, müssen wir herausfinden, welches Warteschlangenmodell ein Modul verwendet. Im folgenden Beispiel ist die Ingress- und Egress-Warteschlange identisch, bei einigen Modulen unterscheiden sich jedoch die Rx- und Tx-Warteschlangen. Daher müssen Sie Richtlinienzuordnungen entsprechend dem Warteschlangenmodell erstellen. Um herauszufinden, welches Warteschlangenmodell eine Schnittstelle verwendet, müssen Sie den folgenden Befehl ausführen. Das folgende Beispiel basiert auf dem Modul: C6800-16P10G
show queueing interface xxx | sec Transmit queues
Transmit queues [type = 1p7q4t]
show queueing interface xxx | sec Receive queues
Receive queues [type = 1p7q4t]
Wie geschrieben sind die Warteschlangen in diesem Modul gleich und daher können wir für Eingabe und Ausgabe dieselbe Richtlinie verwenden.
1p7q4t bedeutet im Grunde: 1 Prioritätswarteschlange, 7 normale Warteschlangen, wobei alle 7 normalen Warteschlangen 4 Schwellenwerte haben. Weitere Informationen erhalten Sie, indem Sie nach dem Modulnamen und der Warteschlange suchen. Dieses Modul, der C6800-16P10G, wird unter folgendem Link erläutert:
https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-6800-series-switches/datasheet-c78-733662.html
Siehe Tabelle 1, Warteschlangen.
Zuerst müssen wir die Klassenzuordnungen erstellen, die für alle Richtlinienzuordnungen verwendet werden. Dies entspricht den DSCP-Werten für die einzelnen Klassen, die den Klassen von Auto-QoS SRND4 entsprechen. Beachten Sie, dass die Klassenzuordnungen als LAN-Warteschlange mit der Match-All-Anweisung erstellt werden, die bei der Programmierung wie AND / OR funktioniert. match-all = AND & match-any = OR.
Überprüfen Sie die folgende Konfigurationsanleitung. Das QoS-Design des Cisco Campus wurde vereinfacht. Konfigurationsbeispiele werden für verschiedene Module am Ende der Präsentation bereitgestellt:
http://honim.typepad.com/files/campus-qos-design-simplified-brkcrs-2501.pdf
225 Seiten, Link ist langsam.
Erstellen von Klassenkarten (globale Konfiguration):
class-map type lan-queuing match-all REALTIME-1P7Q4T
match dscp cs4 cs5 ef
class-map type lan-queuing match-all CONTROL-1P7Q4T
match dscp cs2 cs3 cs6 cs7
class-map type lan-queuing match-all MM_CONF-1P7Q4T
match dscp af41 af42 af43
class-map type lan-queuing match-all MM_STREAM-1P7Q4T
match dscp af31 af32 af33
class-map type lan-queuing match-all TRANS_DATA-1P7Q4T
match dscp af21 af22 af23
class-map type lan-queuing match-all BULK_DATA-1P7Q4T
match dscp af11 af12 af13
class-map type lan-queuing match-all SCAVENGER-1P7Q4T
match dscp cs1
Sie können die Namen ändern oder nach Ihren Wünschen bearbeiten.
Nach dem Erstellen der Klassenzuordnungen erstelle ich die Richtlinienzuordnung. Es definiert die Priorität des DSCP-Werts und legt die Bandbreite in den verschiedenen Warteschlangen fest, nachdem sie mit einem DSCP-Wert übereinstimmt.
policy-map type lan-queuing 1P7Q4T
class REALTIME-1P7Q4T
priority
class CONTROL-1P7Q4T
bandwidth remaining percent 10
class MM_CONF-1P7Q4T
bandwidth remaining percent 20
random-detect dscp-based
random-detect dscp af41 percent 80 100
random-detect dscp af42 percent 70 100
random-detect dscp af42 percent 60 100
class MM_STREAM-1P7Q4T
bandwidth remaining percent 15
random-detect dscp-based
random-detect dscp af31 percent 80 100
random-detect dscp af32 percent 70 100
random-detect dscp af33 percent 60 100
class TRANS_DATA-1P7Q4T
bandwidth remaining percent 15
random-detect dscp-based
random-detect dscp af21 percent 80 100
random-detect dscp af22 percent 70 100
random-detect dscp af23 percent 60 100
class BULK_DATA-1P7Q4T
bandwidth remaining percent 9
random-detect dscp-based
random-detect dscp af11 percent 80 100
random-detect dscp af12 percent 70 100
random-detect dscp af13 percent 60 100
class SCAVENGER-1P7Q4T
bandwidth remaining percent 1
class class-default
random-detect dscp-based
random-detect dscp default percent 80 100
Nach dem Erstellen der Richtlinienzuordnung müssen Sie sie auf eine Schnittstelle anwenden:
interface xxx
service-policy type lan-queuing input 1P7Q4T
service-policy type lan-queuing output 1P7Q4T
Um Ihre Konfiguration zu überprüfen und zu sehen, dass Warteschlangen ausgeführt werden, können Sie den folgenden Befehl verwenden (möglicherweise müssen Sie die Schnittstelle schließen / nicht schließen, damit sie wirksam wird):
show queueing interface xxx
Um den Datenverkehr in der 6500-Serie zu bemerken, müssen Sie neue Klassenzuordnungen und eine neue Richtlinienzuordnung erstellen. Die Klassenzuordnungen werden nicht als LAN-Warteschlangen erstellt, und die Übereinstimmungsanweisung lautet match-any = OR anstelle von match-all, da mehrere Werte nacheinander überprüft werden sollen. Wenn also der erste Wert nicht mit dem Paket übereinstimmt, wird der nächste überprüft und so weiter.
Ich möchte darauf hinweisen, dass wir hier Cisco TAC einbeziehen mussten, da der folgende Fehler aufgetreten ist:
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuz52151
Wir mussten stattdessen die Klassenzuordnungen von Übereinstimmungen mit AF-Werten auf rohe DSCP-Werte (Discard-Klasse) ändern. Wir mussten auch den Switch auf Version 152-1.SY5 (MD) aktualisieren. Nachdem wir diesen Anweisungen gefolgt sind, hatten wir seitdem keine Probleme mehr.
Die Konfiguration ist wie folgt:
class-map match-any WAN-HIGH
match discard-class 32
match discard-class 40
match discard-class 46
class-map match-any WAN-GOLD
match discard-class 26
match discard-class 28
match discard-class 30
match discard-class 34
match discard-class 36
match discard-class 38
class-map match-any WAN-SILVER
match discard-class 16
match discard-class 18
match discard-class 20
match discard-class 22
match discard-class 24
match discard-class 48
match discard-class 56
class-map match-any WAN-BEST_EFFORT
match discard-class 0
match discard-class 10
match discard-class 12
match discard-class 14
class-map match-any WAN-SCAVENGER
match discard-class 8
Danach erstellen wir die Policy-Map:
policy-map WAN-OUTPUT-QoS
class WAN-HIGH
set dscp ef
class WAN-GOLD
set dscp af41
class WAN-SILVER
set dscp af21
class WAN-BEST_EFFORT
set dscp default
class WAN-SCAVENGER
set dscp cs1
Dann müssen wir es auf eine Schnittstelle anwenden:
interface xxx
service-policy output WAN-OUTPUT-QoS
service-policy type lan-queuing input 1P7Q4T
Das ist es. Ich hoffe, diese Informationen helfen Ihnen. Ich verstehe, wenn Leute sagen, dass QoS kompliziert ist. Es kann auf verschiedene Arten gemacht werden und das obige Beispiel ist nur ein Ausschnitt davon, wie es gemacht werden kann. Ich weiß, dass Cisco daran arbeitet, den Auto-QoS SRND4-Standard auf immer mehr Geräte zu übertragen, um eine gute Basis für Quality of Service zu schaffen.