Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Firewall-Filter Übereinstimmungsbedingungen basierend auf Bitfeldwerten

Übereinstimmungsbedingungen für Bitfeldwerte

Tabelle 1 listet die Bedingungen für Firewall-Filterübereinstimmungen auf, die darauf basieren, ob bestimmte Bitfelder in einem Paket festgelegt sind oder nicht. In der zweiten und dritten Spalte sind die Datenverkehrstypen aufgeführt, für die die Übereinstimmungsbedingung unterstützt wird.

Tabelle 1: Binär- und Bitfeld-Übereinstimmungsbedingungen für Firewall-Filter

Bitfeld-Übereinstimmungsbedingung

Werte abgleichen

Protokollfamilien für Standard-Stateless-Firewall-Filter

Protokollfamilien für Servicefilter

fragment-flags flags

Hexadezimalwerte oder Textaliase für das Feld für die Drei-Bit-IP-Fragmentierung im IP-Header.

Familie Inet

Familie Inet

Fragment-Offset value

Hexadezimalwerte oder Textaliase für das Feld "13-Bit-Fragment-Offset" im IP-Header.

Familie Inet

Familie Inet

tcp-flags value

Hexadezimalwerte oder Textaliase für die 6 Bit niedriger Ordnung des 8-Bit-TCP-Flags-Felds im TCP-Header.

Familie InetFamilie inet6VPLS der FamilieFamilien-BrückeMPLS-Familie

Familie InetFamilie inet6

 Das Junos OS überprüft nicht automatisch das erste Fragmentbit, wenn TCP-Flags für IPv4-Datenverkehr abgeglichen werden. Um das erste Fragmentbit nur für IPv4-Datenverkehr zu überprüfen, verwenden Sie die Übereinstimmungsbedingung für das erste Fragment .

Übereinstimmungsbedingungen für gemeinsame Bitfeldwerte oder -kombinationen

In Tabelle 2 werden die Bedingungen für Firewall-Filterübereinstimmungen beschrieben, die darauf basieren, ob bestimmte häufig verwendete Werte oder Kombinationen von Bitfeldern in einem Paket festgelegt sind oder nicht.

Sie können Textsynonyme verwenden, um einige gängige Bitfeldübereinstimmungen anzugeben. Im vorherigen Beispiel können Sie tcp-initial als dieselbe Übereinstimmungsbedingung angeben.

Hinweis:

Bei einigen der Übereinstimmungsbedingungen für numerische Bereiche und Bitfelder können Sie ein Textsynonym angeben. Eine vollständige Liste der Synonyme:

  • Wenn Sie die J-Web-Schnittstelle verwenden, wählen Sie das Synonym aus der entsprechenden Liste aus.

  • Wenn Sie die CLI verwenden, geben Sie nach der from-Anweisung ein Fragezeichen (?) ein.

Tabelle 2: Bitfeld-Übereinstimmungsbedingungen für gängige Kombinationen

Übereinstimmungsbedingung

Beschreibung

Protokollfamilien für Standard-Stateless-Firewall-Filter

Protokollfamilien für Servicefilter

Erstes Fragment

Textalias für die Bitfeldübereinstimmungsbedingung Fragment-Offset 0, der das erste Fragment eines fragmentierten Pakets angibt.

Familie Inet

Familie Inet

is-fragment

Textalias für die Bitfeldübereinstimmungsbedingung Fragment-Offset 0, mit Ausnahme der Angabe, die ein nachgestelltes Fragment eines fragmentierten Pakets angibt.

Familie Inet

Familie Inet

TCP-Established

Alias für die Bitfeld-Übereinstimmungsbedingung tcp-flags "(ack | rst)", der eine etablierte TCP-Sitzung angibt, aber nicht das erste Paket einer TCP-Verbindung.

Familie InetFamilie inet6

tcp-initial

Alias für die Bitfeld-Übereinstimmungsbedingung tcp-flags "(!ack & syn)", der das erste Paket einer TCP-Verbindung, aber keine etablierte TCP-Sitzung angibt.

Familie InetFamilie inet6

Logische Operatoren für Bitfeldwerte

Tabelle 3 listet die logischen Operatoren auf, die Sie auf einzelne Bitfeldwerte anwenden können, wenn Sie Übereinstimmungsbedingungen für zustandslose Firewall-Filter angeben. Die Operatoren sind in der Reihenfolge von der höchsten bis zur niedrigsten Priorität aufgelistet. Operationen sind linksassoziativ, d. h. die Operationen werden von links nach rechts verarbeitet.

Tabelle 3: Logische Bitfeldoperatoren

Rangfolge

Logischer Bitfeld-Operator

Beschreibung

1

(complex-match-condition)

Gruppierung: Die komplexe Übereinstimmungsbedingung wird ausgewertet, bevor Operatoren außerhalb der Klammern angewendet werden.

2

!match-condition

Negation: Eine Übereinstimmung tritt auf, wenn die Übereinstimmungsbedingung false ist.

3

match-condition-1 match-condition-2& odermatch-condition-1 + match-condition-2

Logisches UND – Eine Übereinstimmung tritt auf, wenn beide Übereinstimmungsbedingungen erfüllt sind.

4

match-condition-1 |  match-condition-2odermatch-condition-1 , match-condition-2

