Configuration du Flexible Netflow pour un IOS-XE Cisco

Dans : Réseau Cisco

L’IOS-XE Cisco est un système d’exploitation qui possède un noyau Linux moderne et qui fait tourner plusieurs processus simultanément, dont l’IOS Cisco, qui est appelé IOSd. Ce guide a pour but d’indiquer comment configurer le Flexible Netflow sur ce type de système d'exploitation Cisco.

Dans un IOS-XE, tous les aspects liés aux matériels sont gérés par le noyau Linux. La configuration des services et protocoles est, quant à elle, uniquement gérée par l’IOSd. C’est la différence majeure avec l’IOS Cisco. Par exemple, les interfaces ne sont plus gérées par l’IOS mais par un processus différent.

Flexible Netflow est un protocole de surveillance de réseau collectant des données sur les flux IP pour pouvoir superviser précisément les ressources utilisées.

Avant toute chose, vous devez vous connecter en console, réaliser une connexion telnet ou une connexion SSH pour accéder à la console CLI de l’équipement Cisco.

1. Prérequis pour la configuration du Flexible Netflow

Pour pouvoir configurer le Flexible Netflow sur un IOS-XE, il y a certains prérequis à respecter :

  • Assurez-vous d'abord que la version qui fonctionne sur votre équipement Cisco permet de pouvoir configurer le Flexible Netflow ;
  • Vérifiez que l'équipement est bien connecté à un Local Area Network (LAN) ;
  • L'équipement doit être configuré pour supporter différents types de protocoles tels que IPv4, IPv6 ou encore datalink.

2. Configuration de l'enregistrement des flux

Les enregistrements de flux sont composés d'un ensemble de champs. Ces enregistrements sont affectés aux moniteurs de flux pour définir le cache utilisé pour stocker les données de flux. Un enregistrement de flux définit les clés qui sont utilisées par Flexible Netflow pour identifier les paquets dans le flux, ainsi que d'autres champs utiles que le Flexible Netflow rassemble pour le flux. Il est donc important de les configurer en premier lieu.

Pour ce faire, vous devez d’abord passer en mode configuration en entrant les commandes :

enable
configuration terminal

Il faut alors passer en mode configuration d'enregistrement de flux en entrant la commande suivante :

flow record <nom_enregistrement_flux>

astarox>enable
Password:
astarox#conf t
Enter configuration commands, one per line. End with CNTL/Z.
astarox(config)#flow record INET-FULL
astarox(config-flow-record)#

Une fois dans le mode configuration d'enregistrement de flux, vous devez configurer deux aspects de l'enregistrement de flux :

  • Les paramètres de correspondance ;
  • Les paramètres de collecte.

NB Si vous souhaitez réalisez une configuration dite "originale", c'est-à-dire qui est celle de base, pré-enregistrée sur votre équipement, il est possible de ne pas réaliser la configuration de l'enregistrement des flux. Dans ce cas, vous pouvez directement passer à l'étape suivante.

Configuration des paramètres de correspondance de l'enregistrement des flux

Les paramètres de correspondance, ou match parameters, sont les paramètres qui vont permettent de grouper les différents paquets collectés selon des attributs spécifiques. Ils sont appelés champs clés. Les groupes ayant une correspondance avec tous les paramètres configurés sont envoyés au moniteur de Netflow.

Il existe de nombreuses clés qu'il est possible d'activer. Ici, nous n'évoquerons que les principales.

Les premiers paramètres à configurer sont les attributs IPv4. Pour ce faire, vous devez entrer la commande suivante :

match ipv4 <attribut>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

match ipv4 ?

Dans notre exemple, nous avons choisi de collecter les paquets utilisant le protocole IPv4 et ayant pour adresses source et destination des adresses IPv4.

astarox(config-flow-record)#match ipv4 protocol
astarox(config-flow-record)#match ipv4 source address
astarox(config-flow-record)#match ipv4 destination address
Router(config-flow-record)# 

Il faut alors configurer les paramètres de collecte des informations de la couche transport. Pour cela, vous pouvez utiliser la commande suivante :

match transport <attribut>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

match transport ?

Dans notre exemple, nous avons configuré l'enregistrement de flux de manière à ce qu'il collecte les informations venant des paquets qui ont pour ports source et destination des des ports de transport.

astarox(config-flow-record)#match transport source-port
astarox(config-flow-record)#match transport destination-port
astarox(config-flow-record)# 

Il peut également être intéressant de configurer la collecte des paquets selon leur type d'interface. Il vous suffit d'utiliser la commande suivante :

match interface <attribut>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

match interface ?

Dans notre exemple, nous avons décidé de collecter les paquets venant d'interfaces d'entrées et de sorties.

astarox(config-flow-record)#match interface input
astarox(config-flow-record)#match interface output
astarox(config-flow-record)# 

De manière générale, pour configurer un nouveau paramètre de correspondance, il suffit d'entrer la commande suivante :

match <nom_parametre_correspondance>

Configuration des paramètres de collecte de l'enregistrement de flux

