Partager via


Résoudre les problèmes de mise en réseau

Cet article décrit quelques outils qui peuvent diagnostiquer les problèmes de mise en réseau de diverses complexités. Ces problèmes incluent des scénarios allant du dépannage d’une valeur de réponse inattendue d’un service à la cause profonde d’une exception de connexion fermée.

Pour la résolution des problèmes côté client, les bibliothèques clientes Azure pour Java offrent un article de journalisation cohérent et robuste, comme décrit dans Configurer la journalisation dans le Kit de développement logiciel (SDK) Azure pour Java. Toutefois, les bibliothèques clientes effectuent des appels réseau sur différents protocoles, ce qui peut entraîner des scénarios de résolution des problèmes qui s’étendent en dehors de l’étendue de résolution des problèmes fournie. Lorsque ces problèmes se produisent, la solution consiste à utiliser les outils externes décrits dans cet article pour diagnostiquer les problèmes réseau.

Violoniste

Fiddler est un proxy de débogage HTTP qui permet aux requêtes et aux réponses transmises par le biais de lui d’être enregistrées as-is. Les requêtes et réponses brutes que vous capturez peuvent vous aider à résoudre les scénarios où le service obtient une demande inattendue, ou le client reçoit une réponse inattendue. Pour utiliser Fiddler, vous devez configurer la bibliothèque cliente avec un proxy HTTP. Si vous utilisez HTTPS, vous avez besoin d’une configuration supplémentaire pour inspecter les corps de requête et de réponse déchiffrés.

Ajouter un proxy HTTP

Pour ajouter un proxy HTTP, suivez les instructions de Configurer des proxys dans le Kit de développement logiciel (SDK) Azure pour Java. Veillez à utiliser l’adresse Fiddler par défaut de localhost sur le port 8888.

Activer le déchiffrement HTTPS

Par défaut, Fiddler peut capturer uniquement le trafic HTTP. Si votre application utilise HTTPS, vous devez prendre des mesures supplémentaires pour approuver le certificat de Fiddler pour lui permettre de capturer le trafic HTTPS. Pour plus d’informations, consultez Menu HTTPS dans la documentation Fiddler.

Les étapes suivantes vous montrent comment utiliser l’environnement Java Runtime (JRE) pour approuver le certificat. Si le certificat n’est pas approuvé, une requête HTTPS via Fiddler peut échouer avec des avertissements de sécurité.

  1. Exportez le certificat de Fiddler.

  2. Recherchez le keytool de JRE (généralement dans jre/bin).

  3. Trouvez le cacert du JRE (habituellement dans jre/lib/security).

  4. Ouvrez une fenêtre Bash et utilisez la commande suivante pour importer le certificat :

    sudo keytool -import -file <location-of-Fiddler-certificate> -keystore <location-of-cacert> -alias Fiddler
    
  5. Entrez un mot de passe.

  6. Approuvez le certificat.

Wireshark

wireshark est un analyseur de protocole réseau qui peut capturer le trafic réseau sans avoir besoin de modifications apportées au code d’application. Wireshark est hautement configurable et peut capturer un trafic réseau large à spécifique de faible niveau. Cette fonctionnalité est utile pour résoudre les problèmes de scénarios tels qu’un hôte distant fermant une connexion ou ayant des connexions fermées pendant une opération. L’interface graphique graphique wireshark affiche des captures à l’aide d’un jeu de couleurs qui identifie des cas de capture uniques, tels qu’une retransmission TCP, RST, etc. Vous pouvez également filtrer les captures au moment de la capture ou pendant l’analyse.

Configurer un filtre de capture

Les filtres de capture réduisent le nombre d’appels réseau capturés pour l’analyse. Sans filtres de capture, Wireshark capture tout le trafic qui passe par une interface réseau. Ce comportement peut produire des quantités massives de données où la plupart d’entre elles peuvent être bruyantes pour l’investigation. L’utilisation d’un filtre de capture permet d’étendre de manière préemptive le trafic réseau capturé pour cibler une investigation. Pour plus d’informations, consultez Capture de données réseau en direct dans la documentation Wireshark.

