Recent Changes - Search:

Le fichier de configuration du collecteur

Le rôle du collecteur est de comptabiliser les octets transitant par les routeurs en traitant les informations de flux émises par ces routeurs (les NetFlows émis par les routeurs Cisco©). Les informations relatives à un flux sont pour l'essentiel :

  • l'adresse du routeur,
  • les numéros des interfaces d'entrée et de sortie,
  • les adresses IP source et destination,
  • les numéros des ports source et destination,
  • le type de protocole,
  • le nombre d'octets de ce flux.

En utilisant ces informations le collecteur va sélectionner les flux à comptabiliser et construire une table associant aux couples (adresse IP source, adresse IP destination) trouvés dans les flux, les volumes d'octets correspondants pour chaque service/protocole. Des règles de filtrage utilisant des adresses de routeurs et les numéros d'interface d'entrée et de sortie déterminent quels flux doivent être conservés. Des règles d'agrégation permettent de considérer que tous les flux entrant ou sortant par une interface donnée proviennent ou sont à destination d'une même adresse IP. Il est ainsi possible par exemple, de considérer l'Internet comme un tout.

C'est le fichier de configuration du collecteur (paramètre --configuration de MainThread) qui d'une part spécifie l'adresse et le port d'écoute des datagrammes envoyés par les routeurs (et éventuellement dupliqués par le duplicateur) et qui d'autre part contient les règles de filtrage et d'agrégation des flux.

La syntaxe de ce fichier est donnée ci-dessous : les terminaux (littéraux ou symboles) sont en gras, les terminaux génériques en italique, l'opérateur post-fixe * note l'itéré, l'opérateur post-fixe + indique la répétition au moins une fois, une expression entre crochets [ ] est facultative, la barre verticale | note l'alternative et le point-virgule ; note la fin de règle. De plus les termes peuvent être parenthésés.

 fichier_de_configuration :
NETFLOW_LISTEN_ADDR_PORT { adresse_ip / port_d_écoute }
routeur +
[ agrégation_d_IPs ]
[ SERVICES nom_de_fichier_des_services ; ]
;

routeur : adresse_ip_du_routeur {
SNMP_READ_COMMUNITY { nom_de_communauté }
[ SNMP_AGENT_IP adresse_ip_de_l_agent_SNMP ]
[ SNMP_OID oid ]
[ SAMPLING_INTERVAL entier_positif ]
règles_de_filtrage
[ règles_d_agrégation ]
}
;

oid : ifDescr | ifName | notation_pointée_d_OID ;

règles_de_filtrage : IF_PROCESSED { ALL } |
IF_PROCESSED { filtre ( [ , ] filtre )* } |
ALL_IF_PROCESSED_EXCEPT { filtre ( [ , ] filtre )* }
;

filtre : interface sens interface |
interface sens ALL |
interface sens OTHER |
OTHER sens interface |
ALL sens interface |
interface sens ALL_EXCEPT { liste } |
ALL_EXCEPT { liste } sens interface |
ALL_EXCEPT { liste } sens ALL |
ALL sens ALL_EXCEPT { liste } |
ALL_EXCEPT { liste } -> ALL_EXCEPT { liste } |
ALL_EXCEPT { liste } <- ALL_EXCEPT { liste }
;

sens : <-> | -> | <- ;

règles_d_agrégation : IF_AGGREGATION {
( interface ( adresse_d_agrégation ) ) +
}
;

liste : interface ([ , ] interface ) * ;

agrégation_d_IPs : SUBNET_AGGREGATION {
liste_de_sous_réseaux
[ OTHER adresse_d_agrégation ]
} |
OUTSIDE_AGGREGATION {
liste_de_sous_réseaux
OTHER adresse_d_agrégation
}
;

liste_de_sous_réseaux : adresse_ip / masque ([ , ] adresse_ip / masque ) * ;