Les paramètres de collecte, ou collect parameters, sont des paramètres qui ne vont pas permettre de grouper les paquets à envoyer au moniteur de Netflow, mais qui vont tout de même permettre de choisir certains attributs, venant des paquets déjà groupés par les paramètres de correspondance, dans le but de les envoyer au moniteur de Netflow. Ce sont, en règle générale, des attributs non indispensables mais qui peuvent apporter des informations supplémentaires pour la supervision de réseau.

Il existe de nombreux paramètres qu'il est possible d'activer. Ici, nous n'évoqueront que les principaux paramètres.

Les premiers paramètres de correspondance à configurer sont les attributs de routage que vous souhaitez collecter. Pour ce faire, vous devez entrer la commande suivante :

collect routing <attribut>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

collect routing ?

Dans notre exemple, nous avons choisi de collecter l'adresse de destination et l'adresse IPv4 du prochain rebond.

astarox(config-flow-record)#collect routing destination as
astarox(config-flow-record)#collect routing next-hop address ipv4
Router(config-flow-record)# 

Il faut alors configurer les paramètres de collecte des informations de la couche transport. Pour cela, vous pouvez utiliser la commande suivante :

collect transport <protocole> <port_source_ou_destination>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

collect transport ?

Dans notre exemple, nous avons configuré l'enregistrement de flux de manière à ce qu'il collecte les informations venant des ports source et destination pour UDP et TCP.

astarox(config-flow-record)#collect transport tcp source-port
astarox(config-flow-record)#collect transport tcp destination-port
astarox(config-flow-record)#collect transport udp source-port
astarox(config-flow-record)#collect transport udp destination-port
astarox(config-flow-record)# 

Il peut également être intéressant de configurer le comptage de certains nombres. Il vous suffit d'utiliser la commande suivante :

collect counter <attribut>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

collect counter ?

Dans notre exemple, nous avons décidé de collecter le nombre d'octets et de paquets envoyés.

astarox(config-flow-record)#collect counter bytes
astarox(config-flow-record)#collect counter packets
astarox(config-flow-record)# 

Il est enfin possible de configurer les heures et dates de certains attributs. Vous devez entrez la commande suivante :

collect timestamp <attribut>

Pour connaître tous les attributs disponibles sur votre équipement, vous pouvez utiliser la commande :

collect timestamp ?

Dans notre exemple, nous avons nous avons choisi de collecter les dates et heures de début et fin de flux.

astarox(config-flow-record)#collect timestamp sys-uptime first
astarox(config-flow-record)#collect timestamp sys-uptime last
astarox(config-flow-record)# 

De manière générale, pour configurer un nouveau paramètre de collecte, il suffit d'entrer la commande suivante :

collect <nom_parametre_collecte>

Vous pouvez alors quitter ce mode et revenir en mode configuration grâce à la commande :

exit

3. Configuration de l’exportation des données du Flexible Netflow

Pour configurer l'exportation des données du Flexible Netflow, vous devez d'abord entrer en mode configuration de flow exporter. Pour ce faire, entrez la commande suivante :

flow exporter <nom_exporter>

astarox>enable
Password:
astarox#conf t
Enter configuration commands, one per line. End with CNTL/Z.
astarox(config)#flow exporter my-nf-collector
astarox(config-flow-exporter)# 

Vous devez alors donner une description pour l'exportation de vos données. Il vous suffit d'entrer la commande suivante :

description <description_exportation>

Il est indispensable de spécifier l'adresser IP du moniteur de Netflow. Vous pouvez le faire grâce à la commande :

destination <adresse_ip_ou_hostname_moniteur>

Pour renseigner le port qui permettra d'exporter les paquets au moniteur, vous devez entrer la commande suivante :

source <nom_interface>

Enfin, vous devez spécifier le protocole de transport utilisé ainsi que le port d'écoute grâce à la commande suivante :

transport <protocole_transport> <port_écoute>

Vous pouvez alors quitter ce mode et revenir en mode configuration grâce à a commande :

exit

Nous avons réalisé ces configuration dans notre exemple.

astarox(config)#flow exporter my-nf-collector
astarox(config-flow-exporter)#description netflow-to-my-nf-collector
astarox(config-flow-exporter)#destination 10.0.0.100
astarox(config-flow-exporter)#source GigabitEthernet0/0/0
astarox(config-flow-exporter)#transport udp 9995
astarox(config-flow-exporter)#exit
astarox(config)# 

4. Configuration du moniteur de Flexible Netflow

Pour configurer le moniteur de Netflow, vous devez d'abord entrer en mode configuration de flow monitor. Pour ce faire, entrez la commande suivante :

flow monitor <nom_moniteur>

astarox>enable
Password:
astarox#conf t
Enter configuration commands, one per line. End with CNTL/Z.
astarox(config)#flow monitor INET-FULL
astarox(config-flow-monitor)# 

Vous devez alors spécifier le nom de l'exporter configuré précédemment en utilisant la commande suivante :

exporter <nom_exporter>

De la même manière, vous devez spécifier le nom de l'enregistrement de flow configuré précédemment grâce à la commande suivante :

record <nom_enregistrement>

NB Si vous n'avez pas configuré l'enregistrement des flux précédemment, vous pouvez simplement entrer la commande suivante :

