Skip to main content

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 :

  1. Le client envoie bien les paquets.
  2. Le serveur reçoit les paquets.
  3. L'application Micro-Sesame reçoit les données.
  4. Une réponse est renvoyée au client.
  5. 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.