Sie können DNS-Anfragen und -Antworten auswerten, indem Sie Ausdrücke verwenden, die mit DNS.REQ bzw. DNS.RES beginnen. Sie können auch das Transportschichtprotokoll identifizieren, das zum Senden der DNS-Nachrichten verwendet wird.
Die folgenden Funktionen geben den Inhalt einer DNS-Abfrage zurück.
| Funktion |
Beschreibung |
| DNS.REQ.QUESTION.DOMAIN |
Gibt den Domainnamen (den Wert des Feldes QNAME) im Fragenabschnitt der DNS-Abfrage zurück. Der Domainname wird als Textzeichenfolge zurückgegeben, die an EQ (), NE () und alle anderen Funktionen, die mit Text arbeiten, übergeben werden kann. |
| DNS.REQ.QUESTION.TYPE |
Gibt den Abfragetyp (den Wert des Feldes QTYPE) in der DNS-Abfrage zurück. Das Feld gibt den Typ des Ressourceneintrags an (z. B. A, NS oder CNAME), für den der Namenserver abgefragt wird. Der zurückgegebene Wert kann mit einem der folgenden Werte verglichen werden, indem die Funktionen EQ () und NE () verwendet werden: A, AAAA, NS, SRV, PTR, CNAME, SOA, MX und ANY. Hinweis: Sie können nur die Funktionen EQ () und NE () mit der Funktion TYPE verwenden. Beispiel: DNS.REQ.QUESTION.TYPE.EQ (MX) |
Die folgenden Funktionen geben den Inhalt einer DNS-Antwort zurück.
| Funktion |
Beschreibung |
| DNS.RES.HEADER.RCODE |
Gibt den Antwortcode (den Wert des RCODE-Feldes) im Header-Abschnitt der DNS-Antwort zurück. Sie können nur die Funktionen EQ () und NE () mit der Funktion RCODE verwenden. Es folgen die möglichen Werte: NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP und REFUSED. |
| DNS.RES.QUESTION.DOMAIN |
Gibt den Domainnamen (den Wert des Feldes QNAME) im Fragenabschnitt der DNS-Antwort zurück. Der Domainname wird als Textzeichenfolge zurückgegeben, die an EQ (), NE () und alle anderen Funktionen, die mit Text arbeiten, übergeben werden kann. |
| DNS.RES.QUESTION.TYPE |
Gibt den Abfragetyp (den Wert des Feldes QTYPE) im Fragenabschnitt der DNS-Antwort zurück. Das Feld gibt den Typ des Ressourceneintrags an (z. B. A, NS oder CNAME), der in der Antwort enthalten ist. Der zurückgegebene Wert kann mit einem der folgenden Werte verglichen werden, indem die Funktionen EQ () und NE () verwendet werden: A, AAAA, NS, SRV, PTR, CNAME, SOA, MX und ANY. Sie können nur die Funktionen EQ () und NE () mit der Funktion TYPE verwenden. Beispiel: DNS.RES.QUESTION.TYPE.EQ (SOA) |
Die folgenden Funktionen geben den Protokollnamen der Transportschicht zurück.
| Funktion |
Beschreibung |
| DNS.REQ.TRANSPORT |
Gibt den Namen des Transportschichtprotokolls zurück, das zum Senden der DNS-Abfrage verwendet wurde. Mögliche zurückgegebene Werte sind TCP, DOT und UDP. Sie können nur die Funktionen EQ () und NE () mit der Funktion TRANSPORT verwenden. Beispiel: DNS.REQ.TRANSPORT.EQ (TCP) |
| DNS.RES.TRANSPORT |
Gibt den Namen des Transportschichtprotokolls zurück, das für die DNS-Antwort verwendet wurde. Mögliche zurückgegebene Werte sind TCP, DOT und UDP. Sie können nur die Funktionen EQ () und NE () mit der Funktion TRANSPORT verwenden. Beispiel: DNS.RES.TRANSPORT.EQ (TCP) |
Die folgenden Funktionen geben den Namen des übereinstimmenden Speicherorts zurück, wenn die Abfrage die DNS-ECS-Option enthält oder nicht.
| Funktion |
Beschreibung |
| DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION |
Gibt den Namen des übereinstimmenden Speicherorts zurück, der in der Abfrage mit der Option DNS ECS verwendet wurde. Beispiel :( DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION (".CH... ") |
| client.IP.SRC.MATCHES_LOCATION |
Gibt den Namen des übereinstimmenden Speicherorts zurück, der in der Abfrage ohne die DNS-ECS-Option verwendet wurde. Beispiel: (Client.IP.src.Matches_Location (".CH... ") |
| DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION ODER client.IP.SRC.Matches_LOCATION |
Allgemeiner Ausdruck, der in der Richtlinie verwendet wird, wenn der DNS-Verkehr möglicherweise die ECS-Option in der Abfrage hat oder nicht. Example: "(((DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION(".CH.....").typecast_text_t) ALT (client.IP.SRC.MATCHES_LOCATION(".CH.....").typecast_text_t)).eq("true"))" |