AUF DIESER SEITE
Beispiel: Konfigurieren und Anwenden eines standardmäßigen DSCP-Verhaltensaggregatklassifikators
Ein Junos OS-Klassifizierer identifiziert und trennt Datenverkehrsflüsse und bietet die Möglichkeit, den Datenverkehr später im Class-of-Service-Prozess (CoS) zu priorisieren.
Ein BA-Klassifikator (Behavior Aggregate) führt diese Funktion aus, indem er bekannte CoS-Werte mit Weiterleitungsklassen und Verlustprioritäten verknüpft. Um einen Standardklassifikator zu aktivieren, wenden Sie ihn einfach auf Ihre Geräteschnittstellen an. Wenn ein Standardklassifizierer nicht auf eine Schnittstelle angewendet wird, wird er nicht wirksam.
Junos OS bietet mehrere standardmäßige BA-Klassifizierungstypen, die Sie nach Bedarf mit benutzerdefinierten BA-Klassifizierern kombinieren und ergänzen können, um Ihre allgemeinen Ziele für die Datenverkehrsklassifizierung zu erreichen. In diesem Beispiel wird gezeigt, wie der standardmäßige DiffServ-Codepunktklassifizierer (DSCP) angewendet und seine Funktionalität überprüft wird.
Anforderungen
Um dieses Verfahren zu überprüfen, wird in diesem Beispiel ein Datenverkehrsgenerator verwendet. Der Datenverkehrsgenerator kann hardwarebasiert sein oder Software, die auf einem Server oder Hostcomputer ausgeführt wird. Wenn Sie keinen Zugriff auf einen Datenverkehrsgenerator haben, können Sie den erweiterten Ping zur Verifizierung verwenden. Auch dieser Ansatz wird gezeigt.
Die Funktionen dieses Verfahrens werden auf Geräten mit Junos OS weitgehend unterstützt. Das hier gezeigte Beispiel wurde auf Routern der MX-Serie mit Junos OS Version 10.4 getestet und verifiziert.
Übersicht
Die Grundlage von Junos OS CoS ist die Differenzierung des Datenverkehrs. Die Zuweisung des Datenverkehrs zu verschiedenen Serviceklassen sorgt für die notwendige Differenzierung. Aus der Sicht eines Routers definiert die einem Paket zugewiesene Serviceklasse, wie sich der Router gegenüber dem Paket verhält. Das Konzept der Differenzierung des Datenverkehrs ist in jedem CoS-Tool vorhanden, und daher sind Serviceklassen im gesamten CoS-Design vorhanden. Ein Klassifikator hat einen Eingang, das eingehende Paket, und er hat N mögliche Ausgänge , wobei N die Anzahl der möglichen Serviceklassen ist, in die das Paket klassifiziert werden kann.
Die BA-Klassifizierung wird verwendet, wenn der Datenverkehr, der in Ihr Gerät eingeht, bereits vertrauenswürdige CoS-Werte im Paket-Header aufweist. Die standardmäßige DSCP-BA-Klassifizierung gibt z. B. an, dass Pakete, die mit den Codepunkten 000000 eingehen, der Best-Effort-Weiterleitungsklasse zugewiesen werden und mit der Verlustpriorität "Low" versehen werden.
Jedem bekannten DSCP werden standardmäßig eine Weiterleitungsklasse und eine Verlustpriorität zugewiesen. Um dies anzuzeigen, führen Sie den show class-of-service classifier
Befehl aus.
user@host> show class-of-service classifier type dscp Classifier: dscp-default, Code point type: dscp, Index: 7 Code point Forwarding class Loss priority 000000 best-effort low 000001 best-effort low 000010 best-effort low 000011 best-effort low 000100 best-effort low 000101 best-effort low 000110 best-effort low 000111 best-effort low 001000 best-effort low 001001 best-effort low 001010 assured-forwarding low 001011 best-effort low 001100 assured-forwarding high 001101 best-effort low 001110 assured-forwarding high 001111 best-effort low 010000 best-effort low 010001 best-effort low 010010 best-effort low 010011 best-effort low 010100 best-effort low 010101 best-effort low 010110 best-effort low 010111 best-effort low 011000 best-effort low 011001 best-effort low 011010 best-effort low 011011 best-effort low 011100 best-effort low 011101 best-effort low 011110 best-effort low 011111 best-effort low 100000 best-effort low 100001 best-effort low 100010 best-effort low 100011 best-effort low 100100 best-effort low 100101 best-effort low 100110 best-effort low 100111 best-effort low 101000 best-effort low 101001 best-effort low 101010 best-effort low 101011 best-effort low 101100 best-effort low 101101 best-effort low 101110 expedited-forwarding low 101111 best-effort low 110000 network-control low 110001 best-effort low 110010 best-effort low 110011 best-effort low 110100 best-effort low 110101 best-effort low 110110 best-effort low 110111 best-effort low 111000 network-control low 111001 best-effort low 111010 best-effort low 111011 best-effort low 111100 best-effort low 111101 best-effort low 111110 best-effort low 111111 best-effort low
Die Weiterleitungsklasse bestimmt die Ausgabewarteschlange. Standardmäßig wird für den gesamten Datenverkehr nach bestem Bemühen die Warteschlange 0 verwendet.
Verwenden Sie den Befehl, um die Warteschlangen anzuzeigen, die show class-of-service forwarding-class
standardmäßig jeder Weiterleitungsklasse zugeordnet sind. (Der Übersichtlichkeit halber wird ein Teil der Ausgabe ausgeschlossen.)
user@host> show class-of-service forwarding-class Forwarding class ID Queue best-effort 0 0 expedited-forwarding 1 1 assured-forwarding 2 2 network-control 3 3
Die Verlustpriorität wird von Schedulern in Verbindung mit dem RED-Algorithmus (Random Early Detection) verwendet, um die Paketverwerfung in Zeiten von Überlastung zu steuern. Wenn Sie über Verlustprioritäten nachdenken, denken Sie daran, dass sie keine Bedeutung haben, wenn Sie sie nicht konfigurieren. Das standardmäßige Verwerfungsverhalten besteht darin, zu warten, bis die Warteschlange zu 100 Prozent gefüllt ist, und dann wahllos Pakete zu verwerfen. Wenn die Warteschlange unter 100 Prozent gefüllt ist, werden keine Pakete mehr verworfen.
Das standardmäßige Drop-Verhalten wird im show class-of-service drop-profile
Befehl angezeigt.
user@host> show class-of-service drop-profile Drop profile: <default-drop-profile>, Type: discrete, Index: 1 Fill level Drop probability 100 100
Um Bedeutungen für die verschiedenen Verlustprioritäten zu erstellen, müssen Sie benutzerdefinierte Drop-Profile konfigurieren. Beispielsweise können Sie die Priorität für niedrige Verluste so definieren, dass sie eine Drop-Wahrscheinlichkeit von 10 Prozent bedeutet, wenn die Warteschlange zu 75 Prozent gefüllt ist, und eine Drop-Wahrscheinlichkeit von 40 Prozent, wenn der Warteschlangenfüllstand 95 % beträgt. Sie können die hohe Verlustpriorität so definieren, dass sie eine Abfallwahrscheinlichkeit von 50 Prozent bedeutet, wenn der Füllstand 25 Prozent beträgt, und eine Abfallwahrscheinlichkeit von 90 Prozent, wenn der Füllstand 50 Prozent beträgt. Benutzerdefinierte Drop-Profile sind in diesem Beispiel nicht enthalten, werden aber hier aus Gründen der Übersichtlichkeit erwähnt, da Klassifizierer Verlustprioritäten zuweisen. Es ist wichtig zu verstehen, dass diese Zuweisungen bedeutungslos sind, bis Sie Drop-Profile erstellen.
Der standardmäßige Klassifizierungsvorgang ist in Abbildung 1 dargestellt. Die Abbildung zeigt zwei IPv4-Pakete, die in eine Schnittstelle eintreten und gemäß den DSCP-Codepunkten in den Paket-Headern klassifiziert werden.

