Supervision des flux : NetFlow, IPFIX, sFlow

Les paramètres NetFlow / sFlow se configurent dans l’interface de XorMon ➡ Settings ➡ Application ➡ NetFlow :

NetFlow / sFlow configuration
Le collecteur de flux de XorMon accepte NetFlow v5, NetFlow v9, IPFIX et sFlow v5, en trafic IPv4 et IPv6 (NetFlow v5 ne transporte que l’IPv4).

L’implémentation de XorMon n’a pas vocation à remplacer les analyseurs NetFlow/sFlow spécialisés ; elle offre une vue simple, rapide et lisible du trafic réseau.
Si une analyse plus poussée est nécessaire, il faut se tourner vers des outils spécialisés.
L’objectif est de présenter uniquement les plus gros flux de connexion.

Limites de l’implémentation de XorMon

  • Données de « conversation » :
    • TOP 250 des connexions par tranche de 5 minutes (personnalisable)
    • La connexion doit présenter un trafic supérieur à 100 ko/5 minutes (personnalisable)
    • La rétention des données est d’une semaine
  • Reste des données (agrégats par application, protocole, QoS) :

Support

  • NetFlow v5 / v9 / IPFIX : port UDP 2055 par défaut. v9 ou IPFIX est préférable à v5. Avec Flexible NetFlow, IPFIX se sélectionne par export-protocol ipfix dans le flow exporter.
  • sFlow v5 : port UDP 6343 par défaut. sFlow envoie des paquets échantillonnés, pas des flux : les octets et les paquets sont estimés comme échantillon × taux d’échantillonnage, et Flow Count compte les échantillons.
  • Destination : l’adresse IP du serveur XorMon
  • Les ports et les autres options du collecteur se définissent dans XorMon : Settings ➡ Application ➡ NetFlow.

Où le trouver ?

  • Interface ➡ LAN ➡ NetFlow
  • Sous VM ➡ NetFlow (si des données ont été collectées pour la VM) : voir le dernier exemple avec VMware vM

Exemples

Bande passante par conversation :
NetFlow / sFlow  monitoring conversation

Bande passante par application :
NetFlow / sFlow  monitoring application

:
NetFlow / sFlow  monitoring QoS

Bande passante des conversations de VM:
NetFlow / sFlow  monitoring VM

NetFlow v9 / IPFIXsFlow
FonctionnementL’équipement tient un cache de flux et exporte un enregistrement par fluxLe switch échantillonne 1 paquet sur N en matériel et envoie leurs en-têtes
PrécisionOctets et paquets exacts par conversation (sans échantillonnage)Estimation statistique ; les conversations petites ou brèves peuvent ne pas apparaître du tout
Charge sur l’équipementCPU et mémoire pour le cache de flux, croissant avec le nombre de flux simultanés. Sans problème avec le NetFlow matériel, mais potentiellement important sur les plateformes logiciellesFaible et constante, indépendante du volume de trafic
Trafic d’export vers XorMonCroît avec le nombre de fluxCroît avec paquets / N, prévisible
Équipements typesRouteurs Cisco, Catalyst 9000, pare-feuSwitchs de centre de données ou de cœur de réseau à haut débit (par exemple Nexus 3000/9000), la plupart des switchs non Cisco (Arista, Juniper, HPE Aruba, Dell)

Recommandations

  • Environnements petits et moyens, périphérie WAN / Internet, liens jusqu’à environ 10 Gbit/s, ou lorsque des données exactes par conversation sont nécessaires (planification de capacité, facturation, sécurité) : NetFlow v9 ou IPFIX, sans échantillonnage, sur les équipements de périphérie.
  • Grands environnements ou centres de données, nombreux ports à 10 Gbit/s et plus, ou switchs sans NetFlow matériel : sFlow.
  • Mixte : NetFlow/IPFIX sur les routeurs de périphérie, sFlow dans le centre de données ou le cœur de campus. Évitez d’exporter le même trafic des deux façons : XorMon ne conserve qu’une copie d’un flux rapporté par plusieurs exportateurs, mais les estimations sFlow et les comptages exacts de NetFlow ne coïncident jamais exactement.

Maintenir une charge faible sur l’équipement

  • NetFlow/IPFIX : privilégiez les plateformes dotées d’un NetFlow matériel et activez-le sur les équipements où vous avez besoin de visibilité (périphérie, liens montants, cœur) plutôt que sur chaque switch d’accès. Conservez les délais d’expiration de ce guide (actif 60 s, inactif 15 s). Après activation, surveillez le CPU et le cache de flux (show flow monitor XORMON-MONITOR statistics) ; si le cache déborde ou si le CPU est élevé, utilisez le NetFlow échantillonné ou réduisez le nombre d’équipements.
  • sFlow : le taux d’échantillonnage 1 :N définit le compromis entre précision et charge. Une règle empirique courante est N ≈ débit du lien en Mbit/s (1:1000 pour 1 Gbit/s, 1:10000 pour 10 Gbit/s). Un N plus faible donne des données plus précises et davantage de datagrammes. Les liens peu chargés produisent peu d’échantillons par intervalle de 5 minutes, leurs valeurs sont donc bruitées.

