Comprendre F5 BIG-IP

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érence de F5 301A consultée le · Objectifs abordés : F5 301A 1.01, F5 301A 1.02, F5 301A 1.10.
  • Référence de F5 301B 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. Les noms et options doivent être confrontés à la documentation de votre version.

Repère visuelRedirection 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. 01 Client Requête initiale 02 Redirection Réponse 3xx + Location 03 Nouvelle requête Si le client la suit 04 Client Requête initiale 05 Réécriture Message modifié 06 Serveur Reçoit la requête modifiée
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.

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 frontières de 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

Références consultées le . 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 votre configuration BIG-IP.