L’exemple suivant ajoute un filtre de capture pour capturer le trafic réseau envoyé à un hôte spécifique ou reçu.

Dans Wireshark, accédez à Capture > Filtres de capture... et ajoutez un nouveau filtre avec la valeur host <host-IP-or-hostname>. Ce filtre capture uniquement le trafic vers et depuis cet hôte. Si l’application communique avec plusieurs hôtes, vous pouvez ajouter plusieurs filtres de capture ou ajouter l’adresse IP/le nom d’hôte hôte avec l’opérateur « OR » pour fournir un filtrage de capture plus libre.

Capture sur disque

Vous devrez peut-être exécuter une application pendant longtemps pour reproduire une exception réseau inattendue et voir le trafic qui y mène. En outre, il peut ne pas être possible de conserver toutes les captures en mémoire. Heureusement, Wireshark peut enregistrer des captures sur le disque afin qu’elles soient disponibles pour le post-traitement. Cette approche évite le risque d’épuisement de la mémoire pendant la reproduction d’un problème. Pour plus d’informations, consultez entrée de fichier, sortie et impression dans la documentation Wireshark.

L’exemple suivant configure Wireshark pour enregistrer les captures sur le disque avec plusieurs fichiers, où les fichiers sont scindés soit après 100 000 captures soit lorsqu'ils atteignent une taille de 50 Mo.

Dans Wireshark, accédez à > Options de capture et recherchez l’onglet Sortie, puis entrez un nom de fichier à utiliser. Cette configuration entraîne la persistance des captures par Wireshark dans un seul fichier.

Pour activer la capture sur plusieurs fichiers, sélectionnez Créer un fichier automatiquement, puis sélectionnez après 1 0000 paquets et après 50 mégaoctets. Cette configuration configure Wireshark pour créer un nouveau fichier lorsqu’un des prédicats est satisfait. Chaque nouveau fichier utilise le même nom de base que le nom de fichier entré et ajoute un identificateur unique.

Si vous souhaitez limiter le nombre de fichiers que Wireshark peut créer, sélectionnez Utiliser une mémoire tampon en anneau avec des fichiers X. Cette option limite Wireshark à la journalisation avec uniquement le nombre spécifié de fichiers. Lorsque ce nombre de fichiers est atteint, Wireshark commence à remplacer les fichiers, en commençant par le plus ancien.

Captures de filtre

Parfois, vous ne pouvez pas limiter étroitement le trafic capturé par Wireshark , par exemple, si votre application communique avec plusieurs hôtes à l’aide de différents protocoles. Dans ce scénario, généralement avec l’utilisation de la capture persistante décrite précédemment, il est plus facile d’exécuter l’analyse après la capture réseau. Wireshark prend en charge la syntaxe de type filtre pour l’analyse des captures. Pour plus d’informations, consultez Utilisation des paquets capturés dans la documentation Wireshark.

L’exemple suivant charge un fichier de capture persistant et des filtres sur ip.src_host==<IP>.

Dans Wireshark, accédez à Fichier > Ouvrir et chargez une capture persistante à partir de l’emplacement du fichier utilisé précédemment. Une fois le fichier chargé sous la barre de menus, une entrée de filtre s’affiche. Dans l’entrée de filtre, entrez ip.src_host==<IP>. Ce filtre limite la vue de capture afin qu’elle affiche uniquement les captures où la source provient de l’hôte avec l’adresse IP <IP>.

Étapes suivantes

Cet article a abordé l’utilisation de différents outils pour diagnostiquer les problèmes de mise en réseau lors de l’utilisation du Kit de développement logiciel (SDK) Azure pour Java. Maintenant que vous connaissez les scénarios d’utilisation de haut niveau, vous pouvez commencer à explorer le SDK lui-même. Pour plus d’informations sur les API disponibles, consultez le kit de développement logiciel (SDK) Azure pour les bibliothèques Java.