record netflow-original

Vous pouvez ensuite, optionnellement, paramétrer le cache du moniteur. Nous conseillons de spécifier le nombre d'entrées que le cache du moniteur de Netflow peut accepter. Pour ce faire, entrez la commande suivante :

cache entries <nombre_entrées>

Vous pouvez également spécifier le temps d'expiration d'un flux actif et non actif. Vous pouvez configurer ce paramètres grâce aux commandes suivantes :

cache active <temps_expiration>
cache inactive <temps_expiration>

Revenez ensuite au mode configuration au moyen de la commande :

exit

Nous avons réalisé ces configurations dans notre exemple.

astarox(config)#flow monitor INET-FULL
astarox(config-flow-monitor)#exporter my-nf-collector
astarox(config-flow-monitor)#record INET-FULL
astarox(config-flow-monitor)#cache timeout inactive 60
astarox(config-flow-monitor)#cache timeout active 300
astarox(config-flow-monitor)#cache entries 10000
astarox(config-flow-monitor)#exit
astarox(config)# 

5. Configuration du port d'envoi des données au moniteur Flexible Netflow

Vous devez configurer l'un des ports de votre équipement Cisco pour qu'il envoie les données souhaitées au moniteur de Netflow. Pour ce faire, entrez dans le mode config-if grâce à la commande suivante :

interface <nom_interface>

Vous devez alors configurer l'interface de la manière suivante :

ip flow monitor <nom_moniteur> input
ip flow monitor <nom_moniteur> output

Dans notre exemple, nous avons fait de même avec pour nom de moniteur INET-FULL.

astarox(config)#interface GigabitEthernet0/0/2
astarox(config-if)#ip flow monitor INET-FULL input
astarox(config-if)#ip flow monitor INET-FULL output
astarox(config-if)# 

6. Vérification de configuration du Flexible Netflow et enregistrement

Pour vérifier que les modifications apportées à votre équipement Cisco ont bien été prises en compte, vous devez retourner dans le mode configuration en entrant la commande :

end

puis entrez la commande suivante :

show running-config

Si la configuration a bien été réalisée, vous devriez voir les changements apportés comme ci-dessous.

astarox#show running-config
Building configuration...

Current configuration : 1449 bytes
!
--More-- 

!
flow record INET-FULL
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match interface input
match interface output
collect routing destination as
collect routing next-hop address ipv4
collect transport tcp source-port
collect transport tcp destination-port
collect transport udp source-port
collect transport udp destination-port
collect counter bytes
collect counter packets
collect timestamp sys-uptime first
collect timestamp sys-uptime last
!
--More-- 

!
flow exporter my-nf-collector
description netflow-to-my-nf-collector
destination 10.0.0.100
source GigabitEthernet0/0/0
transport udp 9995
!
flow monitor INET-FULL
exporter my-nf-collector
cache timeout inactive 60
cache timeout active 300
cache entries 10000
record INET-FULL
!
interface GigabitEthernet0/0/2
ip flow monitor INET-FULL input
ip flow monitor INET-FULL output
!
--More-- 

Pour enregistrer les modifications apportées à votre équipement Cisco, entrez la commande “copy running-config startup-config” ou "copy run start" puis appuyez deux fois sur Entrée comme ci-dessous.

astarox#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

astarox# 

En résumé, voici toutes les commandes à utiliser pour configurer le Flexible Netflow sur l’IOS-XE Cisco

astarox>enable
Password:
astarox#conf t
Enter configuration commands, one per line. End with CNTL/Z.
!--Optionnel - A faire seulement pour personnaliser le flow record
astarox(config)#flow record
astarox(config-flow-record)#match ipv4 <attribut>
astarox(config-flow-record)#match transport <attribut>
astarox(config-flow-record)#match interface <input_ou_output>
astarox(config-flow-record)#collect routing <attribut>
astarox(config-flow-record)#collect transport <protocole> <attribut>
astarox(config-flow-record)#collect counter <nombre>
astarox(config-flow-record)#collect timestamp <attribut>
astarox(config-flow-record)#exit
!-----------------------
astarox(config)#flow exporter <nom_exporter>
astarox(config-flow-exporter)#description <description>
astarox(config-flow-exporter)#destination <adresse_ip_moniteur>
astarox(config-flow-exporter)#source <port_source>
astarox(config-flow-exporter)#transport <protocole> <port_ecoute>
astarox(config-flow-exporter)#exit
astarox(config)#flow monitor <nom_moniteur>
astarox(config-flow-monitor)#exporter <nom_exporter>
astarox(config-flow-monitor)#record <nom_record> //Si vous n'avez pas configurer de flow record, vous pouvez simplement utiliser le nom netflow-original
astarox(config-flow-monitor)#cache <attribut>
astarox(config-flow-monitor)#exit
astarox(config)#interface <nom_interface>
astarox(config-if)#ip flow monitor <nom_moniteur> input
astarox(config-if)#ip flow monitor <nom_moniteur> output
astarox(config-if)#end
astarox#show running-config
astarox#copy running-config startup-config

Commentaires

Commenter cet article