Comprendre F5 · LTM

F5 : profils HTTP, policies et réécriture de contenu

Choisir entre réglage natif, Local Traffic Policy et iRule ; distinguer redirection, en-têtes et transformation du corps.

Thomas SAUTIER · Publié le · Révisions de certification

Références et objectifs de certification (2)
  • Certification : F5 301A · Référence consultée le · Objectifs abordés : F5 301A 1.01, F5 301A 1.02, F5 301A 1.10.
  • Certification : F5 301B · Référence consultée le · Objectifs abordés : F5 301B 1.02, F5 301B 2.03, F5 301B 2.06.

Ce guide concerne BIG-IP sur TMOS. Vérifiez les noms et les options dans la documentation de votre version.

Comprendre en imageRedirection et réécriture changent des messages différents
Redirection et réécriture changent des messages différents Une redirection renvoie au client une réponse HTTP avec une destination ; le client peut alors émettre une nouvelle requête. Une réécriture modifie la requête transmise au serveur, sans demander au client de changer d’URL. Objets, conditions et comparaisons du guide Client Requête initiale Redirection Réponse 3xx + Location Nouvelle requête Si le client la suit Client Requête initiale Réécriture Message modifié Serveur Requête transformée Choisir le mécanisme le plus lisible Un profil définit un comportement réutilisable detraitement. Une Local Traffic Policy associe desconditions à des actions. Une iRule apporte unelogique programmable. Pour un besoin simple,examinez d’abord les options natives avantd’ajouter du code. Host, X-Forwarded-For etcomportement du proxy Le profil HTTP permet l’analyse des messages etdes en-têtes. Host sert au routage desapplications qui partagent une adresse.X-Forwarded-For peut transmettre l’adressed’origine, à condition que l’application connaisseles proxys de confiance.

Une redirection renvoie au client une réponse HTTP avec une destination ; le client peut alors émettre une nouvelle requête. Une réécriture modifie la requête transmise au serveur, sans demander au client de changer d’URL.

Télécharger le schéma en SVG · version claire

Choisir le mécanisme le plus lisible

Un profil définit un comportement réutilisable de traitement. Une Local Traffic Policy associe des conditions à des actions. Une iRule apporte une logique programmable. Pour un besoin simple, examinez d’abord les options natives avant d’ajouter du code.

Remplacer une règle par une policy ne doit pas modifier son sens. Inventoriez les conditions, leur ordre, les actions et les dépendances de profils. Les stratégies first-match, best-match ou all-match ne se lisent pas de la même façon.

Sources : F5, ltm profile http ; F5, ltm policy.

Host, X-Forwarded-For et comportement du proxy

Le profil HTTP permet l’analyse des messages et des en-têtes. Host sert au routage des applications qui partagent une adresse. X-Forwarded-For peut transmettre l’adresse d’origine, à condition que l’application connaisse les proxys de confiance.

Une politique de rejet, de passage ou de gestion des messages non conformes peut changer le résultat pour des applications anciennes. Relâcher un contrôle pour faire disparaître une erreur ne démontre pas que le trafic est sain : comparez la requête réelle aux exigences du service.

Sources : F5, ltm profile http.

Réponse de redirection et réécriture sont différentes

Une redirection dit au navigateur de lancer une nouvelle requête. Une réécriture modifie un élément transmis. Modifier Location ne remplace pas toutes les URL contenues dans le corps HTML ; modifier le corps ne change pas automatiquement les cookies ou les en-têtes.

Après offload TLS, une application qui se croit en HTTP peut produire des liens ou redirections inadaptés. Commencez par lui transmettre et lui faire respecter l’information du proxy selon son mécanisme prévu, plutôt que remplacer toutes les chaînes HTTP indistinctement.

Sources : F5, HTTP::redirect ; F5, Content Profiles.

STREAM et HTML : transformer le bon contenu

Le profil Stream et les commandes STREAM permettent une transformation de contenu selon une expression. Le profil HTML répond à une autre logique de traitement. Le besoin détermine les profils nécessaires ; une commande STREAM ne s’active pas par magie grâce au profil HTTP seul.

Le contenu compressé, les limites entre les messages, les types de contenu et les expressions trop larges sont des pièges. Une substitution prévue pour du texte ne doit pas s’appliquer aveuglément à un fichier binaire. Le périmètre de transformation doit être contrôlé à chaque requête et réponse.

Sources : F5, STREAM::expression ; F5, Content Profiles.

Reconstituer l’ensemble du traitement

Commencez par l’association du VS : profils, policies et iRules. Affichez ensuite les propriétés de la policy et le texte de la règle visée. Relevez les objets partagés avant de modifier quoi que ce soit.

Inventorier les traitements HTTPShell · commandes de lecture
tmsh list ltm virtual /Common/vs_application all-properties
tmsh list ltm policy /Common/policy_application all-properties
tmsh list ltm rule /Common/regle_application

Sources : F5, ltm policy ; F5, ltm virtual.

Comparer les messages avant et après

En laboratoire, examinez une réponse avec Location, un cookie, du HTML et du contenu compressé. Comparez en-têtes et corps séparément. Testez aussi le cas qui ne doit pas être transformé : cette vérification distingue une règle ciblée d’un remplacement trop général.

Sources : Projet curl, curl man page.

Sources et portée

Les dates de consultation et les versions applicables sont précisées pour chaque référence ci-dessous. Les exemples utilisent des noms et adresses de documentation à remplacer. Les commandes de lecture affichent l’existant ; les captures et requêtes de diagnostic sont à limiter au périmètre autorisé.

Retrouver le parcours de lecture F5 LTM

Continuer la série F5

Explorer tous les guides du parcours F5 LTM

Découvrir l’expertise F5 de Samhan

Échange

Besoin d’éclaircir votre architecture F5 ?

Échangeons sur vos flux, vos contraintes de disponibilité et vos services applicatifs.