flightPATH
flightPATH est la technologie de gestion du trafic intégrée à l'ADC. flightPATH vous permet d'inspecter le trafic HTTP et HTTPS en temps réel et d'effectuer des actions en fonction des conditions.
Les règles flightPATH doivent être appliquées à un VIP lorsque des objets IP sont utilisés dans les règles.
Une règle de trajectoire de vol est constituée de quatre éléments :
1. Détails, où vous définissez le nom du flightPATH et le service auquel il est rattaché.
2. Condition(s) pouvant être définie(s) et entraînant le déclenchement de la règle.
3. Évaluation qui permet de définir des variables pouvant être utilisées dans le cadre d'actions
4. Les actions qui sont utilisées pour gérer ce qui doit se passer lorsque les conditions sont remplies.
Détails
La section Détails présente les règles FlightPATH disponibles. Vous pouvez ajouter de nouvelles règles flightPATH et supprimer celles qui ont été définies dans cette section.
Ajout d'une nouvelle règle flightPATH
Champ
|
Description
|
Nom de FlightPATH
|
Ce champ est réservé au nom de la règle flightPATH. Le nom que vous indiquez ici apparaît et est référencé dans d'autres parties du CDA.
|
Appliqué à VS
|
Cette colonne est en lecture seule et indique le VIP auquel la règle flightPATH est appliquée.
|
Description
|
Valeur représentant une description fournie à des fins de lisibilité.
|
Étapes à suivre pour ajouter une règle flightPATH
1. Tout d'abord, cliquez sur le bouton Ajouter nouveau situé dans la section Détails.
2. Saisissez un nom pour votre règle. Exemple Auth2
3. Saisissez une description de votre règle
4. Une fois que la règle a été appliquée à un service, vous verrez la colonne Applied To se remplir automatiquement avec une adresse IP et une valeur de port.
5. N'oubliez pas d'appuyer sur le bouton "Update" (mise à jour) pour enregistrer vos modifications. Si vous faites une erreur, appuyez simplement sur "cancel" (annuler) pour revenir à l'état précédent.
Condition
Une règle FlightPATH peut comporter un nombre quelconque de conditions. Les conditions fonctionnent sur la base d'un ET, ce qui vous permet de définir la condition à partir de laquelle l'action est déclenchée. Si vous souhaitez utiliser une condition OR, créez une règle flightPATH supplémentaire et appliquez-la au VIP dans l'ordre correct.
Vous pouvez également utiliser RegEx en sélectionnant Match RegEx dans le champ Check et la valeur RegEx dans le champ Value. L'inclusion de l'évaluation RegEx étend considérablement les capacités de flightPATH.
Création d'une nouvelle condition flightPATH
Condition
Nous fournissons plusieurs conditions prédéfinies dans le menu déroulant et couvrent tous les scénarios prévus. Lorsque de nouvelles conditions seront ajoutées, elles seront disponibles via les mises à jour de Jetpack.
Les choix disponibles sont les suivants :
CONDITION
|
DESCRIPTION
|
EXEMPLE
|
<form>
|
Les formulaires HTML sont utilisés pour transmettre des données à un serveur.
|
Exemple "le formulaire n'a pas la longueur 0".
|
Localisation de GEO
|
Compare l'adresse IP source aux codes de pays ISO 3166.
|
GEO Location est égal à GB, OU GEO Location est égal à Allemagne
|
Hôte
|
Hôte extrait de l'URL
|
www.mywebsite.com ou 192.168.1.1
|
Langue
|
Langue extraite de l'en-tête HTTP langue
|
Cette condition produira une liste déroulante avec une liste de langues.
|
Méthode
|
Liste déroulante des méthodes HTTP
|
Une liste déroulante qui comprend GET, POST, etc.
|
IP d'origine
|
Si le proxy en amont prend en charge X-Forwarded-for (XFF), il utilisera l'adresse d'origine réelle.
|
IP du client. Il peut également utiliser plusieurs IP ou sous-réseaux.
10\.1\.2\.* est le sous-réseau 10.1.2.0 /24
10\.1\.2\.3|10\.1\.2\.4 Utilisez | pour plusieurs IP's
|
Chemin d'accès
|
Chemin du site web
|
/mywebsite/index.asp
|
POST
|
Méthode de demande POST
|
Vérifier les données téléchargées sur un site web
|
Requête
|
Nom et valeur d'une requête, et peut accepter soit le nom de la requête soit une valeur également
|
"Best=jetNEXUS" où la correspondance est Best et la valeur est edgeNEXUS
|
Chaîne de requête
|
La chaîne de requête complète après le caractère ?
|
|
Demande de cookie
|
Nom d'un cookie demandé par un client
|
MS-WSMAN=afYfn1CDqCDqUD: :
|
En-tête de la demande
|
Tout en-tête HTTP
|
Referrer, User-Agent, From, Date
|
Demande de version
|
La version HTTP
|
HTTP/1.0 OU HTTP/1.1
|
Organe de réponse
|
Une chaîne définie par l'utilisateur dans le corps de la réponse
|
Serveur UP
|
Code de réponse
|
Le code HTTP pour la réponse
|
200 OK, 304 Non modifié
|
Cookie de réponse
|
Le nom d'un cookie envoyé par le serveur
|
MS-WSMAN=afYfn1CDqCDqUD: :
|
En-tête de réponse
|
Tout en-tête HTTP
|
Referrer, User-Agent, From, Date
|
Version de réponse
|
La version HTTP envoyée par le serveur
|
HTTP/1.0 OU HTTP/1.1
|
Source IP
|
Soit l'IP d'origine, l'IP du serveur proxy ou une autre adresse IP agrégée.
|
IP du client
, IP du proxy, IP du pare-feu. Vous pouvez également utiliser plusieurs IP et sous-réseaux. Vous devez échapper les points car il s'agit de RegEX. Exemple 10\.1\.2\.3 est 10.1.2.3
|
Match
Le champ "Correspondance" peut être une liste déroulante ou une valeur de texte et est définissable en fonction de la valeur du champ "Condition". Par exemple, si la Condition est définie sur Hôte, le champ Correspondance n'est pas disponible. Si la Condition est définie sur <form>, le champ Correspondance est présenté comme un champ de texte, et si la Condition est POST, le champ Correspondance est présenté comme un menu déroulant contenant des valeurs pertinentes.
Les choix disponibles sont les suivants :
MATCH
|
DESCRIPTION
|
EXEMPLE
|
Accepter
|
Types de contenu acceptables
|
Accepter : text/plain
|
Accept-Encoding
|
Encodements acceptables
|
Accept-Encoding : <compress | gzip | deflate | sdch | identity>
|
Accept-Language
|
Langues acceptables pour la réponse
|
Accept-Language : en-US
|
Accept-Ranges
|
Quels types de plages de contenu partiel ce serveur supporte-t-il ?
|
Accept-Ranges : bytes
|
Autorisation
|
Références d'authentification pour l'authentification HTTP
|
Autorisation : Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
|
Charge-To
|
Contient les informations comptables relatives aux coûts de l'application de la méthode demandée
|
|
Content-Encoding
|
Le type d'encodage utilisé
|
Content-Encoding : gzip
|
Content-Length
|
La longueur du corps de la réponse en octets (octets de 8 bits).
|
Content-Length : 348
|
Content-Type
|
Le type mime du corps de la requête (utilisé avec les requêtes POST et PUT)
|
Content-Type : application/x-www-form-urlencoded
|
Cookie
|
Un cookie HTTP précédemment envoyé par le serveur avec Set-Cookie (ci-dessous)
|
Cookie : $Version=1 ; Skin=new ;
|
Date
|
Date et heure d'origine du message
|
Date = "Date" " :" HTTP-date
|
ETag
|
Un identifiant pour une version spécifique d'une ressource, souvent un résumé de message.
|
ETag : "aed6bdb8e090cd1:0"
|
De
|
L'adresse électronique de l'utilisateur qui fait la demande
|
De : user@example.com
|
Si-Modifié-Depuis
|
Permet de renvoyer un 304 Not Modified si le contenu est inchangé.
|
If-Modified-Since : Sat, 29 Oct 1994 19:43:31 GMT
|
Dernière modification
|
La date de dernière modification de l'objet demandé, au format RFC 2822.
|
Dernière modification : Tue, 15 Nov 1994 12:45:26 GMT
|
Pragma
|
Mise en œuvre : En-têtes spécifiques qui peuvent avoir des effets divers tout au long de la chaîne demande-réponse.
|
Pragma : no-cache
|
Référent
|
Adresse de la page web précédente à partir de laquelle un lien vers la page actuellement demandée a été suivi.
|
Referrer : HTTP://www.edgenexus.io
|
Serveur
|
Un nom pour le serveur
|
Serveur : Apache/2.4.1 (Unix)
|
Set-Cookie
|
Un cookie HTTP
|
Set-Cookie : UserID=JohnDoe ; Max-Age=3600 ; Version=1
|
User-Agent
|
La chaîne de l'agent utilisateur de l'agent utilisateur
|
User-Agent : Mozilla/5.0 (compatible ; MSIE 9.0 ; Windows NT 6.1 ; WOW64 ; Trident/5.0)
|
Varier
|
Indique aux mandataires en aval comment faire correspondre les futurs en-têtes de demande pour décider
si la réponse mise en cache peut être utilisée plutôt que de demander une nouvelle
réponse au serveur d'origine.
|
Vary : User-Agent
|
X-Powered-By
|
Spécifie la technologie (par exemple, ASP.NET, PHP, JBoss) qui prend en charge l'application Web.
|
X-Powered-By : PHP/5.4.0
|
Sense
Le champ Sense est un champ booléen déroulant qui contient les choix Does ou Doesn't.
Vérifiez
Le champ Contrôle permet de définir des valeurs de contrôle par rapport à la condition.
Les choix disponibles sont les suivants : Contient, Fin, Egal, Existe, A une longueur, Correspond à RegEx, Correspond à une liste, Début, Dépasse la longueur.
CHECK
|
DESCRIPTION
|
EXEMPLE
|
Existe
|
Le détail de la condition n'a pas d'importance, il suffit de savoir qu'elle existe ou n'existe pas.
|
L'hôte - existe - existe
|
Début
|
La chaîne de caractères commence par la valeur
|
Chemin - Does - Start - /secure
|
Fin
|
La chaîne se termine par la valeur
|
Chemin - Fait - Fin - .jpg
|
Contenir
|
La chaîne contient bien la valeur
|
En-tête de la demande - Accepter - Ne - Contenir - image
|
Equal
|
La chaîne est égale à la valeur
|
Hôte - Fait - Égale - www.edgenexus.io
|
Avoir la longueur
|
La chaîne a bien une longueur de la valeur
|
Host - Does - Have Length - 16
www.edgenexus.io = VRAI
www.edgenexus.com = FAUX
|
Match RegEx
|
Vous permet de saisir une expression régulière complète compatible avec Perl.
|
IP d'origine - Correspond - Regex - 10\..* | 11\..*
|
Étapes pour ajouter une condition
L'ajout d'une nouvelle condition flightPATH est très simple. Un exemple est montré ci-dessus.
1. Cliquez sur le bouton Ajouter un nouveau dans la zone des conditions.
2. Choisissez une condition dans la liste déroulante. Prenons l'exemple de l'hôte. Vous pouvez également taper dans le champ, et le CDA affichera la valeur dans une liste déroulante.
3. Choisissez un sens. Par exemple, est-ce que
4. Choisissez une vérification. Par exemple, Container
5. Choisissez une valeur. Par exemple, mycompany.com
L'exemple ci-dessus montre que deux conditions doivent être VRAIES pour que la règle soit appliquée.
· La première consiste à vérifier que l'objet demandé est une image
· Le second vérifie si l'hôte dans l'URL est www.imagepool.com.
Évaluation
La possibilité d'ajouter des variables définissables est une capacité convaincante. Les CDA ordinaires offrent cette possibilité en utilisant des options de script ou de ligne de commande qui ne sont pas idéales pour tout le monde. L'ADC vous permet de définir un nombre quelconque de variables à l'aide d'une interface graphique facile à utiliser, comme indiqué et décrit ci-dessous.
La définition de la variable flightPATH comprend quatre entrées qui doivent être effectuées.
· Variable - c'est le nom de la variable
· Source - une liste déroulante de points sources possibles
· Détail - sélectionnez les valeurs dans une liste déroulante ou saisissez-les manuellement.
· Valeur - la valeur que la variable contient et peut être une valeur alphanumérique ou un RegEx pour un réglage plus fin.
Variables intégrées :
Les variables Built-In ont déjà été codées en dur, il n'est donc pas nécessaire de créer une entrée d'évaluation pour celles-ci.
Vous pouvez utiliser l'une des variables énumérées ci-dessous dans la section Action.
L'explication de chaque variable se trouve dans le tableau "Condition" ci-dessus.
· Méthode = $method
· Chemin = $path$
· Querystring = $querystring$
· Sourceip = $sourceip$
· Code de réponse (le texte comprend également "200 OK") = $resp$.
· Hôte = $host$
· Version = $version$
· Port du client = $clientport
· Clientip = $clientip$.
· Géolocalisation = $geolocation$"
ACTION
|
CIBLE
|
Action = Redirection 302
|
Cible = HTTPs://$host$/404.html
|
Action = Journal
|
Cible = Un client de $sourceip$:$sourceport$ vient de faire une demande de page $path$.
|
Explication :
· Un client accédant à une page qui n'existe pas se verrait normalement présenter la page d'erreur 404 du navigateur.
· Au lieu de cela, l'utilisateur est redirigé vers le nom d'hôte original qu'il a utilisé, mais le chemin incorrect est remplacé par 404.html.
· Une entrée est ajoutée au Syslog disant, "Un client de 154.3.22.14:3454 vient de demander la page wrong.html".
Action
L'étape suivante du processus consiste à ajouter une action associée à la règle et à la condition flightPATH.
Dans cet exemple, nous voulons réécrire la partie chemin d'accès de l'URL pour refléter l'URL tapée par l'utilisateur.
· Cliquez sur Ajouter un nouveau
· Choisissez "Réécrire le chemin" dans le menu déroulant "Action".
· Dans le champ Cible, tapez $path$/myimages
· Cliquez sur Mise à jour
Cette action ajoutera /myimages au chemin, de sorte que l'URL final devienne www.imagepool.com/myimages.
Application de la règle flightPATH
L'application de toute règle flightPATH se fait dans l'onglet flightPATH de chaque VIP/VS.
· Accédez à Services > Services IP et choisissez le VIP auquel vous souhaitez affecter la règle flightPATH.
· Vous verrez la liste des serveurs réels ci-dessous
· Cliquez sur l'onglet flightPATH
· Sélectionnez la règle flightPATH que vous avez configurée ou l'une des règles préétablies prises en charge. Vous pouvez sélectionner plusieurs règles flightPATH si nécessaire.
· Faites glisser et déposez l'ensemble sélectionné dans la section Applied flightPATHs ou cliquez sur le bouton fléché >>.
· La règle sera déplacée vers le côté droit et appliquée automatiquement.