Le fichier commence par une clause spécifiant l'adresse IP et le numéro de port sur lesquels le collecteur reçoit les datagrammes. L'adresse IP (uniquement IPv4 pour l'instant) s'écrit comme les autres adresses IP figurant dans le fichier, avec la syntaxe pointée habituelle : quatre nombres en notation décimale séparés par des points. Le port est spécifié lui aussi en notation décimale.

Le fichier se poursuit par la liste des descriptions des routeurs à traiter. La description de chaque routeur débute par l'adresse IP du routeur et se poursuit par un bloc entre accolades constitué d'une clause SNMP_READ_COMMUNITY, d'une clause facultative SAMPLING_INTERVAL, d'un ensemble de règles de filtrage et facultativement d'un ensemble de règles d'agrégation. Le nom de la communauté SNMP est impérativement placé entre " (par exemple "public").

La clause facultative SAMPLING_INTERVAL, introduite dans la version 4.3 du collecteur, permet de spécifier l'intervalle d'échantillonnage du routeur concerné. L'entier strictement positif qui suit le mot-clé est le facteur multiplicatif à appliquer aux volumes des flux comptabilisés par ce routeur. Lorsque cette clause est présente elle s'applique même si une valeur non nulle différente est trouvée dans les netflows (v5 ou v7).

Les clauses facultatives SNMP_AGENT_IP et SNMP_OID, introduites dans la version 6.2 du collecteur, permettent de spécifier une adresse différente de celle du routeur pour l'interrogation SNMP et un «OID» différent de l'OID ifDescr utilisé par défaut.

Les règles de filtrage sont spécifiés soit directement (IF_PROCESSED) soit par complémentarité (ALL_IF_PROCESSED_EXCEPT). Dans le premier cas les flux à conserver sont énumérés. Le cas particulier où la liste des filtres est réduite à ALL indique que tous les flux traversant ce routeur sont retenus.

Dans le cas général un flux est spécifié par un filtre constitué d'un opérateur central indiquant le sens de transit du flux et de deux interfaces ou ensembles d'interfaces.

Un filtre avec l'opérateur -> représente les flux entrant par l'interface (ou l'ensemble d'interfaces) spécifiée à gauche de l'opérateur et sortant par l'interface (ou l'ensemble d'interfaces) spécifiée à droite.

Un filtre avec l'opérateur <- représente les flux sortant par l'interface (ou l'ensemble d'interfaces) spécifiée à gauche de l'opérateur et entrant par l'interface (ou l'ensemble d'interfaces) spécifiée à droite.

L'opérateur <-> quant à lui représente les flux transitant dans les deux sens entre les interfaces ou ensembles d'interfaces spécifiés.

Un nom d'interface est une chaîne de caractères placée entre deux symboles ". Bien entendu le nom utilisé doit être un nom d'interface du routeur considéré, et cette vérification est faite en interrogeant l'agent SNMP.

Le mot-clé ALL représente n'importe quelle interface du routeur considéré et le mot-clé OTHER les interfaces autres que celle(s) spécifiée(s) dans l'autre membre du filtre. Un ensemble d'interfaces peut aussi être spécifié par la forme ALL_EXCEPT { … } qui représente toutes les interfaces du routeur sauf celles nommées entre accolades.

Les flux à conserver peuvent parfois être spécifiés plus rapidement par la formulation «tous les flux sauf ...». C'est la syntaxe ALL_IF_PROCESSED_EXCEPT { … } qui le permet.

Les règles d'agrégation sont des couples constitués d'un nom d'interface (entre " ) et d'une adresse d'agrégation. Tout flux entrant ou sortant par cette interface est considéré comme un flux provenant ou à destination de l'adresse d'agrégation. Une clause facultative placée après les spécifications des routeurs permet l'agrégation d'adresses IP indépendamment du routeur d'origine du flux.

Avec le mot-clé SUBNET_AGGREGATION chaque adresse IP source ou destination d'un flux est comparée avec les adresses de sous-réseaux de la liste afin de rechercher le sous-réseau dans lequel elle se trouve (si plusieurs sous-réseaux peuvent convenir, c'est celui correspondant au masque de plus grande longueur c'est-à-dire à la plus petite plage d'adresses qui est retenu). Si la recherche est positive l'adresse du flux est remplacée par l'adresse IP de base du sous-réseau, sinon si OTHER est mentionné l'adresse du flux est remplacée par l'adresse d'agrégation suivant ce mot-clé.

Avec le mot-clé OUTSIDE_AGGREGATION chaque adresse source ou destination est comparée avec les adresses de la liste mais le remplacement de l'adresse n'est effectué que si celle-ci n'appartient à aucun sous-réseau. Cette nouvelle option du collecteur permet de diminuer la taille des fichiers de collecte lorsque l'agrégation sur interface n'est pas pertinente.

Enfin une dernière clause débutant par SERVICES, facultative elle aussi, précise le fichier décrivant les services à prendre en compte lors de la collecte. Le format de ce fichier est identique à celui du fichier standard /etc/services. Chaque ligne est de la forme

 nom_du_service     numéro_de_port/nom_de_protocoles   alias

(les commentaires débutent par le caractère # et se terminent à la fin de ligne).

Le collecteur comptabilise séparément les flux correspondants à des couples numéro de port/numéro de protocole présents dans ce fichier. Les autres flux sont attribués à un couple constitué d'un numéro de port fictif et du numéro de protocole du flux. Lorsque cette clause est absente c'est le fichier standard qui est utilisé. Il apparaît en pratique que la plus grande partie du trafic concerne un nombre limité de couples port/protocole : 99% du volume correspond à moins de 100 couples identifiables à des services et le 1% restant en représente environ autant. Si le détail précis de la totalité du trafic n'est pas indispensable il est préférable d'utiliser un fichier de services réduit lors de la collecte de façon à réduire la taille des fichiers de collecte.

<< La commande MonitorMain | Le collecteur et les commandes associées | Les fichiers résultats de la collecte >>

Print - Recent Changes - Search
Page last modified on 2019/06/26 08:55:28