Comprendre F5 BIG-IP

F5 : diagnostiquer une application HTTP ou HTTPS inaccessible

Comparer accès direct et accès VIP, conserver Host et SNI et séparer panne TCP, handshake TLS, réponse HTTP et persistance.

Thomas SAUTIER · Publié le · Dépannage

  • Référence de F5 301A consultée le · Objectifs abordés : F5 301A 1.08.
  • Référence de F5 301B consultée le · Objectifs abordés : F5 301B 2.06, F5 301B 2.07, F5 301B 2.08, F5 301B 2.09, F5 301B 2.11, F5 301B 2.12.

Ce guide concerne BIG-IP sur TMOS. Les noms et options doivent être confrontés à la documentation de votre version.

Repère visuelLocaliser l’échec avant de changer un réglage
Localiser l’échec avant de changer un réglage Vérifier successivement résolution, connexion TCP, négociation TLS et échange HTTP. Le backend ajoute son propre chemin et éventuellement son propre TLS. Comparer un test normal et un test vers l’IP imposée en conservant le nom aide à isoler la différence. TLS établi 01 DNS Nom et réponse 02 TCP Connexion à la VIP 03 TLS client SNI et certificat 04 Application Statut, corps, session 05 Backend Connexion / TLS serveur 06 HTTP Host, URI, cookie
Vérifier successivement résolution, connexion TCP, négociation TLS et échange HTTP. Le backend ajoute son propre chemin et éventuellement son propre TLS. Comparer un test normal et un test vers l’IP imposée en conservant le nom aide à isoler la différence.

Séparer les étapes de l’échange

Commencez par résolution du nom, arrivée sur la VIP et établissement TCP. Examinez ensuite TLS, puis HTTP. Une réponse 404 prouve qu’une réponse HTTP a été produite ; elle ne décrit pas une absence totale de connectivité.

Un moniteur vert ne prouve pas que votre URL, votre Host ou votre authentification fonctionne. Les requêtes du moniteur et de l’utilisateur peuvent prendre des chemins applicatifs différents.

Sources : F5, ltm monitor http ; F5, ltm virtual.

Tester une IP sans perdre le nom de l’application

Accéder à une adresse IP peut changer le SNI TLS et l’en-tête Host. Pour comparer la VIP et un backend, conservez le nom attendu avec l’option resolve de curl. Dans cet exemple pédagogique, les deux destinations sont des adresses de documentation et écoutent en HTTPS sur 443.

Repère visuelDeux tests qui conservent le nom applicatif
Deux tests qui conservent le nom applicatif Un test normal suit la résolution DNS habituelle. Un test curl --resolve impose l’adresse cible tout en conservant le nom dans l’URL, donc le Host et le SNI pour HTTPS. Une différence de résultat doit être interprétée en tenant compte des autres conditions du test. 01 URL HTTPS app.example.test 02 Résolution normale Adresse obtenue par DNS 03 Test normal Chemin habituel 04 Même URL HTTPS app.example.test 05 curl --resolve Adresse cible imposée 06 Test ciblé Host et SNI conservés
Un test normal suit la résolution DNS habituelle. Un test curl --resolve impose l’adresse cible tout en conservant le nom dans l’URL, donc le Host et le SNI pour HTTPS. Une différence de résultat doit être interprétée en tenant compte des autres conditions du test.
Comparer VIP et backend avec le même nomShell · requêtes HTTP de diagnostic
curl --verbose --resolve app.example.invalid:443:192.0.2.40 \
  https://app.example.invalid/health

curl --verbose --resolve app.example.invalid:443:192.0.2.60 \
  https://app.example.invalid/health

Sources : Projet curl, curl man page.

Comparer ce qui change entre les deux essais

Comparez code de réponse, Location, cookies, chaîne de certificat et délai. Si l’essai backend utilise un autre port ou HTTP clair après offload, adaptez explicitement le scénario : vous ne comparez plus deux échanges identiques.

Le backend peut n’accepter que BIG-IP ou exiger une authentification différente. Un accès direct refusé dans ce cas n’établit pas que le serveur est en panne. Conservez la description des conditions de test.

Sources : Projet curl, curl man page ; F5, ltm profile server-ssl.

Identifier le côté où le handshake échoue

Un profil Client SSL peut échouer avec le client, tandis que Server SSL peut échouer avec le backend après l’acceptation côté client. Examinez versions, suites, nom, chaîne, expiration et demande de certificat du pair concerné.

Évitez de masquer une erreur de validation pour déclarer le service correct. Le guide certificats, SNI et mTLS propose les points à vérifier, et le guide modes TLS situe les terminaisons.

Sources : Projet OpenSSL, openssl s_client ; F5, ltm profile client-ssl ; F5, ltm profile server-ssl.

Lire les messages et la session

Les redirections répétées peuvent révéler une incohérence de schéma ou de nom vue par l’application. Des pertes de session peuvent venir d’un cookie, d’une affinité ou d’un état serveur. Un 403 peut être produit par plusieurs composants ; identifiez la réponse et le chemin avant de modifier une autorisation.

Pour un problème intermittent, relevez le membre qui répond à chaque tentative. Une différence entre membres peut être plus révélatrice qu’une statistique moyenne du VS.

Sources : F5, ltm profile http ; F5, ltm persistence cookie ; F5, ltm profile analytics.

Une collecte minimale utile

Notez heure UTC, client, URL, méthode, nom TLS, membre et résultat. Ajoutez configuration du VS, profils nécessaires et une capture bornée sur chaque côté. Distinguez les faits observés des hypothèses ; vérifiez une hypothèse par une comparaison ciblée avant de corriger.

Sources : F5, Packet tracing with tcpdump ; F5, sys log.

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.