Comment enregistrer une trace de paquets sur Citrix ADC

Cet article de dépannage explique comment un administrateur peut enregistrer une trace de paquets réseau à l’aide de l’interface graphique Citrix ADC.

Points à retenir

  • Citrix vous recommande d’utiliser la version récente de Wireshark à partir de la « section de construction automatisée » disponible sur la page Web suivante :http://www.wireshark.org/download/automated.

  • Dans le logiciel Citrix ADC version 10.5 et ultérieure, pour déchiffrer la capture, assurez-vous que ECC (Elliptic Curve Cryptography), Session Reuse et DH Param sont désactivés/supprimés du serveur virtuel avant la capture de la trace. Reportez-vous à la section Ressources supplémentaires de cet article avant d’effectuer ces modifications

Enregistrer le suivi des paquets sur l’appliance NetScaler 11.1

Pour enregistrer une trace de paquets sur une appliance NetScaler 11.1, vous devez effectuer la procédure suivante.

  1. Connectez-vous à l’interface graphique NetScaler et accédez à la page Système > Diagnostics.
  2. cliquez sur le lien Démarrer une nouvelle trace dans la page Diagnostic, comme indiqué dans la capture d’écran suivante.

    Accéder à la page Diagnostic

  3. Mettez à jour la taille du paquet à 0 dans le champ Taille du paquet.

    Taille du paquet

  4. Cliquez sur Démarrer pour commencer à enregistrer la trace des paquets réseau.
  5. Cliquez sur Arrêter et télécharger pour arrêter l’enregistrement de la trace des paquets réseau une fois le test terminé.

    Trace d'arrêt et de téléchargement

  6. Sélectionnez le fichier requis, puis cliquez sur Sélectionner, puis sur Télécharger.

    Télécharger la trace des paquets

  7. Ouvrez le fichier de trace de paquets réseau avec l’utilitaire Wireshark pour afficher le contenu du fichier.

Enregistrer le suivi des paquets sur l’appliance NetScaler 10.5

Pour enregistrer une trace de paquets sur une appliance NetScaler 10.5, vous devez effectuer la procédure suivante :

  1. Connectez-vous à l’interface graphique NetScaler et accédez à la page Système > Diagnostics.

    Page Accéder au diagnostic

  2. Cliquez sur le lien Démarrer une nouvelle trace sous Outils de support technique comme illustré dans la capture d’écran suivante.
  3. Mettez à jour la taille du paquet à 0 dans le champ Taille du paquet.

    Taille du paquet

    Remarque : si les en-têtes NetScaler ne sont pas requis, sélectionnez Capture trace au format .pcap.

  4. Cliquez sur Démarrer pour commencer à enregistrer la trace des paquets réseau.
  5. Cliquez sur OK pour arrêter l’enregistrement de la trace des paquets réseau une fois le test terminé.

    Arrêter l'enregistrement de trace

    Un fichier nstrace.cap est généré, qui contient la trace des paquets réseau.

  6. Mettez en surbrillance le fichier requis et cliquez sur Télécharger.

    Télécharger le fichier

  7. Spécifiez une destination et enregistrez la trace des paquets.
  8. Ouvrez le fichier de trace de paquets réseau avec l’utilitaire Wireshark pour afficher le contenu du fichier.

    Remarque : sélectionnez les paquets SSL déchiffrés (SSLPLAIN) pour déchiffrer la trace des paquets sans la clé privée.

    Paquets SSL déchiffrés

Capture des clés principales SSL

Dans la dernière version 11.0 et 11.1 et au-dessus, il y a une option pour capturer les clés de session qui ne seront valides que pour cette session/nstrace particulière et cette option peut être utilisée si vous ne voulez pas partager la clé privée ou utiliser le mode SSLPLAIN. Pour plus d’informations, veuillez consulter la section Comment utiliser la nouvelle option « capsslkeys » lorsque vous essayez de capturer nstrace sur Netscaler.

Exporter les clés de session sans partager la clé privée

Dans la plupart des scénarios, la clé privée n’est pas disponible ou partagée. Dans de tels scénarios, nous pouvons suggérer d’exporter les clés de session SSL au lieu de la clé privée. Veuillez vous référer à l’article ci-dessous pour plus d’informations. Comment exporter et utiliser les clés de session SSL pour déchiffrer les traces SSL sans partager la clé privée SSL.

Filtres

En outre, il est toujours recommandé d’ajouter des filtres basés sur IP tout en prenant des traces. Cela vous permettra de capturer uniquement le trafic intéressé, ce qui facilitera votre dépannage. L’ajout de filtres réduira également la charge sur NetScaler tout en prenant des traces.

Section de filtrage

Les filtres basés sur IP simples suffisent pour obtenir les bonnes captures. Pour obtenir une liste détaillée de filtres et d’exemples, reportez-vous à Citrix Documentation - nstrace.

Cas d’utilisation pour capturer une trace de paquets avec un filtre IP du serveur virtuel (frontend et backend)

Avec un filtre de l’adresse IP du serveur virtuel et l’activation de l’option « —link » dans l’interface de ligne de commande ou sélectionnez l’option « Tracer le trafic des homologues de connexion filtrée » dans l’interface graphique (disponible 10.1 et versions ultérieures), vous serez en mesure de capturer à la fois le trafic frontal et le trafic principal pour cette adresse IP particulière. Avec cette option, il n’est pas recommandé de mentionner un filtre IP source ou IP de destination.

