Objectifs de certification
ENCOR 350-401
4.3 Configure and verify NetFlow and Flexible NetFlow
Supervision Netflow
1. 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. Le protocole utilise le port UDP2055.
En 2004, Cisco a publié les caractéristiques de la version 9 du protocole NetFlow dans la RFC 3954. L’IETF en a dérivé le protocole IPFIX (IP Flow Information Export), normalisé en 2008 dans les RFC 5101, RFC 5102 et RFC 5103.
2. 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.
3. Flux réseau
Un flux réseau NetFlow est unidirectionnel.
Il est caractérisé par 7 champs clés :
- le protocole de couche 3 (en général IPv4, mais d’autres protocoles sont possibles)
- l’adresse IP source
- l’adresse IP destination
- le port source (UDP ou TCP, 0 pour les autres protocoles)
- le port destination
- le champ Type of Service
- 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.
4. 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).
5. Version 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 IPFIX. Champs définis par les utilisateurs, champs en longueur variable. |
6. 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 boîtiers. 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:
- Jflow ou cflowd chez Juniper Networks
- NetStream chez 3Com/HP
- NetStream chez Huawei Technologies
- Cflowd chez Alcatel-Lucent
- Rflow chez Ericsson
- AppFlow chez Citrix
Il existe aussi des alternatives. sFlow est un protocole concurrent. IPFIX est le standard de l’IETF dérivé de NetFlow.
7. Configuration de Netflow
Sur l’interface à surveiller :
(config-if)#ip route-cache flow
(config-if)#ip flow {ingress | egress}
En configuration globale :
(config)#ip flow-export destination <ip_address>
Optionnellement :
(config)#ip flow-export source Loopback 0
(config)#ip flow-export version 5
Régularité :
(config)#ip flow-cache timeout active 5
(config)#ip flow-cache timeout inactive 15
8. Vérification Netflow
#sh run | begin ip flow
ip flow-cache timeout active 5
ip flow-export version 5
ip flow-export destination 172.16.124.134 23456
#show ip flow interface
FastEthernet0/0
ip route-cache flow
FastEthernet0/1
ip route-cache flow
9. Vérification Export Netflow
#show ip flow export
Flow export v5 is enabled for main cache
Export source and destination details :
VRF ID : Default
Destination(1) 172.16.124.134 (23456)
Version 5 flow records
97 flows exported in 65 udp datagrams
0 flows failed due to lack of export packet
0 export packets were sent up to process level
0 export packets were dropped due to no fib
0 export packets were dropped due to adjacency issues
0 export packets were dropped due to fragmentation failures
0 export packets were dropped due to encapsulation fixup failures
10. Cache Netflow
#show ip cache flow
IP packet size distribution (128 total packets):
1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480
.000 .000 .101 .296 .421 .093 .007 .000 .062 .000 .015 .000 .000 .000 .000
512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
IP Flow Switching Cache, 278544 bytes
3 active, 4093 inactive, 98 added
1570 ager polls, 0 flow alloc failures
Active flows timeout in 5 minutes
Inactive flows timeout in 15 seconds
IP Sub Flow Cache, 25800 bytes
3 active, 1021 inactive, 89 added, 89 added to flow
0 alloc failures, 0 force free
1 chunk, 1 chunk added
last clearing of statistics never
Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)
-------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow
UDP-NTP 13 0.0 1 76 0.0 0.0 15.3
UDP-other 61 0.0 1 160 0.0 0.0 15.4
ICMP 20 0.0 2 127 0.0 1.9 15.7
Total: 94 0.0 1 138 0.0 0.4 15.5
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
Fa0/1 74.125.232.146 Local 172.16.124.131 01 0000 0000 5
Fa0/1 172.16.124.1 Null 172.16.124.255 11 445C 445C 1
Fa0/1 172.16.124.2 Local 172.16.124.131 11 0035 D60A 1
11. Collecteur NetFlow
Sous Debian Ubuntu
apt install nfdump
mkdir -p /var/lib/netflow/test
nfcapd -w -D -l /var/lib/netflow/test -p 23456
netstat -an | grep :23456
nfdump -R /var/lib/netflow/test
12. Références
- http://fr.wikipedia.org/wiki/NetFlow
- http://gregsowell.com/?p=610
- http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6555/ps6601/prod_white_paper0900aecd80406232.html
- http://www.cisco.com/en/US/docs/ios/12_2/switch/configuration/guide/xcfnfc.html
- https://supportforums.cisco.com/thread/2185457
- http://www.manageengine.com/products/netflow/help/cisco-netflow/cisco-ios-netflow.html