Logisches ODER – Eine Übereinstimmung tritt auf, wenn eine der Übereinstimmungsbedingungen wahr ist.

Übereinstimmung mit einem einzelnen Bitfeldwert oder Textalias

Für die Bitübereinstimmungsbedingungen für fragment-flags und tcp-flags können Sie Bedingungen für Firewall-Filterübereinstimmungen angeben, die darauf basieren, ob ein bestimmtes Bit im Paketfeld festgelegt ist oder nicht.

  • Numerischer Wert zum Angeben eines einzelnen Bits – Sie können eine Übereinstimmungsbedingung für ein einzelnes Bitfeld angeben, indem Sie einen numerischen Wert verwenden, für den ein Bit festgelegt ist. Abhängig von der Übereinstimmungsbedingung können Sie einen Dezimalwert, einen Binärwert oder einen Hexadezimalwert angeben. Um einen Binärwert anzugeben, geben Sie die Zahl mit dem Präfix b an. Um einen Hexadezimalwert anzugeben, geben Sie die Zahl mit dem Präfix 0x an.

    Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn das RST-Bit im Feld TCP-Flags festgelegt ist:

  • Textalias zum Angeben eines einzelnen Bits – Im Allgemeinen geben Sie eine Übereinstimmungsbedingung für ein einzelnes Bitfeld an, indem Sie einen Textalias in doppelte Anführungszeichen (" ") setzen.

    Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn das RST-Bit im Feld TCP-Flags festgelegt ist:

Abgleich mit mehreren Bitfeldwerten oder Textaliasen

Sie können eine Firewall-Filterübereinstimmungsbedingung angeben, die darauf basiert, ob ein bestimmter Satz von Bits in einem Paketfeld festgelegt ist.

  • Numerische Werte zum Angeben mehrerer gesetzter Bits – Wenn Sie einen numerischen Wert angeben, dessen binäre Darstellung mehr als ein gesetztes Bit enthält, wird der Wert als logisches UND der eingestellten Bits behandelt.

    Im folgenden Beispiel sind die beiden Übereinstimmungsbedingungen identisch. Eine Übereinstimmung tritt auf, wenn entweder Bit 0x01 oder 0x02 nicht festgelegt ist:

  • Textaliase, die allgemeine Bitfeldübereinstimmungen angeben: Sie können Textaliase verwenden, um einige allgemeine Bitfeldübereinstimmungen anzugeben. Sie geben diese Übereinstimmungen als einzelnes Schlüsselwort an.

    Im folgenden Beispiel wird die tcp-established-Bedingung , die ein Alias für "(ack | rst)" an, gibt an, dass eine Übereinstimmung bei anderen TCP-Paketen als dem ersten Paket einer Verbindung auftritt:

Übereinstimmung mit einem negierten Bitfeldwert

Um eine Übereinstimmung zu negieren, stellen Sie dem Wert ein Ausrufezeichen voran.

Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn das RST-Bit im Feld TCP-Flags nicht festgelegt ist:

Übereinstimmung mit dem logischen OR von zwei Bitfeldwerten

Sie können das (| oder ,) verwenden, um anzugeben, dass eine Übereinstimmung vorliegt, wenn ein Bitfeld mit einem von zwei angegebenen Bitfeldwerten übereinstimmt.

Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn es sich bei dem Paket nicht um das ursprüngliche Paket in einer TCP-Sitzung handelt:

In einer TCP-Sitzung wird das SYN-Flag nur im gesendeten Anfangspaket gesetzt, während das ACK-Flag in allen Paketen festgelegt wird, die nach dem ersten Paket gesendet werden. In einem Paket, das nicht das ursprüngliche Paket in einer TCP-Sitzung ist, wird entweder das SYN-Flag nicht oder das ACK-Flag gesetzt.

Abgleich mit dem logischen UND von zwei Bitfeldwerten

Sie können das (& oder +) verwenden, um anzugeben, dass eine Übereinstimmung vorliegt, wenn ein Bitfeld mit beiden der beiden angegebenen Bitfeldwerte übereinstimmt.

Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um das ursprüngliche Paket in einer TCP-Sitzung handelt:

In einer TCP-Sitzung wird das SYN-Flag nur im gesendeten Anfangspaket gesetzt, während das ACK-Flag in allen Paketen festgelegt wird, die nach dem ersten Paket gesendet werden. In einem Paket, das ein Anfangspaket in einer TCP-Sitzung ist, wird das SYN-Flag festgelegt und das ACK-Flag nicht.

Gruppieren von Bitfeld-Übereinstimmungsbedingungen

Sie können die verwenden, um anzugeben, dass die komplexe Übereinstimmungsbedingung innerhalb der Klammern ausgewertet wird, bevor Operatoren außerhalb der Klammern angewendet werden.

Im folgenden Beispiel tritt eine Übereinstimmung auf, wenn es sich bei dem Paket um einen TCP-Reset handelt oder wenn das Paket nicht das ursprüngliche Paket in der TCP-Sitzung ist:

In einer TCP-Sitzung wird das SYN-Flag nur im gesendeten Anfangspaket gesetzt, während das ACK-Flag in allen Paketen festgelegt wird, die nach dem ersten Paket gesendet werden. In einem Paket, das nicht das ursprüngliche Paket in einer TCP-Sitzung ist, wird das SYN-Flag nicht gesetzt und das ACK-Feld ist gesetzt.