Comment XorMon traite sFlow

  • Les octets et les paquets sont estimés comme échantillon × taux d’échantillonnage ; Flow Count compte les échantillons.
  • La taille minimale de conversation (1024 o par défaut) filtre rarement les conversations sFlow : un seul échantillon compte déjà pour longueur de trame × N octets (par exemple 64 o × 1000 = 64 ko).

Cisco Classic NetFlow

Routeurs IOS tels que les ISR G1/G2, IOS 12.4–15.x :
! global
ip flow-export version 9
ip flow-export destination <XORMON_IP> 2055
ip flow-cache timeout active 1
ip flow-cache timeout inactive 15

! on every interface of the device (ingress only)
interface GigabitEthernet0/1
 ip route-cache flow
Sur les versions 12.4/15.x plus récentes, ip route-cache flow est remplacé par :
interface GigabitEthernet0/1
 ip flow ingress
Vérifiez avec :
show ip flow export
show ip cache flow

Cisco Flexible NetFlow

Catalyst 9000, ISR 4000, IOS-XE 16.x et ultérieur :
flow record XORMON-RECORD
 match ipv4 protocol
 match ipv4 source address
 match ipv4 destination address
 match transport source-port
 match transport destination-port
 match interface input
 collect interface output
 collect counter bytes long
 collect counter packets long
 collect timestamp sys-uptime first
 collect timestamp sys-uptime last

flow exporter XORMON-EXPORTER
 destination <XORMON_IP>
 transport udp 2055
 export-protocol netflow-v9
 source Loopback0

flow monitor XORMON-MONITOR
 record XORMON-RECORD
 exporter XORMON-EXPORTER
 cache timeout active 60
 cache timeout inactive 15

! on every interface of the device (input only)
interface GigabitEthernet1/0/1
 ip flow monitor XORMON-MONITOR input
Vérifiez avec :
show flow monitor XORMON-MONITOR cache
show flow exporter XORMON-EXPORTER statistics

IPFIX à la place de NetFlow v9

La configuration du flow record, du flow monitor et des interfaces reste identique ; seul le protocole d’export de l’exportateur change :
flow exporter XORMON-EXPORTER
 destination <XORMON_IP>
 transport udp 2055
 export-protocol ipfix
 source Loopback0
XorMon reçoit NetFlow v9 et IPFIX sur le même port et affiche les mêmes données pour les deux, les deux choix conviennent donc. Classic NetFlow (ip flow-export) ne peut pas exporter en IPFIX : utilisez Flexible NetFlow pour cela.

Trafic IPv6

Le flow record ci-dessus ne correspond qu’à l’IPv4, le trafic IPv6 n’est donc pas exporté. Ajoutez un second record et un second monitor pour l’IPv6 (l’exportateur est partagé) et appliquez-les aux mêmes interfaces :
flow record XORMON-RECORD-V6
 match ipv6 protocol
 match ipv6 source address
 match ipv6 destination address
 match transport source-port
 match transport destination-port
 match interface input
 collect interface output
 collect counter bytes long
 collect counter packets long
 collect timestamp sys-uptime first
 collect timestamp sys-uptime last

flow monitor XORMON-MONITOR-V6
 record XORMON-RECORD-V6
 exporter XORMON-EXPORTER
 cache timeout active 60
 cache timeout inactive 15

! on every interface of the device (input only), next to the IPv4 monitor
interface GigabitEthernet1/0/1
 ip flow monitor XORMON-MONITOR input
 ipv6 flow monitor XORMON-MONITOR-V6 input
Vérifiez avec :
show flow monitor XORMON-MONITOR-V6 cache
Classic NetFlow : un routeur peut exporter vers plusieurs destinations à la fois ; il suffit d’ajouter une seconde ligne, rien d’autre ne change :
ip flow-export destination <XORMON_IP> 2055
(la ligne existante ip flow-export destination <old_collector_ip> <port> reste inchangée)

Flexible NetFlow : un même flow monitor peut référencer plusieurs exportateurs ; ajoutez donc un nouvel exportateur et rattachez-le au monitor existant (inutile de toucher à la configuration des interfaces) :
flow exporter XORMON-EXPORTER
 destination <XORMON_IP>
 transport udp 2055
 export-protocol netflow-v9
 source Loopback0

