NetFlow

NetFlow est une architecture de surveillance des réseaux développée par Cisco Systems qui permet de collecter des informations sur les flux IP. Elle définit un format d'exportation d'informations sur les flux réseau nommé NetFlow services export format (format d'exportation des services NetFlow, en abrégé protocole NetFlow). Elle permet de superviser de façon fine les ressources du réseau utilisées.

En 2004, Cisco a publié les caractéristiques de la version 9 du protocole NetFlow dans la RFC 3954[1]. L'IETF en a dérivé le protocole IPFIX (IP Flow Information Export), normalisé en 2008 dans les RFC 5101[2], RFC 5102[3] et RFC 5103[4].

Architecture

Des éléments réseau (commutateurs et routeurs) établissent des statistiques sur les données des flux réseau qu'ils exportent vers des collecteurs. Ces statistiques détaillées peuvent porter sur les nombres de paquets et d'octets, les ports applicatifs, les adresses IP, les champs de qualité de service, les interfaces par lesquelles ils transitent, etc.

Les flux réseau

Un flux réseau NetFlow est unidirectionnel. Il est caractérisé par 7 champs clés[5] :

  1. le protocole de couche 3 (en général IPv4, mais d'autres protocoles sont possibles)
  2. l'adresse IP source
  3. l'adresse IP de destination
  4. le port source (UDP ou TCP, 0 pour les autres protocoles)
  5. le port de destination
  6. le champ Type of Service
  7. l'interface en entrée

Les paquets appartenant à un même flux (même adresse IP source, même adresse IP destination, etc.) sont décomptés dans les statistiques. On remarque que l'interface de sortie ne caractérise pas un flux, ce qui est une bonne chose sur les routeurs où les routes de sortie peuvent changer.

Il existe aussi des champs non clés qui ne caractérisent pas un flux, mais dont la valeur est relevée. En règle générale, seule la valeur pour le premier paquet du flux est indiquée. On peut par exemple relever la date et l'heure du début du flux.

Les données exportées

L'équipement réseau envoie un enregistrement décrivant le flux quand le flux s'achève. Un flux est considéré comme achevé lorsqu'il n'y a plus de paquets qui passent pendant un certain temps, ou quand la connexion TCP est close. On peut aussi configurer l'équipement pour envoyer des enregistrements à intervalles réguliers, même quand le flux est encore en train de s'écouler.

Ces enregistrements NetFlow sont en général transportés par UDP. L'adresse IP du collecteur auquel ils sont envoyés doit être configurée sur l'équipement émetteur. Un paquet NetFlow peut regrouper plusieurs enregistrements en un seul envoi. Par défaut, on utilise le port UDP 2055, mais il est courant de choisir un autre port.

Pour des raisons d'efficacité, si un de ces enregistrements NetFlow est perdu pour cause de congestion du réseau ou de paquet corrompu, l'équipement réseau est dans l'incapacité de le renvoyer, car il n'en conserve pas une copie. Cela peut conduire à des statistiques dégradées. Pour cette raison, certaines implémentations récentes de NetFlow utilisent SCTP à la place de UDP pour garantir que les statistiques seront reçues (TCP ne convient pas, car il est trop lourd).

Versions de NetFlow

Version Commentaire
v1 Première implémentation, à présent dépassée. Limitée à IPv4 sans masque réseau ni numéro de système autonome.
v2 Version interne à Cisco, jamais publiée.
v3 Version interne à Cisco, jamais publiée.
v4 Version interne à Cisco, jamais publiée.
v5 La version la plus courante (en 2009) sur de nombreux équipements de différentes marques, mais restreinte aux flux IPv4.
v6 Version qui n'est plus prise en charge par Cisco.
v7 Comme la version 5, avec un champ « routeur source ».
v8 Agrégation de plusieurs informations.
v9 S'appuie sur des modèles (templates), ce qui permet d'ajouter des champs sans redéfinir le standard. Permet de rapporter des flux IPv6, MPLS, ou le prochain saut BGP en IPv4.
v10 Connue comme IP Flow Information Export. Champs définis par les utilisateurs, champs en longueur variable.

Prise en charge de NetFlow

En plus de Cisco, de nombreux constructeurs d'équipements réseau offrent une prise en charge de NetFlow sur leurs boitiers. La liste comprend Juniper, Alcatel-Lucent et Nortel, entre autres. En ce qui concerne les plates-formes logicielles, il y a une prise en charge sur serveurs VMWare et sous Linux.

Certains constructeurs utilisent un autre nom pour cette technologie, sans doute parce que NetFlow est ressenti comme une marque déposée de Cisco[6]:

Il existe aussi des alternatives. sFlow (en) est un protocole concurrent. IPFIX est le standard de l'IETF dérivé de NetFlow.

Notes et références

  1. (en) « Cisco Systems NetFlow Services Export Version 9 », Request for comments no 3954,
  2. (en) « Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of IP Traffic Flow Information », Request for comments no 5101,
  3. (en) « Information Model for IP Flow Information Export », Request for comments no 5102,
  4. (en) « Bidirectional Flow Export Using IP Flow Information Export (IPFIX) », Request for comments no 5103,
  5. Cisco IOS Flexible NetFlow Technology White Paper, septembre 2008
  6. En mars 2012, NetFlow ne figure pas dans la liste des marques protégées de Cisco.

Voir aussi

Source

  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « NetFlow » (voir la liste des auteurs).

Article connexe

  • Flux de paquets (réseau informatique)

Liens externes

  • (en) NetFlow sur le site de CISCO
  • (en) RFC3954 - Cisco Systems NetFlow Services Export Version 9 - RFC informative sur NetFlow
  • (en) fprobe et fprobe-ulog, des sondes sous Linux qui décomptent le trafic réseau et l'envoient à un collecteur NetFlow
  • (en) ipt-netflow, module pour iptables sous Linux
  • (en) Flowd, un collecteur NetFlow sous Linux.
  • (en) sFlow
  • (en) ZNeTS , un logiciel de surveillance réseau via NetFlow
  • icône décorative Portail de l’informatique
  • icône décorative Portail des télécommunications