Klassifizierer werden im folgenden Video zu Lernbyte von Juniper Networks ausführlicher beschrieben.
Topologie
Abbildung 2 zeigt das Beispielnetzwerk.

Es ist wichtig, dass Sie Ihre Class-of-Service-Konfiguration auf die gesamte Topologie anwenden, anstatt sie auf ein einzelnes Gerät anzuwenden. Auch wenn die Klassifizierung auf eingehende Schnittstellen wirksam wird, sollten Sie BA-Klassifizierer auf alle Core- und Core-Schnittstellen anwenden. Dies liegt daran, dass eine einzelne Schnittstelle je nach Richtung des Datenverkehrs entweder eingehend oder ausgehend sein kann. Wenn beispielsweise Datenverkehr von Host 1 zu Host 2 fließt, sind die eingehenden Schnittstellen ge-1/0/7 auf Gerät R2 und ge-2/0/6 auf Gerät R3. Wenn der Datenverkehr in die andere Richtung, von Host 2 zu Host R1, fließt, sind die eingehenden Schnittstellen ge-1/0/3 auf Gerät R2 und ge-1/0/7 auf Gerät R1.
Der BA-Klassifikator wird nicht auf ge-1/0/1 auf Gerät R1 oder ge-2/0/5 auf Gerät R3 angewendet, da diese Schnittstellen nicht dem Kern zugewandt sind. Im Allgemeinen verwenden Sie an den Schnittstellen zum Edge einen Multifield-Klassifizierer und keinen BA-Klassifizierer.
Die CLI-Schnellkonfiguration zeigt die Konfiguration für alle Geräte von Juniper Networks in Abbildung 2. Im Abschnitt Schritt-für-Schritt-Anleitung werden die Schritte auf Gerät R2 beschrieben.
Konfiguration
Verfahren
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene [edit]
ein.
Gerät R1
set interfaces ge-1/0/1 unit 0 family inet address 172.16.50.2/30 set interfaces ge-1/0/7 unit 0 family inet address 10.30.0.1/30 set class-of-service interfaces ge-1/0/7 unit 0 classifiers dscp default
Gerät R2
set interfaces ge-1/0/3 unit 0 family inet address 10.40.0.1/30 set interfaces ge-1/0/7 unit 0 family inet address 10.30.0.2/30 set class-of-service interfaces ge-1/0/3 unit 0 classifiers dscp default set class-of-service interfaces ge-1/0/7 unit 0 classifiers dscp default
Gerät R3
set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30 set interfaces ge-2/0/6 unit 0 family inet address 10.40.0.2/30 set class-of-service interfaces ge-2/0/6 unit 0 classifiers dscp default
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So aktivieren Sie den standardmäßigen DSCP-Verhaltensaggregatklassifizierer:
-
Konfigurieren Sie die Geräteschnittstellen.
[edit interfaces] user@R2# set ge-1/0/3 unit 0 family inet address 10.40.0.1/30 user@R2# set ge-1/0/7 unit 0 family inet address 10.30.0.2/30
-
Aktivieren Sie den standardmäßigen DSCP-Klassifikator auf den Schnittstellen.
[edit class-of-service interfaces] user@R2# set ge-1/0/3 unit 0 classifiers dscp default user@R2# set ge-1/0/7 unit 0 classifiers dscp default
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show interfaces
Befehle und show class-of-service
eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@R2# show interfaces ge-1/0/3 { unit 0 { family inet { address 10.40.0.1/30; } } } ge-1/0/7 { unit 0 { family inet { address 10.30.0.2/30; } } }
user@R2# show class-or-service interfaces { ge-1/0/3 { unit 0 { classifiers { dscp default; } } } ge-1/0/7 { unit 0 { classifiers { dscp default; } } } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit
.
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
Verifizieren des Verhaltens aggregierte Klassifikatoren
Zweck
Stellen Sie sicher, dass der Aggregatklassifikator für Standardverhalten auf den Geräteschnittstellen aktiviert ist. Beachten Sie, dass der Klassifizierer zwar mit eingehenden Paketen arbeitet, Sie jedoch die resultierende Warteschlangenzuweisung auf der ausgehenden Schnittstelle anzeigen.
Aktion
Löschen Sie die Schnittstellenstatistik auf Gerät R2.
user@R2> clear interface statistics ge-1/0/3
Senden Sie Pakete mit erweitertem Ping von Gerät R1 oder einem Paketgenerator, der auf einem Host oder Server ausgeführt wird, Pakete mit dem Codepunkt 001010.
Beide Methoden werden hier gezeigt. Der verwendete Paketgenerator ist hping.
Wenn Sie den erweiterten Ping verwenden, um die DSCP-Codepunkte im IPv4-Paketheader festzulegen, ist der ToS-Dezimalwert (Type-of-Service) (in diesem Fall 40) in der
tos
Option desping
Befehls erforderlich.Wenn Sie hping verwenden, um die DSCP-Codepunkte im IPv4-Paketheader festzulegen, ist der ToS-Hexadezimalwert (in diesem Fall 28) in der
--tos
Option deshping
Befehls erforderlich.
Wenn Ihre Fähigkeiten zur Konvertierung von Binär in Hexadezimal- oder Binär-Dezimalzahl eingerostet sind, können Sie einen Online-Rechner verwenden, z. B. http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html .
Hinweis:Wenn Sie einen binären DSCP-Codepunktwert konvertieren, müssen Sie am Ende zwei zusätzliche Nullen hinzufügen. Verwenden Sie also anstelle von 001010 00101000. Diese 0-Werte (das 7. und 8. Bit) sind reserviert und werden ignoriert, aber wenn Sie sie nicht in die Konvertierung einbeziehen, sind Ihre Hexadezimal- und Dezimalwerte falsch.
Erweiterter Ping, der von Gerät R1 gesendet wird
user@R1> ping 172.16.70.1 tos 40 rapid count 25 PING 172.16.70.1 (172.16.70.1): 56 data bytes !!!!!!!!!!!!!!!!!!!!!!!!! --- 172.16.70.1 ping statistics --- 25 packets transmitted, 25 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.430/0.477/0.847/0.079 ms
hping Gesendet von Host 1
root@host1> hping 172.16.70.1 --tos 28 -c 25 HPING 172.16.70.1 (eth1 172.16.70.1): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.3 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.6 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=4 win=0 rtt=0.6 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=5 win=0 rtt=0.3 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=6 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=7 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=8 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=9 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=10 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=11 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=12 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=13 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=14 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=15 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=16 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=17 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=18 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=19 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=20 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=21 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=22 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=23 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=24 win=0 rtt=0.4 ms
Vergewissern Sie sich auf Gerät R2, dass Warteschlange 2 inkrementiert wird.
Codepunkt 001010 ist der gesicherten Weiterleitung zugeordnet, die standardmäßig Warteschlange 2 verwendet.
user@R2> show interfaces extensive ge-1/0/3 | find "queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 0 0 0 1 0 0 0 2 50 25 0 3 3 3 0 Queue number: Mapped forwarding classes 0 best-effort 1 expedited-forwarding 2 assured-forwarding 3 network-control
Bedeutung
Die Ausgabe zeigt, dass Warteschlange 2 um 50 Pakete erhöht wurde, nachdem 50 Pakete über den Router gesendet wurden.