start nstrace -size 0 -filter "CONNECTION.IP.EQ(1.1.1.1)" -link ENABLED

show nstrace
        State:  RUNNING          Scope:  LOCAL            TraceLocation:  "/var/nstrace/24Mar2017_16_00_19/..." Nf:  24                  Time:  3600              Size:  0                 Mode:  TXB NEW_RX
        Traceformat:  NSCAP      PerNIC:  DISABLED        FileName:  24Mar2017_16_00_19 Filter:  "CONNECTION.IP.EQ(1.1.1.1)" Link:  ENABLED           Merge:  ONSTOP           Doruntimecleanup:  ENABLED
        TraceBuffers:  5000      SkipRPC:  DISABLED       Capsslkeys:  DISABLED    InMemoryTrace:  DISABLED

Fusionner

Capture des traces cycliques

Il est toujours difficile de résoudre un problème intermittent. Le traçage cyclique est le mieux adapté aux problèmes intermittents. Ces traces peuvent être exécutées sur une période de quelques heures ou jours en fonction de l’origine du problème. Un filtre spécifique peut également être utilisé comme mentionné ci-dessus. Veuillez évaluer la taille des fichiers de trace qui sont générés avant de les exécuter plus longtemps (car cela peut remplir l’espace var)

Exécutez la commande suivante à partir de l’interface de ligne de commande :

start nstrace -nf 60 -time 30 -size 0
This particular trace will create 60 files each of them for 30 sec. This means the files will start getting overwritten after 60 trace files or 30 mins
Show nstrace à To check the status of the nstrace
Stop nstrace à To stop the nstrace.

Meilleures pratiques

Sur une unité qui gère des gigaoctets de trafic par seconde, la capture du trafic est un processus exigeant beaucoup de ressources. L’impact sur les ressources est principalement en termes de CPU et d’espace disque. L’impact sur l’espace disque peut être réduit en utilisant des expressions de filtrage (capture du trafic uniquement lié à une adresse IP particulière). Cependant, l’impact sur le CPU reste malgré l’utilisation d’expressions et, dans certains cas, pourrait provoquer une légère augmentation car NetScaler doit maintenant traiter les paquets en fonction du filtre avant de les capturer.

Les meilleures pratiques en matière de traçage sont les suivantes :

  1. La durée pendant laquelle la trace est exécutée doit être aussi limitée que possible tout en veillant à ce que les paquets d’intérêt soient capturés.
  2. Planifiez l’activité de traçage à un moment où le nombre d’utilisateurs (et donc le trafic) est considérablement réduit, par exemple pendant les heures de repos.

Ressources supplémentaires

Désactiver la réutilisation de session sur un serveur virtuel à partir de l’interface graphique NetScaler

La réutilisation de session est désactivée lors de la capture d’une trace afin de capturer une poignée de main SSL complète dans la trace. Lorsqu’il est activé, il est probable que vous ne capturez qu’une poignée de main partielle dans la trace. Assurez-vous d’activer l’option après la collecte de trace. Ne désactivez pas la réutilisation de session SSL lorsque la méthode de persistance est sslsession, car elle rompra la persistance pour les connexions existantes. Pour plus d’informations, reportez-vous à la section CTX121925- Processus de renégociation SSL et réutilisation de session sur l’appliance NetScaler.

  1. Ouvrez le serveur virtuel et accédez aux paramètres SSL.
  2. Désactivez Activer la réutilisation de session si cette option est activée.

    Activer la réutilisation de session

Désactiver la réutilisation de session sur un serveur virtuel à partir de NetScaler CLI

  1. SSH à NetScaler.
  2. Exécutez la commande suivante pour désactiver DH Param à partir du serveur virtuel :

    set ssl vserver "vServer_Name" -sessReuse DISABLED

Désactiver le paramètre DH sur le serveur virtuel à partir de l’interface graphique NetScaler

Reportez-vous à la section CTX213335 - Comment configurer une clé Diffie-Hellman sur NetScaler ? pour comprendre le paramètre DH.

  1. Ouvrez le serveur virtuel et accédez aux paramètres SSL.
  2. Désactivez DH Param si cette option est activée.

    Paramètres SSL

Désactiver le paramètre DH sur le serveur virtuel à partir de NetScaler CLI

  1. SSH à NetScaler.
  2. Exécutez la commande suivante pour désactiver DH Param à partir du serveur virtuel :

    set ssl vserver "vServer_Name" -dh DISABLED

Désactiver la courbe ECC sur le serveur virtuel à partir de l’interface graphique NetScaler

La courbe ECC est désactivée afin de déchiffrer la trace SSL capturée avec une clé privée. Ces clés ne doivent pas être désactivées si les chiffrements SSL associés sont utilisés. Pour plus d’informations sur la courbe ECC, voir CTX20 -Comment configurer ECC sur NetScaler ?

  1. Ouvrez le serveur virtuel et accédez à Courbe ECC.

    Courbe ECC

  2. Si aucune courbe ECC n’est liée au serveur virtuel, aucune autre action n’est requise.

    Aucune courbe CC

  3. Si une courbe ECC est liée au serveur virtuel, cliquez sur la courbe ECC et délier le serveur virtuel.

Désactiver la courbe ECC sur le serveur virtuel à partir de NetScaler CLI

  1. SSH à NetScaler.
  2. Exécutez la commande suivante pour chaque courbe ECC liée au serveur virtuel :

    unbind ssl vserver "vServer_Name" -eccCurveName "ECC_Curve_Name"