La Métrologie des Réseaux
Netflow
Présentation générale
Netflow est un protocole propriétaire Cisco, qui s'appuie sur la notion de flux pour effectuer ces mesures :
- Adresses source et destination
- Protocole (TCP, UDP, ICMP..)
- Type of Service (ToS)
- Ports applicatifs
- Interfaces d'entrée et de sortie du routeur
Le cache Netflow
Un routeur sur lequel Netflow est activé possède en cache une table des flux actifs : le "Cache NetFlow". Celui ci permet de compter le nombres de paquets et d'octets reçus pour chaque flux. Ansi, à chaque paquet reçu le routeur met à jour le cache soit en créant une nouvelle entrée soit en incrémentant les compteurs d'une entrée existante. Voici un exemple du contenu du cache Netflow :
Une entrée de la table expire lorsque :
- Elle a été inactive pendant un certain temps (par défaut 15 sec)
- Elle a été active trop longtemps (par défaut 30 min)
- S'il s'agit d'un flux TCP et que les flags FIN ou RST ont été détectés parle routeur.
Lorsqu'un flux a expiré il est supprimé du cache NetFlow et les informations sont envoyées vers une machine de collecte. Pour cela, Cisco a développé son propre protocole, "Netflow Protocol".
Un certain nombre de commandes sont disponible sur les équipements Cisco pour configurer la gestion du cache :
- ip route-cache flow "interface" Pour chaque interface
- ip flow-export version "version" ex : ip flow-export version 5
- ip flow-export destination "address" "port" ex : ip flow-export destination 10.0.0.1 65001
- ip flow-cache timeout active "minutes" règle le timeout
- show ip cache [verbose] flow Affiche les statistiques NetFlow
- show ip flow export Affiche les statistiques d'export
- clear ip cache flow Vide les statistiques NetFlow
- clear ip flow stats Vide les statistiques d'export
Le protocole Netflow
De nombreuses versions du protocole Netflow existent: 1, 5, 6, 7, 8. La version 5 est actuellement la plus couramment utilisée, et permet d'exporter une grande quantité d'information vers un collecteur. La version 7 n'est utilisé que pour switches Catalyst et diffère peu de la version 5. La version 8 introduit les schémas d'agrégation (environ une quinzaine actuellement). Chaque version a ainsi apporté son lot de changements et demandé une modification des collecteurs. De plus, jusqu'à la version 8, le multicast, IPv6 et MPLS n'étais pas prise en charge.
Nous étudierons donc ici plus en détail la version 9, car elle introduit la notion de template et elle supporte enfin le multicast, MPLS et IPv6 en bêta.
Une trame Netflow contient aisni une entête et une succession de Data FlowSets et de Templates FlowSets :
L'entête contient les données suivantes :
- Version : la version de Netflow
- Count : Nombre de Flowset
- System Uptime : Depuis combien de temps le système est démarrer
- UNIX Seconds : L'heure actuelle, en notation UNIX
- Sequence Number : Un numéro de séquence, incrémenter à chaque trame envoyé.
- Source ID : Champs de 32 bits, utilisé pour garantir la pérennité des données.
Une trame est donc constituer d'une suite de Flowset : les Templates Flowset représentent l'organisation des données, alors que les Data Flowset contiennent les données en elle-même. Chaque Data Flowset est ainsi associé a un Template Flowset, que le collecteur aura du recevoir au préalable.
Un Template représente donc une suite de champs, représenté par un type et une longueur. Chaque champ peut être n'importe quelle donnée contenue dans le cache Netflow.
Le Collecteur et l'analyser Netflow
Le collecteur (NetFlowCollector) est un serveur qui récupère et stocke les données reçues des différents routeurs. Il réalise également une première phase de traitement en appliquant des règles de filtrage, afin notamment de trier puis d'agréger les données.
Enfin, l'analyseur produit des graphes en fonction des données stockés sur le serveur. Nous voyons donc ci dessous un rapport sur un routeur, pour une durée d'une heure. On trouve tout d'abord un aperçu du trafic global, minute par minute. Dans un deuxième temps, le trafic est décomposé par application. Enfin la troisième partie indique les adresses sources et destinations ayant généré le plus de trafic.