Problème
Après l'installation de l'agent monitoring réseau ktranslate
, vous rencontrez des problèmes lors de la collecte de la télémétrie du flux réseau.
Arrière-plan
ktranslate
renvoie la télémétrie de flux brute collectée, sans modifier aucune partie de la charge utile du paquet. Il existe plusieurs types de flux pris en charge dès la sortie de la boîte, les plus importants étant NetFlow v5, NetFlow v9, sFlow et IPFIX.
Toutes les données de télémétrie de flux réseau sont stockées dans le type d'événement KFlow. Vous pouvez interroger ceci directement dans NRQL. Si ce type d’événement est absent, cela indique que votre compte ne reçoit pas les données.
FROM KFlow SELECT *
Solution
L'agent ktranslate
ne peut collecter qu'un seul type de modèle de flux configuré par l'argument -nf.source lors de l'exécution, dont la valeur par défaut est auto
. Cela indique ktranslate
d'attendre tous les modèles de NetFlow v5
| NetFlow v9
| sFlow
| IPFIX
afin qu'il puisse traduire les paquets. Un problème courant consiste à configurer ktranslate
pour écouter un type spécifique de modèle de flux, puis à exporter un autre type dans l'agent. Vous devez exécuter un conteneur séparé pour tous les modèles non couverts par auto
.
Une autre erreur courante ici consiste à exporter votre télémétrie de flux vers un agent ktranslate
, tout en ciblant plusieurs ports comme destination. Dans ce scénario, vous devez exécuter plusieurs agents ktranslate
, chacun étant défini sur une valeur différente pour -nf.port au moment de l'exécution (la valeur par défaut est 9995
). Vous devrez peut-être également mettre à jour la configuration de l'exportateur de flux sur vos périphériques réseau source pour cibler leur port spécifique.
Chaque fournisseur aura sa propre documentation sur la configuration correcte de ses appareils pour l'exportation des flux réseau. Les versions plus avancées comme NetFlow v9
, IPFIX
et sFlow
disposent d'options qui permettent à l'administrateur de personnaliser les champs collectés et exportés. La modification de ces éléments peut effectivement désactiver la capacité de traiter correctement les enregistrements de flux par ktranslate
.
Les champs suivants sont required:
- Protocole (Numéro de type de champ :
4
) - Protocole de couche 4 - Adresse source (Numéro de type de champ :
8
,27
) - Adresse IPv4 ou IPv6 source - Port source (Numéro de type de champ :
7
) - Port TCP/UDP source - Adresse de destination (Numéro de type de champ :
12
,28
) - Adresse IPv4 ou IPv6 de destination - Port de destination (Numéro de type de champ :
11
) - Port TCP/UDP de destination
- Interface de réception (numéro de type de champ :
10
) - index SNMP pour l'interface d'entrée - Transmission d'interface (Numéro de type de champ :
14
) - Index SNMP pour l'interface de sortie
- Octets Delta (Numéro de type de champ :
1
) - Octets Delta - Nombre total d'octets (type de champ :
85
) - Nombre total d'octets - Octets sortants (type de champ numéro :
23
) - Octets sortants - Octets initiateurs (Numéro de type de champ :
231
) - Octets initiateurs - Octets du répondeur (Numéro de type de champ :
232
) - Octets du répondeur
- Paquets Delta (Numéro de type de champ :
2
) - Paquets Delta - Nombre total de paquets (type de champ :
86
) - Nombre total de paquets - Paquets sortants (Numéro de type de champ :
24
) - Paquets sortants - Paquets initiateurs (Numéro de type de champ :
298
) - Paquets initiateurs - Paquets de réponse (Numéro de type de champ :
299
) - Paquets de réponse
- ToS (Numéro de type de champ :
5
) - Type de service - Source AS (Numéro de type de champ :
16
) - Numéro du système autonome BGP source - Destination AS (Numéro de type de champ :
17
) - Numéro de système autonome BGP de destination - AS source homologue (numéro de type de champ :
129
) - Numéro de système autonome BGP source homologue - AS de destination homologue (Numéro de type de champ :
128
) - Numéro de système autonome BGP de destination homologue
Conseil
ktranslate
définit par défaut tous les enregistrements de flux sur Direction: ingress
, sauf si l'enregistrement utilise explicitement une valeur de egress
. Cela couvre diverses situations dans lesquelles les enregistrements de flux sont envoyés sans le champ Direction
.
Chaque fournisseur aura sa propre documentation sur le monitoring des compteurs d'exportation de flux via l'interface CLI/UI de son appareil. L'absence de croissance du compteur sur l'appareil indique que l'exportation du flux n'est pas configurée correctement sur l'appareil.
Les options de déploiement du conteneur Docker et du service Linux pour ktranslate
utilisent le réseau de l'hôte pour recevoir des données sur le port mappé. Afin de valider que les enregistrements de flux sont reçus par l'hôte, vous pouvez utiliser l'utilitaire tcpdump pour créer un fichier de capture de paquets (.pcap
) que vous pourrez ensuite examiner dans Wireshark.
L'exécution de cette commande définira tcpdump
pour capturer chaque paquet entrant sur toutes les interfaces de l'hôte et écrire la sortie dans un fichier dans le répertoire actuel :
$sudo tcpdump -s 0 -i any -w dump_capture.pcap
Notez que vous pouvez ajouter plusieurs arguments à tcpdump, l'élément le plus important ici est le fichier de sortie que vous pouvez utiliser pour une analyse ultérieure. La sortie des résultats dans STDOUT
crée une valeur limitée pour les objectifs actuels.
Une fois que vous avez ce fichier, la section suivante vous montrera comment analyser les résultats.
Conseil
L’un des problèmes les plus courants rencontrés est une règle de configuration réseau/pare-feu qui bloque les paquets des périphériques réseau sources vers l’hôte ktranslate
cible. Si vous n'obtenez aucun résultat avec l'utilitaire tcpdump
, le meilleur endroit pour commencer le dépannage est de confirmer vos règles réseau et votre configuration iptables
.
Suivez ces étapes pour utiliser Wireshark pour inspecter le fichier de capture de paquets.
Démarrez l'application Wireshark et ouvrez le fichier de capture de paquets
La vue initiale affiche tous les paquets capturés, mais pour l'analyse du flux, vous devrez configurer l'application pour les décoder correctement. À l’aide du menu, accédez à Analyze > Decode As...
, ce qui ouvre une nouvelle fenêtre contextuelle.
Dans la fenêtre contextuelle, cliquez sur l’icône plus (+
) en bas à gauche, ce qui ajoutera une nouvelle ligne au panneau. L'option initiale dans la colonne Current
est (none)
. Cliquez ici pour ouvrir un menu déroulant, puis sélectionnez CFLOW
pour NetFlow
et IPFIX
, ou sFlow
pour les paquets sFlow
. Cliquez sur OK
en bas à droite pour revenir à l'interface utilisateur principale.
Conseil
Ce menu est classé par ordre alphabétique en respectant la casse. L'option sFlow
se trouve tout en bas de la liste.
Dans l'interface utilisateur principale, vous devriez maintenant pouvoir voir les paquets CFLOW
| sFlow
en les identifiant dans la colonne Protocol
. L'application du filtre d'affichage (cflow or sflow)
isolera automatiquement les paquets dont vous avez besoin de tout ce qui pourrait se trouver dans le fichier de capture.
Les sections suivantes décrivent comment inspecter chaque type de paquet.
NetFlow
et les protocoles IPFIX
utilisent une approche de modèle où l'administrateur peut identifier les champs à collecter, à partir d'une liste d'options standard. L'analyse de ces paquets est effectuée pour garantir que les champs obligatoires pour ktranslate
sont capturés.
Dans l'interface utilisateur principale de Wireshark, cliquez pour sélectionner un seul paquet CFLOW
, puis développez la section intitulée FlowSet n
, où n
est un entier qui identifie un enregistrement de flux singulier dans un paquet. Vous développerez ensuite le sous-groupe Flow n
pour analyser les champs de cet enregistrement de flux.
Conseil
Vous pouvez également cliquer sur le lien Template Frame
dans le paquet pour accéder à un paquet capturé contenant le modèle de tous les flux de cet appareil.
En raison des différences de protocole entre sFlow
et les protocoles NetFlow/IPFIX
plus traditionnels, il existe différents champs à analyser.
Dans l'interface utilisateur principale de Wireshark, cliquez pour sélectionner un seul paquet sFlow
, puis développez la section intitulée InMon sFlow
. Les champs suivants doivent être présents :
Champ | Description |
---|---|
Version du datagramme | La version de ce paquet sFlow. |
Type d'adresse de l'agent | IPv4 (1) ou IPv6 (2) |
Adresse de l'agent | Adresse IP à partir de laquelle les flux sont exportés. C'est ici que vous avez configuré votre exportateur de flux. |
ID du sous-agent | Dans sFlow v5, vous pouvez exécuter plusieurs processus d'exportation. Il s’agit de leur identifiant unique. |
Numéro de séquence | Le nombre de paquets sFlow envoyés par le périphérique agent. |
SysUptime | Temps écoulé depuis le dernier redémarrage du périphérique agent. |
Nombre d'échantillons | Le nombre d'échantillons sFlow contenus dans le paquet actuel. |
Le développement d'un sous-groupe intitulé Flow sample
affichera ces champs supplémentaires :
Champ | Description |
---|---|
Enterprise | Ce champ annote la configuration d'entreprise sFlow personnalisée que l'administrateur peut éventuellement activer lors de la configuration de ses exportations sFlow . ( |
Type d'échantillon sFlow | Il s’agit de la désignation du type d’échantillon utilisé lorsqu’une entreprise personnalise ses exportations sFlow. Vous pouvez trouver des définitions dans la documentation sFlow. |
Longueur de l'échantillon | Longueur de l'échantillon, en octets. |
Numéro de séquence | La valeur du compteur est incrémentée à chaque fois que l'agent prélève un échantillon. |
Taux d'échantillonnage | 1 paquet sur |
Exemple de piscine | Nombre total de paquets possibles qui auraient pu être échantillonnés, y compris les paquets réellement échantillonnés. |
Paquets abandonnés | Nombre de paquets qui ont été abandonnés en raison de contraintes de ressources. |
Interface d'entrée | SNMP ifIndex de l'interface à partir de laquelle le paquet est arrivé. |
Enregistrement de flux | Nombre d'enregistrements échantillonnés contenus dans cet échantillon. |
Conseil
Ce même modèle, sans l’étape Decode as...
, peut être appliqué pour valider la réception des données syslog et SNMP.