flow monitor <EXISTING-MONITOR>
 exporter XORMON-EXPORTER
Si la plateforme n’autorise qu’un seul exportateur par monitor (certaines branches logicielles anciennes des 9300/9500 le limitent), la solution de rechange est un second flow monitor avec le même flow record et un second exportateur, appliqué aux mêmes interfaces en plus de celui déjà en place (ip flow monitor <NEW-MONITOR> input).

Vérification rapide côté serveur XorMon

tcpdump -ni any udp port 2055
Assurez-vous que le pare-feu autorise l’UDP/2055 entrant depuis le switch.
XorMon attend du sFlow v5 sur le port UDP 6343. Le switch est identifié par l’adresse d’agent qu’il place dans les datagrammes (et non par l’IP source du paquet UDP), définissez donc une adresse d’agent ou de source stable.

  • Échantillonnez le trafic entrant, sur tous les ports du switch, afin que chaque paquet soit compté une seule fois.
  • Taux d’échantillonnage : une règle empirique courante est N ≈ débit du lien en Mbit/s (1:1000 pour 1 Gbit/s, 1:10000 pour 10 Gbit/s), voir NetFlow ou sFlow.
  • Conservez la taille d’en-tête échantillonné par défaut (généralement 128 octets) ou une valeur supérieure ; XorMon y lit les en-têtes Ethernet, VLAN, IP et TCP/UDP.
  • Les échantillons de compteurs (compteurs d’interface) sont ignorés par XorMon, l’intervalle d’interrogation n’a donc pas d’importance.

Cisco Nexus (NX-OS)

feature sflow
sflow sampling-rate 4096
sflow max-sampled-size 128
sflow collector-ip <XORMON_IP> vrf default
sflow collector-port 6343
sflow agent-ip <SWITCH_IP>
sflow data-source interface ethernet 1/1
Répétez sflow data-source interface pour chaque port. Vérifiez avec show sflow et show sflow statistics.

Arista EOS

sflow sample 16384
sflow destination <XORMON_IP> 6343
sflow source-interface Loopback0
sflow run
sFlow est alors actif sur toutes les interfaces Ethernet ; excluez-en une avec no sflow enable dans la configuration de l’interface. Vérifiez avec show sflow.

Juniper (Junos)

set protocols sflow collector <XORMON_IP> udp-port 6343
set protocols sflow sample-rate ingress 2048
set protocols sflow agent-id <SWITCH_IP>
set protocols sflow interfaces ge-0/0/0.0
Répétez interfaces pour chaque port. Vérifiez avec show sflow et show sflow collector.

HPE Aruba (AOS-CX)

sflow collector <XORMON_IP> port 6343
sflow agent-ip <SWITCH_IP>
sflow sampling 4096
sflow
La commande globale sflow l’active sur toutes les interfaces. Vérifiez avec show sflow.

Hôte Linux (hsflowd)

Utile pour les serveurs et pour tester le collecteur. /etc/hsflowd.conf:
sflow {
  sampling = 1000
  collector { ip = <XORMON_IP> udpport = 6343 }
  pcap { dev = eth0 }
}
Puis systemctl restart hsflowd.

Vérification rapide côté serveur XorMon

tcpdump -ni any udp port 6343
Assurez-vous que le pare-feu autorise l’UDP/6343 entrant depuis le switch.
  • Activez NetFlow en entrée uniquement, sur chaque interface de l’équipement. Chaque paquet entre alors dans l’équipement par exactement une interface et n’est compté qu’une fois. En entrée et en sortie sur toutes les interfaces, chaque paquet est compté deux fois.
  • Lorsque le même trafic traverse plusieurs exportateurs (switch d’accès et switch de cœur, deux routeurs sur un même chemin), XorMon le dédoublonne : si plusieurs exportateurs rapportent le même flux (IP source/destination, ports, protocole) dans un même intervalle de 5 minutes, seul l’exportateur qui en a vu le plus d’octets est conservé. Cela s’applique à Protocol, Application, QoS, Source, Destination et Conversation.
  • Bandwidth, Throughput et Flow Count affichent chaque exportateur séparément, exactement tel qu’il a rapporté le trafic ; leur Total est une simple somme des exportateurs.
  • Ne sont pas reconnus comme doublons : le NAT entre les exportateurs, des taux d’échantillonnage différents, ainsi que l’entrée et la sortie sur un même équipement. Privilégiez un export depuis les seuls équipements de périphérie, en configuration entrée uniquement.
  • Le dédoublonnage peut être désactivé dans XorMon : Settings ➡ Application ➡ NetFlow.