Konfiguration des Datenverkehrs-Samplings auf Routern der MX-, M- und T-Serie
Datenverkehrs-Sampling ermöglicht es Ihnen, den Datenverkehr auf eine Physical Interface Card (PIC) zu kopieren, die die Datenstromabrechnung ausführt, während der Router das Paket an sein ursprüngliches Ziel weiterleitet. Sie können den Router so konfigurieren, dass er Sampling an einem der folgenden drei Standorte ausführt:
In der Routing-Engine mithilfe des Stichprobenvorgangs. Um diese Methode auszuwählen, verwenden Sie einen Filter (Ein- oder Ausgabe) mit einem übereinstimmenden Ausdruck, der die
then sample
Anweisung enthält.Auf Überwachungsservices, Adaptive Services oder Multiservices PIC.
Auf einem Inline-Datenpfad ohne die Notwendigkeit eines Services Dense Port Concentrator (DPC). Um dieses aktive Inline-Sampling zu tun, definieren Sie eine Sampling-Instanz mit bestimmten Eigenschaften. Ein flexibler PIC Concentrator (FPC) kann nur eine Instanz unterstützen. für jede Instanz wird entweder picbasiertes Sampling oder Inline-Sampling pro Familie unterstützt. Inline-Sampling unterstützt Version 9 und IPFIX Flow Collection-Vorlagen.
Routing-Engine-basiertes Sampling wird auf VPN-Routing- und Weiterleitungsinstanzen (VRF) nicht unterstützt.
Konfigurieren des Firewall-Filters für Traffic Sampling
Um den Firewall-Filter für die Datenverkehrs sampling zu konfigurieren, müssen Sie die folgenden Aufgaben ausführen:
Erstellen Sie einen Firewall-Filter, der auf die logischen Schnittstellen angewendet wird, die stichprobeniert werden, indem Sie die
filter
Anweisung auf Hierarchieebene[edit firewall family family-name]
angeben. In der Filter-Anweisungthen
müssen Sie den Aktionsmodifizierersample
und die Aktionaccept
angeben.filter filter-name { term term-name { then { sample; accept; } } }
Weitere Informationen zu Firewall-Filteraktionen und -modifizierern finden Sie im Benutzerhandbuch für Routing-Richtlinien, Firewall-Filter und Traffic Policer.
Wenden Sie den Filter auf die Schnittstellen an, an denen Sie Datenverkehrsproben erfassen möchten, indem Sie die Anweisungen und
filter
dieaddress
Anweisungen auf Hierarchieebene[edit interfaces interface-name unit logical-unit-number family family-name]
einbinden:address address { } filter { input filter-name; }
Die folgenden Voraussetzungen gelten für Router der M-, MX- und T-Serie, wenn Sie die Datenverkehrs-Sampling an Schnittstellen und in Firewall-Filtern konfigurieren:
Wenn Sie eine Beispielaktion in einem Firewall-Filter für eine Inet- oder Inet6-Familie auf einer Schnittstelle konfigurieren, ohne die Einstellungen für Weiterleitungsoptionen zu konfigurieren, können Betriebsprobleme auftreten, wenn Sie auch Portspiegelungs- oder Flow-Tap-Funktionen konfigurieren. In einem solchen Szenario werden alle Pakete, die mit dem Firewall-Filter übereinstimmen, fälschlicherweise an den Service PIC gesendet.
Wenn Sie die
then sample
Anweisung auf[edit firewall family inet filter filter-name term term-name]
Hierarchieebene einschließen, um eine Beispielaktion in einem Firewall-Filter für IPv4-Pakete anzugeben, müssen Sie auch diefamily inet
Anweisung auf[edit forwarding-options sampling]
Hierarchieebene oder dieinstance instance-name family inet
Anweisung auf[edit forwarding-options sampling]
Hierarchieebene einschließen. Ebenso müssen Sie, wenn Sie die anweisungsample
auf[edit firewall family inet6 filter filter-name term term-name]
Hierarchieebene zur Angabe einer Beispielaktion in einem Firewall-Filter für IPv6-Pakete einschließen, auch eine Anweisung auf[edit forwarding-options sampling]
Hierarchieebene oder dieinstance instance-name family inet6
Anweisung auf[edit forwarding-options sampling]
Hierarchieebene einschließenfamily inet6
. Andernfalls tritt ein Commit-Fehler auf, wenn Sie versuchen, die Konfiguration zu bestätigen.Wenn Sie das Datenverkehrs-Sampling auf einer logischen Schnittstelle konfigurieren, indem Sie die Sampling-Ein- oder Sampling-Ausgabeanweisungen auf Hierarchieebene
[edit interface interface-name unit logical-unit-number]
einschließen, müssen Sie auch diefamily inet | inet6
Anweisung auf[edit forwarding-options sampling]
Hierarchieebene oder dieinstance instance-name family inet | inet6
Anweisung auf[edit forwarding-options sampling]
Hierarchieebene einschließen.
Konfigurieren von Traffic Sampling auf einer logischen Schnittstelle
Um die Datenverkehrs-Sampling auf einer beliebigen logischen Schnittstelle zu konfigurieren, aktivieren Sie sampling und geben eine Abtastrate ohne Null an, indem Sie die Sampling-Anweisung auf Hierarchieebene [edit forwarding-options]
angeben:
sampling { input { rate number; run-length number; max-packets-per-second number; maximum-packet-length bytes; }
Wenn Sie auf Routing-Engine basierendes Sampling verwenden, geben Sie den Schwellenwert für den Datenverkehr an, indem Sie die max-packets-per-second
Anweisung angeben. Der Wert ist die maximale Anzahl von Paketen, die beprobt werden müssen, ab der der Sampling-Mechanismus beginnt, Pakete fallen zu lassen. Der Bereich reicht von 0 bis 65.535. Der Wert 0 weist die Packet Forwarding Engine an, keine Pakete zu testen. Der Standardwert ist 1000.
Wenn Sie die aktive Überwachung konfigurieren und in der output
Anweisung einen Monitoring Services, Adaptive Services oder Multiservices-PIC angeben oder wenn Sie Inline-Sampling konfigurieren, wird der max-packets-per-second
Wert ignoriert.
Geben Sie die Abtastrate durch Festlegen der Werte für rate
und run-length
an (siehe Abbildung 1).
Konfigurieren Sie das Eingangs-Sampling nicht auf ms-
logischen Schnittstellen, auf denen eine PIC-basierte Datenstromüberwachung aktiviert ist, was unerwünschtes Datenstromüberwachungsverhalten verursacht und zu wiederholtem Sampling eines einzelnen Pakets führen kann. Ab Junos OS Version 15.1 tritt ein Commit-Fehler auf, wenn Sie versuchen, das Sampling des eingehenden Datenverkehrs auf dieser Schnittstelle zu konfigurieren. In Junos OS Version 14.2 und früher tritt der Commit-Fehler nicht auf, aber Sie sollten die Sampling des eingehenden Datenverkehrs auf dieser Schnittstelle nicht konfigurieren.
Wenn die PIC-basierte Datenstromüberwachung auf einer ms-Schnittstelle aktiviert ist, tritt ein Commit-Check-Fehlerfpc/pic/port.logical-unit auf, wenn Sie versuchen, die Sampling-Sampling für eingehenden Datenverkehr auf dieser Schnittstelle zu konfigurieren. Dieser Fehler tritt auf, weil eine Kombination aus Eingangs-Sampling und PIC-basierten Datenstromüberwachungsvorgängen auf einer ms-
logischen Schnittstelle unerwünschtes Datenstromüberwachungsverhalten verursacht und zu wiederholtem Sampling eines einzelnen Pakets führen kann. Sie dürfen die Eingangs-Sampling nicht auf ms-
logischen Schnittstellen konfigurieren, auf denen die PIC-basierte Datenstromüberwachung aktiviert ist.
Die rate
Anweisung gibt das Verhältnis der Pakete an, die stichprobeniert werden sollen. Wenn Sie beispielsweise eine Rate von 10 konfigurieren, x wird die Anzahl der Pakete von jedem 10 gemessen, wobei x=Lauflänge + 1. Standardmäßig ist die Rate 0, was bedeutet, dass kein Datenverkehr erfasst wird.
Die run-length
Anweisung gibt die Anzahl der übereinstimmenden Pakete an, die nach dem anfänglichen One-Packet-Trigger-Ereignis samplen sollen. Standardmäßig beträgt die Lauflänge 0, was bedeutet, dass nach dem Triggerereignis kein Datenverkehr mehr erfasst wird. Der Bereich reicht von 0 bis 20. Wenn Sie eine Ausführungslänge größer als 0 konfigurieren, können Sie Stichprobenpakete durchführen, die den bereits stichprobenierten Paketen folgen.
Die run-length
Konfigurationsanweisungen werden maximum-packet-length
auf MX80-Routern nicht unterstützt.
Wenn Sie die Anweisung nicht einschließen, ist das input
Sampling deaktiviert.
Um die erfassten Pakete in einer Datei zu erfassen, fügen Sie die file
Anweisung auf [edit forwarding-options sampling output]
Hierarchieebene ein. Die Ausgabedateiformate werden weiter unten im Kapitel besprochen.
Deaktivierung des Datenverkehrs-Sampling
Um die Datenverkehrs sampling explizit auf dem Router zu deaktivieren, fügen Sie die disable
Anweisung auf Hierarchieebene [edit forwarding-options sampling]
ein:
disable;
Einmaliges Sampling
Um ein Paket für die aktive Überwachung nur ein einziges Mal zu testen, fügen Sie die sample-once
Anweisung auf [edit forwarding-options sampling]
Hierarchieebene ein:
sample-once;
Die Einstellung dieser Option vermeidet Paketdopplungen in Fällen, in denen Sampling sowohl an den Eingangs- als auch an den Ausgangsschnittstellen aktiviert ist, und vereinfacht die Analyse des stichprobenierten Datenverkehrs.
Beibehaltung des prerewrite-ToS-Wertes für Ausgehende Stichproben oder gespiegelte Pakete
Ab Junos OS Version 14.1 können Sie den vornormalisierten ToS-Wert (Typ of Service) in ausgehenden oder gespiegelten Paketen beibehalten. Fügen Sie die pre-rewrite-tos
Anweisung auf Hierarchieebene [edit forwarding-options sampling]
ein.
Auf MPC-basierten Schnittstellen können Sie ToS-Umschreibungen entweder mithilfe der CoS-Konfiguration (Class-of-Service) konfigurieren, indem Sie die rewrite-rules dscp rule_name
[edit class-of-service interfaces interface-name unit logical-unit-number]
Anweisung auf Hierarchieebene einbinden, oder die Firewall-Filterkonfiguration verwenden, indem Sie die dscp
Anweisung auf [edit firewall family family-name filter filter-name term term-name then]
Hierarchieebene einbinden. Wenn toS-Rewrite konfiguriert ist, enthalten die ausgangsgespiegelten oder stichprobenierten Kopien standardmäßig die ToS-Werte nach dem Umschreiben. Mit der pre-rewrite-tos
Konfiguration können Sie den vorkonfigurierten ToS-Wert in den stichprobenierten oder gespiegelten Paketen beibehalten.
Wenn toS-Rewrite auf der Ausgangsschnittstelle konfiguriert wird, indem sowohl die CoS- als auch die Firewall-Filterkonfiguration verwendet wird, und wenn die
pre-rewrite-tos
Anweisung auch konfiguriert ist, enthalten die ausgehenden sampleten Pakete den DSCP-Wertsatz mithilfe der Firewall-Filterkonfiguration. Wenn diepre-rewrite-tos
Anweisung jedoch nicht konfiguriert ist, enthalten die ausgehenden Stichprobenpakete den DSCP-Wert, der von der CoS-Konfiguration festgelegt wurde.Mit der
pre-rewrite-tos
Anweisung können Sie konfigurieren, dass die Vornormalisierungs-ToS-Werte nur für Samplings unterfamily inet
undfamily inet6
.Diese Funktion kann nicht auf
[edit logical-systems]
Hierarchieebene konfiguriert werden. Sie kann nur auf globaler Ebene unter derforwarding-option
Konfiguration konfiguriert werden.Wenn das ToS-Rewrite mithilfe eines Firewall-Filters sowohl für die Eingangs- als auch für die Ausgangsschnittstelle konfiguriert wird, enthalten die stichprobenierten Pakete den DSCP-Wert, der von der Eingangs-ToS-Rewrite-Konfiguration festgelegt wird, wenn die
pre-rewrite-tos
Anweisung konfiguriert ist. Wenn diepre-rewrite-tos
Anweisung jedoch nicht konfiguriert ist, enthalten die Ausgangsdatenpakete den DSCP-Wert, der von der ToS-Umschreibungskonfiguration für den Ausgangs-Firewall-Filter festgelegt wurde.Wenn die
pre-rewrite-tos
Anweisung konfiguriert ist und ein Deaktivierungs- oder Löschvorgang auf Hierarchieebene durchgeführt wird,pre-rewrite-tos
bleibt die[edit forwarding-options]
Konfiguration weiterhin aktiv. Um diepre-rewrite-tos
Konfiguration für einen solchen Fall zu deaktivieren, müssen Sie diepre-rewrite-tos
Anweisung[edit forwarding-options sampling]
auf Hierarchieebene explizit deaktivieren oder löschen, bevor Sie auf Hierarchieebene einen Deaktivierungs- oder Löschvorgang[edit forwarding-options]
durchführen.
Konfiguration der Datenverkehrs-Sampling-Ausgabe
Um die Datenverkehrs-Sampling-Ausgabe zu konfigurieren, fügen Sie die folgenden Anweisungen auf Hierarchieebene ein [edit forwarding-options sampling family (inet | inet6 | mpls) output]
:
aggregate-export-interval seconds; flow-active-timeout seconds; flow-inactive-timeout seconds; extension-service service-name; flow-server hostname { aggregation { autonomous-system; destination-prefix; protocol-port; source-destination-prefix { caida-compliant; } source-prefix; } autonomous-system-type (origin | peer); (local-dump | no-local-dump); port port-number; source-address address; version format; version9 { template template-name; } } interface interface-name { engine-id number; engine-type number; source-address address; } file { disable; filename filename; files number; size bytes; (stamp | no-stamp); (world-readable | no-world-readable); }
Um die Inline-Datenstromüberwachung auf Routern der MX-Serie zu konfigurieren, fügen Sie die inline-jflow
Anweisung auf Hierarchieebene [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output]
ein. Inline-Sampling unterstützt ausschließlich ein neues Format namens IP_FIX, das UDP als Transportprotokoll verwendet. Wenn Sie Inline-Sampling konfigurieren, müssen Sie die version-ipfix
Anweisung auf [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output flow-server address]
Hierarchieebene und auch auf [edit services flow-monitoring]
Hierarchieebene einschließen. Weitere Informationen zur Konfiguration der Inline-Datenstromüberwachung finden Sie unter Konfigurieren der aktiven Datenstromüberwachung inline mithilfe von Routern, Switches oder NFX250.
Um den stichprobenierten Datenverkehr an eine Schnittstelle zur Datenstromüberwachung zu leiten, fügen Sie die Anweisung eininterface
. engine-type
Die engine-id
Anweisungen geben die Identität und Die Typnummern der Schnittstelle an. Sie werden dynamisch basierend auf dem Flexible PIC Concentrator (FPC), den PIC- und Steckplätzennummern und dem Gehäusetyp generiert. Die source-address
Anweisung gibt die Quelle des Datenverkehrs an.
Fügen Sie ab Junos OS Version 19.3R1 die Anweisung auf [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output]
Hierarchieebene ein, um die flow-server
Inline-Datenstromüberwachung auf Juniper Sky Advanced Threat Prevention (ATP) zu konfigurieren. Inline-Sampling unterstützt ausschließlich ein neues Format namens IP_FIX, das UDP als Transportprotokoll verwendet. Wenn Sie Inline-Sampling konfigurieren, müssen Sie die version-ipfix
Anweisung auf [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output flow-server address]
Hierarchieebene und auch auf [edit services flow-monitoring]
Hierarchieebene einschließen.
Um die Datenstrom-Sampling-Version 9-Ausgabe zu konfigurieren, müssen Sie die template
Anweisung auf [edit forwarding-options sampling output version9]
Hierarchieebene einschließen. Informationen zu cflowd finden Sie unter Aktivieren der Datenstromaggregation.
Die aggregate-export-interval
Anweisung wird in Konfigurieren der verworfenen Buchhaltung beschrieben, und das flow-active-timeout
und flow-inactive-timeout
die Anweisungen werden in Konfigurieren der Datenstromüberwachung beschrieben.
Die Ergebnisse der Datenverkehrs-Sampling werden automatisch in einer Datei im Verzeichnis/var/tmp gespeichert. Um die erfassten Pakete in einer Datei zu erfassen, fügen Sie die file
Anweisung auf [edit forwarding-options sampling family inet output]
Hierarchieebene ein:
file { disable; filename filename; files number; size bytes; (stamp | no-stamp); (world-readable | no-world-readable); }
Ausgabeformat für Datenverkehrs-Sampling
Die Datenverkehrs-Sampling-Ausgabe wird in einer ASCII-Textdatei gespeichert. Das folgende Beispiel ist ein Beispiel für die Datenverkehrs-Sampling-Ausgabe, die in einer Datei im Verzeichnis/var/tmp gespeichert wird. Jede Zeile in der Ausgabedatei enthält Informationen für ein Stichprobenpaket. Sie können optional einen Zeitstempel für jede Zeile anzeigen.
Die Spalten-Header werden nach jeder Gruppe von 1000 Paketen wiederholt.
# Apr 7 15:48:50 Time Dest Src Dest Src Proto TOS Pkt Intf IP TCP addr addr port port len num frag flags Apr 7 15:48:54 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0 Apr 7 15:48:55 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0 Apr 7 15:48:56 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0 Apr 7 15:48:57 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0 Apr 7 15:48:58 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0
Geben Sie Folgendes ein, um die Zeitstempeloption für die Datei my-sample
festzulegen:
[edit forwarding-options sampling output file] user@host# set filename my-sample files 5 size 2m world-readable stamp;
Wenn Sie die Zeitstempeloption umschalten, wird in der Datei ein neuer Header enthalten. Wenn Sie die stamp
Option festgelegt haben, wird das Time
Feld angezeigt.
# Apr 7 15:48:50 # Time Dest Src Dest Src Proto TOS Pkt Intf IP TCP # addr addr port port len num frag flags # Feb 1 20:31:21 # Dest Src Dest Src Proto TOS Pkt Intf IP TCP # addr addr port port len num frag flags
Ablaufverfolgung von Datenverkehrs-Sampling-Vorgängen
Ablaufverfolgungsvorgänge verfolgen alle Datenverkehrsabtastvorgänge und zeichnen sie in einer Protokolldatei im Verzeichnis/var/log auf. Standardmäßig heißt diese Datei /var/log/sampled. Die Standarddateigröße beträgt 128K, und 10 Dateien werden erstellt, bevor die erste überschrieben wird.
Um Datenverkehrs-Sampling-Vorgänge nachzuverfolgen, fügen Sie die traceoptions
Anweisung auf Hierarchieebene [edit forwarding-options sampling]
ein:
traceoptions { no-remote-trace; file filename <files number> <size bytes> <match expression> <world-readable | no-world-readable>; }
Beispiele für Datenverkehrs-Sampling
- Beispiel: Sampling einer einzelnen SONET/SDH-Schnittstelle
- Beispiel: Sampling des gesamten Datenverkehrs von einer einzigen IP-Adresse
- Beispiel: Sampling des gesamten FTP-Datenverkehrs
Beispiel: Sampling einer einzelnen SONET/SDH-Schnittstelle
Die folgende Konfiguration sammelt statistische Sampling-Informationen aus einem kleinen Prozentsatz des gesamten Datenverkehrs auf einer einzigen SONET/SDH-Schnittstelle und sammelt sie in einer Datei mit dem Namen sonet-samples.txt
.
Filter erstellen:
[edit firewall family inet] filter { input sample-sonet { then { sample; accept; } } }
Wenden Sie den Filter auf die SONET/SDH-Schnittstelle an:
[edit interfaces] so-0/0/1 { unit 0 { family inet { filter { input sample-sonet; } address 10.127.68.254/32 { destination 172.16.74.7; } } } }
Konfigurieren Sie schließlich das Sampling des Datenverkehrs:
[edit forwarding-options] sampling { input { family inet { rate 100; run-length 2; } } family inet { output { file { filename sonet-samples.txt; files 40; size 5m; } } } }
Beispiel: Sampling des gesamten Datenverkehrs von einer einzigen IP-Adresse
Die folgende Konfiguration sammelt statistische Informationen über jedes Paket, das den Router an einem bestimmten Gigabit-Ethernet-Port eingibt und von einer einzigen Quell-IP-Adresse von 172.16.92.31
stammt, und sammelt sie in einer Datei mit dem Namen samples-172-16-92-31.txt
.
Filter erstellen:
[edit firewall family inet] filter one-ip { term get-ip { from { source-address 172.16.92.31; } then { sample; accept; } } }
Wenden Sie den Filter auf die Gigabit-Ethernet-Schnittstelle an:
[edit interfaces] ge-4/1/1 { unit 0 { family inet { filter { input one-ip; } address 10.45.92.254; } } }
Sammeln Sie schließlich Statistiken zu allen Kandidatenmustern; sammeln Sie in diesem Fall alle Statistiken:
[edit forwarding-options] sampling { input { family inet { rate 1; } } family inet { output { file { filename samples-172-16-92-31.txt; files 100; size 100k; } } } }
Beispiel: Sampling des gesamten FTP-Datenverkehrs
Die folgende Konfiguration sammelt statistische Informationen über einen moderaten Prozentsatz von Paketen unter Verwendung des FTP-Datenübertragungsprotokolls im Ausgabepfad einer bestimmten T3-Schnittstelle und sammelt die Informationen in einer Datei mit dem Namen t3-ftp-traffic.txt
.
Filter erstellen:
[edit firewall family inet] filter ftp-stats { term ftp-usage { from { destination-port [ftp ftp-data]; } then { sample; accept; } } }
Wenden Sie den Filter auf die T3-Schnittstelle an:
[edit interfaces] t3-7/0/2 { unit 0 { family inet { filter { input ftp-stats; } address 10.35.78.254/32 { destination 10.35.78.4; } } } }
Sammeln Sie schließlich Statistiken zu 10 Prozent der Kandidatenstichproben:
[edit forwarding-options] sampling { input { family inet { rate 10; } } family inet { output { file { filename t3-ftp-traffic.txt; files 50; size 1m; } } } }
pre-rewrite-tos
Anweisung auf Hierarchieebene
[edit forwarding-options sampling]
ein.