Pktmon
Guide de diagnostic Pktmon
Contexte
Serveur :
- Nom : SRV
- Adresse IP : 127.0.0.1
Application :
- SE_DRVUTL.EXE
- Chemin :
C:\MICRO-SESAME\MICRO-SESAME_2024.3.15\prog\SE_DRVUTL.EXE
Port utilisé :
- UDP 20500
Objectif
Vérifier que :
- Le client envoie bien les paquets.
- Le serveur reçoit les paquets.
- L'application Micro-Sesame reçoit les données.
- Une réponse est renvoyée au client.
- Aucun pare-feu ne bloque le flux.
Vérifier qu'une application écoute sur le port 20500
Méthode 1
Get-NetUDPEndpoint | Where-Object LocalPort -eq 20500
Exemple :
LocalAddress LocalPort OwningProcess
------------ --------- -------------
0.0.0.0 20500 2308
Identifier le processus
Get-Process -Id 2308
ou
(Get-Process -Id 2308).Path
Résultat attendu :
C:\MICRO-SESAME\MICRO-SESAME_2024.3.15\prog\SE_DRVUTL.EXE
Vérifier les règles du pare-feu Windows
Rechercher une règle existante
Get-NetFirewallRule |
Where-Object DisplayName -match "20500|SESAME"
Créer une règle dédiée
New-NetFirewallRule `
-DisplayName "MICRO-SESAME - SE_DRVUTL - UDP 20500 Entrant" `
-Description "Autorise les communications UDP du service Micro-Sesame" `
-Direction Inbound `
-Action Allow `
-Program "C:\MICRO-SESAME\MICRO-SESAME_2024.3.15\prog\SE_DRVUTL.EXE" `
-Protocol UDP `
-LocalPort 20500 `
-Profile Domain
Capturer le trafic avec PKTMON
Nettoyer les filtres
pktmon filter remove
Ajouter un filtre sur le port
pktmon filter add -p 20500
Démarrer la capture en temps réel
pktmon start --etw -m real-time
Arrêter la capture
pktmon stop
Interprétation des résultats
Cas n°1 : Le serveur reçoit le paquet
Exemple :
Direction Rx
10.225.12.216.52097 > 10.208.9.134.20500
Signification :
✅ Le paquet arrive sur le serveur.
Cas n°2 : Le serveur répond
Exemple :
Direction Tx
10.208.9.134.20500 > 10.225.12.216.52097
Signification :
✅ L'application reçoit la requête. ✅ L'application génère une réponse. ✅ Le serveur renvoie un paquet.
Cas n°3 : Réception sans réponse
Direction Rx
10.225.12.216 > 10.208.9.134
Aucune ligne :
Direction Tx
Signification :
⚠️ Le serveur reçoit le paquet mais ne répond pas.
Causes possibles :
- Application arrêtée.
- Application non liée au port.
- Requête invalide.
- Filtrage interne de l'application.
- Adresse IP non autorisée.
Cas n°4 : Réponse visible dans PKTMON
Exemple réel :
Direction Rx
10.200.111.3.20500 > 10.208.9.134.20500
Direction Tx
10.208.9.134.20500 > 10.200.111.3.20500
Conclusion :
✅ Flux fonctionnel.
Le serveur reçoit la requête et répond.
Vérifier les rejets du pare-feu Windows
Rechercher les événements de blocage
Get-WinEvent -LogName Security |
Where-Object Id -eq 5157
L'événement 5157 indique qu'un paquet réseau a été bloqué.
Export d'une capture PKTMON
Démarrer une capture
pktmon start --capture --pkt-size 0
Arrêter la capture
pktmon stop
Générer un fichier texte
pktmon format PktMon.etl -o C:\Temp\PktMon.txt
Générer un fichier PCAPNG
Compatible Wireshark.
pktmon etl2pcap PktMon.etl -o C:\Temp\Capture.pcapng
Méthode de diagnostic recommandée
Étape 1
Vérifier l'écoute :
Get-NetUDPEndpoint | Where-Object LocalPort -eq 20500
Étape 2
Identifier l'application :
(Get-Process -Id <PID>).Path
Étape 3
Démarrer PKTMON :
pktmon filter remove
pktmon filter add -p 20500
pktmon start --etw -m real-time
Étape 4
Faire le test depuis le client.
Étape 5
Analyser :
Cas A :
Rx uniquement
=> Le serveur reçoit mais ne répond pas.
Cas B :
Rx + Tx
=> Le serveur communique correctement.
Cas C :
Aucun paquet
=> Problème réseau ou routage.
Exemple d'analyse complète
Client :
10.225.12.216
Serveur :
10.208.9.134
Capture :
Rx
10.225.12.216.52097 > 10.208.9.134.20500
Tx
10.208.9.134.20500 > 10.225.12.216.52097
Conclusion :
✅ Le client envoie. ✅ Le serveur reçoit. ✅ Micro-Sesame traite la requête. ✅ Le serveur répond. ✅ Le port UDP 20500 fonctionne.
Si l'utilisateur constate toujours un dysfonctionnement malgré ces traces, le problème se situe alors côté client ou sur le chemin retour réseau.