Citrix ADC

Expressions pour évaluer un message DNS et identifier son protocole porteur

Vous pouvez évaluer les demandes et les réponses DNS à l’aide d’expressions commençant par DNS.REQ et DNS.RES, respectivement. Vous pouvez également identifier le protocole de la couche transport utilisé pour envoyer les messages DNS.

Les fonctions suivantes renvoient le contenu d’une requête DNS.

Fonction Description
DNS.REQ.QUESTION.DOMAIN Renvoie le nom de domaine (la valeur du champ QNAME) dans la section question de la requête DNS. Le nom de domaine est renvoyé sous forme de chaîne de texte, qui peut être transmise à EQ (), NE () et à toute autre fonction qui fonctionne avec du texte.
DNS.REQ.QUESTION.TYPE Renvoie le type de requête (la valeur du champ QTYPE) dans la requête DNS. Le champ indique le type d’enregistrement de ressource (par exemple, A, NS ou CNAME) pour lequel le serveur de noms est interrogé. La valeur renvoyée peut être comparée à l’une des valeurs suivantes en utilisant les fonctions EQ () et NE () : A, AAAA, NS, SRV, PTR, CNAME, SOA, MX et ANY. Remarque : Vous ne pouvez utiliser que les fonctions EQ () et NE () avec la fonction TYPE. Exemple : DNS.REQ.QUESTION.TYPE.EQ (MX)

Les fonctions suivantes renvoient le contenu d’une réponse DNS.

Fonction Description
DNS.RES.HEADER.RCODE Renvoie le code de réponse (la valeur du champ RCODE) dans la section d’en-tête de la réponse DNS. Vous ne pouvez utiliser que les fonctions EQ () et NE () avec la fonction RCODE. Les valeurs possibles sont les suivantes : NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP et REFUSED.
DNS.RES.QUESTION.DOMAIN Renvoie le nom de domaine (la valeur du champ QNAME) dans la section question de la réponse DNS. Le nom de domaine est renvoyé sous forme de chaîne de texte, qui peut être transmise à EQ (), NE () et à toute autre fonction qui fonctionne avec du texte.
DNS.RES.QUESTION.TYPE Renvoie le type de requête (la valeur du champ QTYPE) dans la section question de la réponse DNS. Le champ indique le type d’enregistrement de ressource (par exemple, A, NS ou CNAME) contenu dans la réponse. La valeur renvoyée peut être comparée à l’une des valeurs suivantes en utilisant les fonctions EQ() et NE() : A, AAAA, NS, SRV, PTR, CNAME, SOA, MX et ANY. Vous ne pouvez utiliser que les fonctions EQ() et NE() avec la fonction TYPE. Exemple : DNS.RES.QUESTION.TYPE.EQ (SOA)

Les fonctions suivantes renvoient le nom du protocole de la couche transport.

Fonction Description
DNS.REQ.TRANSPORT Renvoie le nom du protocole de la couche transport qui a été utilisé pour envoyer la requête DNS. Les valeurs possibles renvoyées sont TCP et UDP. Vous ne pouvez utiliser que les fonctions EQ () et NE () avec la fonction TRANSPORT. Exemple : DNS.REQ.TRANSPORT.EQ (TCP)
DNS.RES.TRANSPORT Renvoie le nom du protocole de la couche transport qui a été utilisé pour la réponse DNS. Les valeurs possibles renvoyées sont TCP et UDP. Vous ne pouvez utiliser que les fonctions EQ () et NE () avec la fonction TRANSPORT. Exemple : DNS.RES.TRANSPORT.EQ (TCP)

Les fonctions suivantes renvoient le nom de l’emplacement correspondant lorsque la requête contient ou ne contient pas l’option DNS ECS.

Fonction Description
DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION Renvoie le nom de l’emplacement correspondant qui a été utilisé dans la requête avec l’option DNS ECS. Exemple :(DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION(“.CH…..”)
client.IP.SRC.MATCHES_LOCATION Renvoie le nom de l’emplacement correspondant qui a été utilisé dans la requête sans l’option DNS ECS. Exemple : (client.IP.SRC.MATCHES_LOCATION(“.CH…..”)
DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION OR client.IP.SRC.MATCHES_LOCATION Expression commune à utiliser dans la stratégie lorsque le trafic DNS peut avoir ou non l’option ECS dans la requête. Exemple : “(((DNS.REQ.OPT.ECS.IP.MATCHES_LOCATION(“.CH…..”).typecast_text_t) ALT (client.IP.SRC.MATCHES_LOCATION(“.CH…..”).typecast_text_t)).eq(“true”))”
Expressions pour évaluer un message DNS et identifier son protocole porteur